TS-ResHub/accounts/admin.py

25 lines
1.0 KiB
Python

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin as DefaultUserAdmin
from .models import User
@admin.register(User)
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")
filter_horizontal = ("groups", "user_permissions", "managed_websites", "authorized_websites")
def get_fieldsets(self, request, obj=None):
base = list(super().get_fieldsets(request, obj))
role_fields = ["role"]
if obj and obj.role == "user":
role_fields.append("source_manager")
base.append(("角色和权限", {"fields": role_fields}))
if obj:
if obj.role == "manager":
base.append(("管理权限", {"fields": ("managed_websites",)}))
elif obj.role == "user":
base.append(("访问权限", {"fields": ("authorized_websites",)}))
return base