feat: add user roles management UI with owner access control
- Added role management views (list, create, edit, delete) - Created user_roles URL routing - Added role management templates with Bootstrap styling - Updated navbar with Roles link for owners and superusers - Enhanced decorators and mixins with superuser bypass - Added assign_owner_role.py utility script 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -18,6 +18,10 @@ class RoleBasedAdminMixin:
|
||||
if not super().has_module_permission(request):
|
||||
return False
|
||||
|
||||
# Superuser имеет полный доступ
|
||||
if request.user.is_superuser:
|
||||
return True
|
||||
|
||||
if not self.required_roles:
|
||||
return True # Нет ограничений
|
||||
|
||||
@@ -28,6 +32,10 @@ class RoleBasedAdminMixin:
|
||||
if not super().has_view_permission(request, obj):
|
||||
return False
|
||||
|
||||
# Superuser имеет полный доступ
|
||||
if request.user.is_superuser:
|
||||
return True
|
||||
|
||||
if not self.required_roles:
|
||||
return True
|
||||
|
||||
@@ -38,6 +46,10 @@ class RoleBasedAdminMixin:
|
||||
if not super().has_add_permission(request):
|
||||
return False
|
||||
|
||||
# Superuser имеет полный доступ
|
||||
if request.user.is_superuser:
|
||||
return True
|
||||
|
||||
if not self.required_roles:
|
||||
return True
|
||||
|
||||
@@ -48,6 +60,10 @@ class RoleBasedAdminMixin:
|
||||
if not super().has_change_permission(request, obj):
|
||||
return False
|
||||
|
||||
# Superuser имеет полный доступ
|
||||
if request.user.is_superuser:
|
||||
return True
|
||||
|
||||
if not self.required_roles:
|
||||
return True
|
||||
|
||||
@@ -58,6 +74,10 @@ class RoleBasedAdminMixin:
|
||||
if not super().has_delete_permission(request, obj):
|
||||
return False
|
||||
|
||||
# Superuser имеет полный доступ
|
||||
if request.user.is_superuser:
|
||||
return True
|
||||
|
||||
if not self.required_roles:
|
||||
return True
|
||||
|
||||
|
||||
Reference in New Issue
Block a user