【问题标题】:Many-to-many relationship versus permission多对多关系与许可
【发布时间】:2021-03-01 15:47:59
【问题描述】:

用户具有 company_id 和与任务的多对多关系。 每个用户都有一个角色。 每个角色都有权限。

管理员应该能够查看公司内的所有任务。 用户应该只能看到自己在公司内的任务。

每种方法的缺陷是什么?

  1. 创建任务时将所有管理员分配给 m2m
  2. 在管理员角色中包含一个 see_all_tasks 权限

【问题讨论】:

    标签: permissions multi-tenant user-permissions


    【解决方案1】:

    鉴于您已经在应用程序中配置了角色和权限。您应该为用户分配针对公司的角色,例如管理员将在所有公司中拥有Administrator 角色。

    应用程序中的任何用户都将在每个公司中拥有一个角色,允许他在公司环境中执行他的任务。

    例如:我可以成为 CompanyA 的 Admin 和 CompanyB 的 Enduser。这应该会给你想要的结果。

    如果要在所有公司中显示一个合并的任务列表,我将根据 companyId 汇总每个任务的角色,然后强制执行权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-16
      • 2011-06-02
      • 1970-01-01
      • 2019-11-07
      • 1970-01-01
      • 2023-02-02
      • 2017-08-25
      相关资源
      最近更新 更多