| """ |
| Admin configuration for the access control app. |
| """ |
| from django.contrib import admin |
|
|
| from apps.access.models import Permission, Role, RolePermission, UserRole |
|
|
|
|
| class RolePermissionInline(admin.TabularInline): |
| model = RolePermission |
| extra = 1 |
| autocomplete_fields = ["permission"] |
|
|
|
|
| @admin.register(Role) |
| class RoleAdmin(admin.ModelAdmin): |
| list_display = ("name", "scope", "description", "created_at") |
| list_filter = ("scope",) |
| search_fields = ("name",) |
| inlines = [RolePermissionInline] |
|
|
|
|
| @admin.register(Permission) |
| class PermissionAdmin(admin.ModelAdmin): |
| list_display = ("resource", "action", "description") |
| list_filter = ("resource",) |
| search_fields = ("resource", "action") |
|
|
|
|
| @admin.register(RolePermission) |
| class RolePermissionAdmin(admin.ModelAdmin): |
| list_display = ("role", "permission") |
| list_filter = ("role",) |
| autocomplete_fields = ["role", "permission"] |
|
|
|
|
| @admin.register(UserRole) |
| class UserRoleAdmin(admin.ModelAdmin): |
| list_display = ("user", "role", "assigned_at") |
| list_filter = ("role",) |
| search_fields = ("user__email", "role__name") |
| autocomplete_fields = ["user", "role"] |
|
|