Files
Web_BAI_Manage_ApiServer/docs/pb_auth_model.md

38 lines
1.9 KiB
Markdown
Raw Normal View History

# 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 使用。