25 lines
1.0 KiB
Python
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 |