Django组权限激活

时间:2018-11-23 10:55:56

标签: python django permissions rbac

如果您的INSTALLED_APPS中有django.contrib.auth,django将自动为系统中的每个模型(或以后添加的任何模型)创建添加,更改,删除和查看权限。这些存储在auth_permission中。

django doc中,我们可以在“网上论坛”部分下阅读以下内容: django.contrib.auth.models.Group模型是对用户进行分类的一种通用方法,因此您可以向这些用户应用权限或其他标签。用户可以属于任意数量的组。 组中的用户自动拥有授予该组的权限。例如,如果“站点编辑者”组具有can_edit_home_page权限,则该组中的任何用户都将具有该权限。

我有一个完全没有权限的群组(称为NADA),并且已将该群组分配给特定用户(我们称其为Pierre)。 Pierre仍然可以在我的Web界面上连接和创建,更新,删除或查看任何内容。

如何使它正常工作?网上很少或没有关于本机Django权限的文档。

  • 我读过这篇不错的出版物 django-permission-apps-comparison
  • 我知道我可以安装django-guardian,django-role-permissions或 django-rules ...
  • 我知道我们可以通过middleware or decorator来管理访问,但是由于django正在为我们创建这些表(用户,组,权限和group_permissions)

我认为对任何模型类实施CRUD访问非常简单!

错了吗

我想念什么吗?

注意:使用Python3.6和Django 2.1.3

1 个答案:

答案 0 :(得分:1)

Django权限很简单。据我了解您的问题,您正在尝试创建一个没有权限的用户,并且他在Django管理员上不应看到任何条目。

第一件事是确保用户未标记为“超级用户”,无论将用户添加到哪个组,超级用户都可以看到所有内容。

如果他不是超级用户,但仍然能够查看模型,则应确保他不属于多个组。如果一个用户在多个组中,那么所有权限的并集就是对其应用的权限。该链接将为您提供有关用户https://djangobook.com/users-groups-permissions/的不同标志的更多详细信息。让我知道是否有帮助。