refactor: migrar a supabase, aplicar cia y poo a gastos
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
from django.contrib.auth.mixins import UserPassesTestMixin
|
||||
from django.contrib import messages
|
||||
from django.shortcuts import redirect
|
||||
|
||||
class RoleRequiredMixin(UserPassesTestMixin):
|
||||
"""
|
||||
Mixin para validar si el usuario autenticado pertenece a alguno de los grupos (roles) permitidos.
|
||||
"""
|
||||
allowed_roles = []
|
||||
redirect_url = 'dashboard'
|
||||
permission_denied_message = 'No tienes permisos para acceder a esta página.'
|
||||
|
||||
def test_func(self):
|
||||
if self.request.user.is_superuser:
|
||||
return True
|
||||
|
||||
user_groups = self.request.user.groups.values_list('name', flat=True)
|
||||
for role in self.allowed_roles:
|
||||
if role in user_groups:
|
||||
return True
|
||||
return False
|
||||
|
||||
def handle_no_permission(self):
|
||||
if not self.request.user.is_authenticated:
|
||||
return redirect('login')
|
||||
messages.error(self.request, self.permission_denied_message)
|
||||
return redirect(self.redirect_url)
|
||||
Reference in New Issue
Block a user