请教Django的UserGroupPermission管理

请教Django的UserGroupPermission管理,第1张

Django的用户权限体系是一个比较正规的RBAC(基于角色的访问控制)模型的实现。用户不能不能访问某个view,由其拥有的role角色判断,其拥有的角色由其用户自身拥有的角色集合+其所在的组拥有的角色集合的并集所决定。更详细的可以查查RBAC这个模型的说明。

在你的admin.py中加入

from django import forms

from django.contrib import admin

from django.utils.translation import ugettext_lazy as _

from django.contrib.admin.widgets import FilteredSelectMultiple

from django.contrib.auth.models import User, Group

class GroupAdminForm(forms.ModelForm):

users = forms.ModelMultipleChoiceField(

queryset=User.objects.all(),

required=False,

widget=FilteredSelectMultiple(

verbose_name=_('Users'),

is_stacked=False

)

)

class Meta:

model = Group

def __init__(self, *args, **kwargs):

super(GroupAdminForm, self).__init__(*args, **kwargs)

if self.instance and self.instance.pk:

self.fields['users'].initial = self.instance.users.all()

def save(self, commit=True):

group = super(GroupAdminForm, self).save(commit=False)

if commit:

group.save()

if group.pk:

group.users = self.cleaned_data['users']

self.save_m2m()

return group

class GroupAdmin(admin.ModelAdmin):

form = GroupAdminForm

admin.site.unregister(Group)

admin.site.register(Group, GroupAdmin)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11630974.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存