我正在为CRUD开发Web服务。我正在考虑权限结构,我正在考虑2种解决方案
-
将用户注册到用户组,其中每个组都设置权限。因此,每当我向该组添加或删除权限时,该组下的所有用户都将自动隐式获得更新
- 组 USER 具有 PERMISSION_1 , PERMISSION_2
- GROUP 工作者具有 PERMISSION_2 , PERMISSION_3
- 将用户 John 注册到组 USER
- 将 PERMISSION_4 添加到分组 USER
- 最后,用户 John 将具有组 USER 和 WORKER 的所有权限,包括 PERMISSION_4
-
直接将权限复制给用户。这意味着我具有与选项1类似的组权限,但是当我将用户注册到该组时,我会将该组的所有当前权限复制到该用户。每当我更新组权限时,任何用户都不会改变,但是新用户将复制新权限。
- 组 USER 具有 PERMISSION_1 , PERMISSION_2
- 组 WORKER 具有 PERMISSION_2 , PERMISSION_3
- 将用户 John 注册到组 USER
- 将 PERMISSION_4 添加到分组 USER
- 最后,用户 John 仍然只有 PERMISSION_1 , PERMISSION_2 , PERMISSION_3
用例示例
- 用户有权删除其他用户的订单。
- 如果有权限,用户可以更新其他用户的订单。
如果您之前曾做过,我想对这两种解决方案有一些想法,经验,利弊。如果您能给我从上述解决方案或其他解决方案中获得的经验,将不胜感激。