我创建了一个具有多种类型用户的Django应用。
有一个超级用户可以访问所有数据并进行修改。很少有员工用户,这些用户具有有限的访问权限,但大多数用户只能查看,但是可以添加新用户和组。
以下是职员用户的组权限。他可以添加新组,但不能更改,查看或删除现有组。
但是,当我尝试创建一个新组时,即使他本人没有这些权限,他也可以将所有可能的权限分配给该新组。下面是他在创建新群组时可以看到的视图。
我如何只显示工作人员本人所拥有的那些权限,而不显示完整的选项?
我正在使用 Django 2.1
答案 0 :(得分:0)
这对我有用: 创建具有各种权限的组 禁止添加或删除组
#other imports
from django.contrib.auth.models import User
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
class UserAdmin(BaseUserAdmin):
list_display = ('username', 'email', 'is_staff')
list_filter = ('is_staff',)
#this displays after initial user creation for additional information
fieldsets = (
(None, {'fields': ('username', 'email', 'password')}),
('Personal info', {'fields': ('first_name',)}),
('Permissions', {'fields': ('is_staff', 'is_active', 'groups')}),
)
# add_fieldsets is not a standard ModelAdmin attribute. UserAdmin
# overrides get_fieldsets to use this attribute when creating a user.
add_fieldsets = (
(None, {
'classes': ('wide',),
'fields': ('username', 'email', 'password1', 'password2')}
),
)
search_fields = ('username',)
ordering = ('username',)
#unregister the default user admin
admin.site.unregister(User)
# Now register the new UserAdmin...
admin.site.register(User, UserAdmin)
这样,用户将无法获得其他权限