SaaS 群组与角色权限,无需自己实现多租户
最后更新于
Seed 在注册时为每个账号创建一个个人群组,用户还可以创建共享群组、邀请他人,并分配从查看者到所有者的角色。群组是唯一的租户边界,所以你新增的功能只要复制笔记聚合,就会通过同一套检查。
- 群组是唯一的租户边界:个人数据和共享数据经过同样的检查
- 应用、代码和本站都统一称它为群组
- 没有第二套权限模型需要与第一套保持同步
- 邀请、角色变更和所有权转让,各有独立的测试
每一行共享数据都属于一个群组,API 在读取或写入之前会检查此人在该群组中的角色。查看者只能读取;编辑者还能修改群组的数据;管理员和所有者还能管理成员和查看活动日志。
所有者一步即可转让所有权,已删除的群组可在 30 天内恢复。只有邮箱已验证的账号才能发出邀请。

每个账号都有群组吗?
是的。每个账号注册时都会获得一个个人群组;个人群组和共享群组通过的是同一套检查。
查看者能修改群组的数据吗?
不能。查看者只能读取群组的数据;编辑者、管理员或所有者才能修改。
已删除的群组还能恢复吗?
可以。所有者可在 30 天内恢复它;超过 30 天后,Worker 会将其永久删除。
我自己的功能需要另做一套权限系统吗?
不需要。新的聚合会复制笔记聚合及其群组检查,所以只需维护一套权限模型。