首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用django-guardian进行基于角色的访问

使用django-guardian进行基于角色的访问
EN

Stack Overflow用户
提问于 2013-03-27 01:04:10
回答 1查看 1.1K关注 0票数 0

我使用django-guardian提供基于角色的权限,使用django-userena进行用户分析。我有三种类型的用户管理员,子管理员,员工。管理员可以添加子管理员,子管理员可以添加员工。我在guardian中为三种用户类型创建了三个组。当用户注册时,我会为该用户分配一个员工组。

代码语言:javascript
复制
class Profile(UserenaBaseProfile):
    class Meta:
    permissions = ( 
                ( "add_admin", "Can add admin" ),
                ( "add_subadmin", "Can add sub admin" ),
                ( "add_employee", "Can add employee" ),
            )
    user = models.OneToOneField(User,
                            unique=True,
                            verbose_name='user',
                            related_name='profile')
    first_name = models.CharField('First name',max_length=100,blank=False,null=False)
    def save(self, *args, **kwargs):
        super(Profile, self).save(*args, **kwargs)
        employee_group = Group.objects.get('employee')
        self.groups.add(employee_group)

我想使用Django Admin,并赋予Admin和sub-admin更改用户组的能力。

如何使用AdminModel在管理面板中添加下拉按钮或单选按钮,以便更改用户组。或者有没有更好的方法来做到这一点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-27 16:38:27

你正在寻找Admin actions,你必须编写一些自定义的管理操作。

更新

当您创建管理员时,您可以检查当前的request.user是否能够看到这些操作。我们可以这样说,如果用户不是管理员,那么自定义操作方法应该返回Nonepass。有一个应用程序可以在代码中的任何地方获取当前用户,当你没有访问当前用户请求的权限时,它被称为django-cuser。它适用于您需要确定用户是admin还是sub-admin以使自定义操作可供他使用的情况。

从开始

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15643155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档