# 开发记录 —— 批次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:权限叠加规则 + 权限矩阵自测脚本 ## 关键实现 1. 角色管理:复用 rbac 基座 sys_role/sys_role_permission,CRUD + role_assign_perms 全量覆盖。 2. 管理员管理:sys_user + sys_user_role 绑定,创建/绑定角色/停用。 3. sys_data_scope:组织维度(org_ids_json 含子树展开) + 花名册字段维度(field_ids_json 白名单)。 4. get_data_scope(user_id):注册公共能力,叠加规则=多角色组织并集+字段并集;未配置字段维度则字段不受限;admin/sys_admin 全量;无配置默认拒绝。 5. 内置 admin + 四角色幂等初始化。 ## 验证 - python3 scripts/test_permission.py 权限矩阵自测 4/4 通过。 - 端口 9280(conf/config.json server.port=9280,数据库 hrs)。 ## 待接入 - roster/report/export 查询时从 ServerEnv 取 get_data_scope 叠加数据范围。 - 各模块初始化时 wildcard 展开追加权限点授权。