- 将数据库文档拆分为按collection命名的标准文件,统一格式 - 补充tbl_company、tbl_system_dict等表的原生访问规则 - 新增users_tag、document_create等字段 - 优化用户资料更新接口,支持非必填字段 - 添加公司原生API测试脚本 - 归档本次变更至OpenSpec
1.9 KiB
1.9 KiB
pb_auth_model
来源:
script/pocketbase.newpb.js、当前 hooks 权限实现 说明:本文件描述权限模型设计与表间职责,不替代单表结构文档
模型目标
当前项目采用 RBAC + ABAC + 用户覆盖 的混合权限模型:
RBAC负责角色级默认权限ABAC负责组织、等级、目标表等属性条件用户覆盖负责单人例外授权
核心表职责
| 文档 | 作用 |
|---|---|
| pb_tbl_auth_users.md | 用户身份源与 PocketBase auth 主表 |
| pb_tbl_auth_resources.md | 资源目录 |
| pb_tbl_auth_roles.md | 角色定义 |
| pb_tbl_auth_role_perms.md | 角色权限映射 |
| pb_tbl_auth_user_overrides.md | 单用户权限覆盖 |
| pb_tbl_auth_row_scopes.md | 行级过滤范围 |
权限计算路径
- 从
tbl_auth_users读取用户身份、组织、等级和角色。 - 从
tbl_auth_role_perms读取角色默认权限。 - 从
tbl_auth_user_overrides应用用户级覆盖。 - 从
tbl_auth_row_scopes组合行级过滤条件。 - 将可原生表达的权限同步到 PocketBase collection rules;复杂业务权限仍由 hooks 判断。
当前实现约定
- 管理后台用户通过
users_idtype = ManagePlatform与管理角色识别。 - hooks 页面
/pb/manage/sdk-permission-manage负责维护角色与 collection CRUD 权限。 - 用户登录返回的是 PocketBase 原生可验证 token,可直接给 PocketBase SDK 使用。