From e18d7a20dcdbc5eb79cab747733524cbe8b2323b Mon Sep 17 00:00:00 2001 From: Franklin-F Date: Wed, 16 Apr 2025 17:12:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84Bug=20=E5=92=8C=20=E6=99=AE?= =?UTF-8?q?=E9=80=9A=E7=94=A8=E6=88=B7=20=E6=89=80=E6=9C=89=E7=BD=91?= =?UTF-8?q?=E7=AB=99=E7=9A=84=E8=A7=86=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- accounts/admin.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/accounts/admin.py b/accounts/admin.py index 07d27c2..3fa052e 100644 --- a/accounts/admin.py +++ b/accounts/admin.py @@ -8,8 +8,16 @@ class UserAdmin(DefaultUserAdmin): list_display = ("username", "email", "role", "source_manager", "is_active", "is_staff", "last_login") list_filter = ("role", "is_active", "is_staff", "is_superuser") search_fields = ("username", "email") - fieldsets = DefaultUserAdmin.fieldsets + ( - ("角色权限", {"fields": ("role", "source_manager")}), - ("网站权限", {"fields": ("managed_websites", "authorized_websites")}), - ) filter_horizontal = ("groups", "user_permissions", "managed_websites", "authorized_websites") + + def get_fieldsets(self, request, obj=None): + base = list(super().get_fieldsets(request, obj)) + base.append(("角色权限", {"fields": ("role", "source_manager")})) + + if obj: + if obj.role == "manager": + base.append(("管理权限", {"fields": ("managed_websites",)})) + elif obj.role == "user": + base.append(("访问权限", {"fields": ("authorized_websites",)})) + + return base \ No newline at end of file