From 65bd3fbddb5769b07335bb00ffc8e44cfb33cf27 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 28 May 2020 14:03:08 -0400 Subject: [PATCH] Remove built-in permission assignment from admin UI --- netbox/users/admin.py | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/netbox/users/admin.py b/netbox/users/admin.py index fcaeb4ef0..8ea33514a 100644 --- a/netbox/users/admin.py +++ b/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,)