【问题标题】:Django users and permissionsDjango 用户和权限
【发布时间】:2020-02-20 09:23:03
【问题描述】:

我需要在我的 django 应用程序中开发用户和组的场景,共有三个组 - 行政 - 经理 - 员工 通常管理员可以通过创建超级用户获得,我需要为不同的组创建用户 - 管理员可以访问所有用户创建的所有记录

现在我的要求是一些用户属于经理组,一些普通用户属于员工组..

  • 关联用户如何属于经理组可以从员工组中获取他自己的记录以及他的下属用户的记录

对于普通用户与经理组中的关联用户之间的关系,我感到非常困惑。

如何将一些员工用户分配给经理用户?

【问题讨论】:

    标签: django


    【解决方案1】:

    为了确保我们在同一页面上,您希望拥有以下用户结构:

    • 管理员可以查看所有内容
    • 经理可以查看 HIMSELF 及其所有关联的用户
    • 用户可以看到 HIMSELF,仅此而已

    所以从技术上讲,经理和用户之间只有一种关系

    假设您的 Admin 与 Django 的本地管理员角色不同,您可以设置以下逻辑:

    • 以与您的自定义模型一对一的关系扩展用户模型。我们就叫它Profile吧。
    • Profile 中的一个字段可能是 role,它可以是 Admin、Manager 或 User(可能想要创建引用表并使用外键)
    • 另一个字段可能是related_manager,它是用户模型的外键。这是一种表达“那个用户是我的经理”的方式

    您需要在模型中添加特定控件,特别是:

    • 如果用户是“用户”,related_manager 是必需的(或可选的?)。
    • 如果用户不是“用户”,related_manager 将强制为 None
    • related_manager 必须是具有“经理”角色的用户
    • 您可能必须设置signals 来处理“当需要管理用户的经理成为基本用户时会发生什么?”这些用户会变得没有经理吗?或者也许你阻止了它的发生,一个经理只有在他没有附加用户的情况下才能被降级?这完全取决于你想要什么

    请注意,这是处理您的情况的众多方法之一

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-21
      • 1970-01-01
      • 2017-10-29
      • 2012-12-02
      • 2014-01-26
      • 2021-12-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多