为可以在多个组织中担任角色的用户设计模型
Model design for a user who can have roles at multiple organizations
我需要一个 Django 模型,其中 User
可以有一个 Function
和任意数量的 Organisations
。他对组织的权限(更改、查看、删除)由他的 Role
决定。我很确定我只需要一个 "admin" 和一个 "member" 角色。
这需要行级权限,所以我决定使用 django-guardian。我在选择合适的模型设计时遇到了麻烦。这些是备选方案
第一个 会有创建新角色的优势,但我认为我不需要那个。我也可以强制执行 unique_together
以便用户在每家公司只能拥有 1 个功能。我会在 Role
处设置 can_change
权限并根据 User
和 Organization
之间的关系推断行级权限吗?这意味着我什至不需要 django-guardian,对吧?
第二个看起来简单多了,但也许这是骗人的。一旦将 User
添加到 Organization
并且绝对是行级的,就必须设置权限。
这里正确的策略是什么?
澄清一下:在这两种情况下,用户都可以是一个组织的管理员,也可以只是另一个组织的成员。
使用派对模式。
用户不是人,是用户。个人和组织是当事人。一方有一个(或没有)用户。
一个人与一个组织有很多(many2many)关系:
个人-<关系>-组织
组织之间也可以有关系。
我需要一个 Django 模型,其中 User
可以有一个 Function
和任意数量的 Organisations
。他对组织的权限(更改、查看、删除)由他的 Role
决定。我很确定我只需要一个 "admin" 和一个 "member" 角色。
这需要行级权限,所以我决定使用 django-guardian。我在选择合适的模型设计时遇到了麻烦。这些是备选方案
第一个 会有创建新角色的优势,但我认为我不需要那个。我也可以强制执行 unique_together
以便用户在每家公司只能拥有 1 个功能。我会在 Role
处设置 can_change
权限并根据 User
和 Organization
之间的关系推断行级权限吗?这意味着我什至不需要 django-guardian,对吧?
第二个看起来简单多了,但也许这是骗人的。一旦将 User
添加到 Organization
并且绝对是行级的,就必须设置权限。
这里正确的策略是什么?
澄清一下:在这两种情况下,用户都可以是一个组织的管理员,也可以只是另一个组织的成员。
使用派对模式。
用户不是人,是用户。个人和组织是当事人。一方有一个(或没有)用户。
一个人与一个组织有很多(many2many)关系:
个人-<关系>-组织
组织之间也可以有关系。