Initial commit: EFINTEL ERP Django Port
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
from functools import wraps
|
||||
from django.shortcuts import redirect
|
||||
from django.contrib import messages
|
||||
|
||||
|
||||
def role_required(*group_names):
|
||||
"""Decorator that checks if the user belongs to at least one of the specified groups."""
|
||||
def decorator(view_func):
|
||||
@wraps(view_func)
|
||||
def wrapper(request, *args, **kwargs):
|
||||
if request.user.is_superuser:
|
||||
return view_func(request, *args, **kwargs)
|
||||
user_groups = request.user.groups.values_list('name', flat=True)
|
||||
if any(group in user_groups for group in group_names):
|
||||
return view_func(request, *args, **kwargs)
|
||||
messages.error(request, 'No tienes permisos para acceder a esta sección.')
|
||||
return redirect('dashboard')
|
||||
return wrapper
|
||||
return decorator
|
||||
Reference in New Issue
Block a user