Jelajahi Sumber

Remove built-in permission assignment from admin UI

Jeremy Stretch 5 tahun lalu
induk
melakukan
65bd3fbddb
1 mengubah file dengan 22 tambahan dan 2 penghapusan
  1. 22 2
      netbox/users/admin.py

+ 22 - 2
netbox/users/admin.py

@@ -1,14 +1,26 @@
 from django import forms
 from django.contrib import admin
 from django.contrib.auth.admin import UserAdmin as UserAdmin_
-from django.contrib.auth.models import User
+from django.contrib.auth.models import Group, User
 
 from .models import ObjectPermission, Token, UserConfig
 
-# Unregister the built-in UserAdmin so that we can use our custom admin view below
+# Unregister the built-in GroupAdmin and UserAdmin classes so that we can use our custom admin classes below
+admin.site.unregister(Group)
 admin.site.unregister(User)
 
 
+@admin.register(Group)
+class GroupAdmin(admin.ModelAdmin):
+    fields = ('name',)
+    list_display = ('name', 'user_count')
+    ordering = ('name',)
+    search_fields = ('name',)
+
+    def user_count(self, obj):
+        return obj.user_set.count()
+
+
 class UserConfigInline(admin.TabularInline):
     model = UserConfig
     readonly_fields = ('data',)
@@ -21,6 +33,14 @@ class UserAdmin(UserAdmin_):
     list_display = [
         'username', 'email', 'first_name', 'last_name', 'is_superuser', 'is_staff', 'is_active'
     ]
+    fieldsets = (
+        (None, {'fields': ('username', 'password')}),
+        ('Personal info', {'fields': ('first_name', 'last_name', 'email')}),
+        ('Permissions', {
+            'fields': ('is_active', 'is_staff', 'is_superuser'),
+        }),
+        ('Important dates', {'fields': ('last_login', 'date_joined')}),
+    )
     inlines = (UserConfigInline,)