【问题标题】:Rolling out own permission app or modifying django permission推出自己的权限应用程序或修改 django 权限
【发布时间】:2014-06-17 00:50:14
【问题描述】:

我正在开发一个需要单独管理界面的项目。 django admin 界面是针对super super user 的,会有公司注册我们的应用程序,然后他们将拥有自己的管理界面。尽管获得许可,但一切都已设置并完成。我们想要 model level permission 这就是 Django 提供的。

我所做的是:

class CompanyGroup(models.Model):
    name = models.CharField(max_length=254)
    permissions = models.ManyToManyField(Permissions)

现在这里列出了网站本身的所有权限。那么,我应该开始开发自己的权限应用程序,还是可以修改 django Permissions 以仅为某些模型提供对象级权限。

谢谢

【问题讨论】:

    标签: django permissions


    【解决方案1】:

    尝试 Django 现有的“行级别”/“每个对象”权限应用之一:

    http://django-guardian.readthedocs.org/en/v1.2/
    http://django-object-permissions.readthedocs.org/en/latest/

    ...可能还有其他的,这只是 Google 中的前两个

    我们正在工作的当前项目中使用 django-guardian,看起来不错。

    我假设您需要控制对每个模型对象的子集的访问,具体取决于当前用户所属的公司(即,您不希望公司 A 的人看到公司 B 的项目)。因此,您需要行级权限

    您可能还需要将所有“公司用户”的权限限制为仅限某些操作:

    • 您不需要创建CompanyGroup 类。
    • 只需启用管理站点,以超级用户身份登录并创建一个django.contrib.auth.models.Group,其中包含适用于公司用户的全局权限。
    • 然后确保在您创建任何新的公司用户登录时将其添加到 Group

    【讨论】:

    • 该死!问题中有一点错别字。我们想要相同的Model level permission
    • 那你的问题是什么?你读过文档吗? docs.djangoproject.com/en/1.6/topics/auth/default/#groups
    • 你误解了我的意思兄弟。每家公司都注册了我们的申请。他们有自己的管理员。他们有自己的用户。因此,当他们创建自己的用户(属于该公司的用户)时,我希望他们能够为他们设置权限。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-23
    • 2011-11-15
    • 1970-01-01
    • 2014-01-29
    • 1970-01-01
    • 1970-01-01
    • 2020-04-24
    相关资源
    最近更新 更多