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