Django Admin -默认情况下允许员工访问某些区域

mznpcxlj  于 2023-01-03  发布在  Go
关注(0)|答案(5)|浏览(103)

有谁能告诉我如何在django中给予staff用户(那些is_staff设置为true的用户)在管理界面中默认访问一些模型吗?目前,如果我以staff用户的身份登录,我只会得到“你没有权限编辑任何东西”。如果我以超级用户的身份登录,我可以访问一些东西(那些在www.example.com中注册的admin.py)。
我想基本上把员工当作一个组,允许他们编辑模型的选择,或者设置一些权限作为默认值,我已经搜索了周围的文档没有结果。

wswtfjt7

wswtfjt71#

您可以创建一个组,并使新的员工用户成为其中的成员。默认情况下不授予权限是一项安全功能。

unftdfkk

unftdfkk2#

为此,请在django admin.

的Groups中创建一个组
您可以根据您希望员工或用户能够访问的模型来添加模型权限。
完成后,将您的用户添加到该组中。您可以选择感兴趣的用户并将其添加到已创建的组中。

完成此操作后,该用户将有权访问“组”具有权限的所有模型。

iyzzxitl

iyzzxitl3#

你写过一个自定义的身份验证后端吗?我写过一个使用LDAP来连接现有身份验证系统的后端,遇到了和你一样的问题,“员工”用户没有任何模型的权限。超级用户很好,只是员工有问题。
我通过在我的自定义auth类中对ModelBackend进行超类来修复这个问题:

## in my custom auth.py
from django.contrib.auth.backends import ModelBackend

class ActiveDirectoryBackend(ModelBackend):

ModelBackend类具有计算组和用户级别权限所需的函数。
这修复了标记为“staff”的用户无法访问模型的问题,并允许我通过组和权限来控制对不同模型的访问。

v440hwme

v440hwme4#

您可以对职员进行分组以给予他们权限。
首先,勾选活动员工状态,然后点击创建一个群组,如下所示。*活动员工状态都必须勾选,否则用户无法登录Django Admin

然后,从左侧框中选择一些权限并将其移动到右侧框中,然后单击**保存 *,如下所示:

然后,在右侧框中添加普通员工,如下图所示:

然后,向下滚动到底部,然后点击**保存 *:

现在,用户可以登录,然后可以执行允许的操作,如下所示:

fgw7neuy

fgw7neuy5#

admin.autodiscover()添加到项目urls.py文件中。

相关问题