3
3
from django .contrib .auth .admin import UserAdmin as _UserAdmin
4
4
from django .core .exceptions import PermissionDenied , ValidationError
5
5
from django .urls import reverse_lazy
6
+ from django .utils .translation import gettext_lazy as _
6
7
7
8
from .forms import PreventPrivilegeEscalationMixin , UserChangeForm
8
- from .models import User
9
+ from .models import Role , User
9
10
from .utils import validate_max_user_permissions
10
11
11
12
12
13
@admin .register (User )
13
14
class UserAdmin (_UserAdmin ):
14
15
hijack_success_url = reverse_lazy ("root" )
15
16
form = UserChangeForm
17
+ list_display = _UserAdmin .list_display + ("role" ,)
16
18
17
19
def get_form (self , request , obj = None , ** kwargs ):
18
20
ModelForm = super ().get_form (request , obj , ** kwargs )
@@ -32,3 +34,17 @@ def user_change_password(self, request, id, form_url=""):
32
34
raise PermissionDenied from exc
33
35
34
36
return super ().user_change_password (request , id , form_url )
37
+
38
+ def get_fieldsets (self , request , obj = None ):
39
+ fieldsets = super ().get_fieldsets (request , obj )
40
+ return tuple (fieldsets ) + ((_ ("Role" ), {"fields" : ("role" ,)}),)
41
+
42
+
43
+ @admin .register (Role )
44
+ class RoleAdmin (admin .ModelAdmin ):
45
+ list_display = (
46
+ "name" ,
47
+ "can_start_destruction" ,
48
+ "can_review_destruction" ,
49
+ "can_view_case_details" ,
50
+ )
0 commit comments