有人能告诉我如何在django中默认情况下为具有is_staff属性的员工用户授予对某些模型的管理访问权限吗?目前,如果我以员工身份登录,我只会收到“您没有编辑任何内容的权限”的提示。如果我以超级用户身份登录,则可以访问一些东西(那些在admin.py中注册的内容)。 我希望基本上将员工成员作为一个群组来处理,并允许他们编辑一些模型或设置一些默认权限。我已经搜索了文档,但没有找到相关内容。
您可以创建一个组,并把新员工用户加入其中。默认情况下不授予权限是一项安全功能。
你写过自定义认证后端吗?我曾经编写了一个使用LDAP与现有认证系统进行接口的后端,和你一样遇到了“staff”用户没有任何模型权限的问题。超级用户没问题,只是普通员工有问题。
我通过在我的自定义认证类中继承ModelBackend来解决了这个问题:
## in my custom auth.py
from django.contrib.auth.backends import ModelBackend
class ActiveDirectoryBackend(ModelBackend):
ModelBackend类有必要的函数,用于确定组和用户级别的权限。
这个修复了标记为“staff”的用户无法访问模型的问题,并允许我通过组和权限来控制不同模型的访问。
admin.autodiscover()
。