1.3 KiB
1.3 KiB
开发记录 —— 批次1-T08:hr-system 权限与数据范围底座(F11)
任务
按 iteration1-task-breakdown.md T08 开发权限底座。
交付内容
- apps/hr_permission.py:权限底座后端
- sql/V002__init_permission.sql:sys_data_scope 建表 + 内置 admin + 四角色 + 基线权限点
- wwwroot/role_admin.ui:角色权限配置页
- wwwroot/data_scope.ui:数据范围配置页
- scripts/test_permission.py:权限叠加规则 + 权限矩阵自测脚本
关键实现
- 角色管理:复用 rbac 基座 sys_role/sys_role_permission,CRUD + role_assign_perms 全量覆盖。
- 管理员管理:sys_user + sys_user_role 绑定,创建/绑定角色/停用。
- sys_data_scope:组织维度(org_ids_json 含子树展开) + 花名册字段维度(field_ids_json 白名单)。
- get_data_scope(user_id):注册公共能力,叠加规则=多角色组织并集+字段并集;未配置字段维度则字段不受限;admin/sys_admin 全量;无配置默认拒绝。
- 内置 admin + 四角色幂等初始化。
验证
- python3 scripts/test_permission.py 权限矩阵自测 4/4 通过。
- 端口 9280(conf/config.json server.port=9280,数据库 hrs)。
待接入
- roster/report/export 查询时从 ServerEnv 取 get_data_scope 叠加数据范围。
- 各模块初始化时 wildcard 展开追加权限点授权。