luoweijian
|
53d82c960b
|
feat(crm-auth): Ticket 05 — 权限码并集注入(按钮级鉴权)
- initDataScopeContext 在数据范围计算后追加 perms 并集
- 查 sys_user_role → sys_role_menu → sys_menu 收集 enabled button 的 perms
- 停用(status=disabled)的权限点不进并集,重新启用自动恢复
- perms 与 roleCode 同为 Spring Security authority,hasAuthority/hasRole 各自匹配
- try-catch 保护:sys_menu/sys_role_menu 表未创建时静默跳过
- 114 tests 全绿,零回归
|
1 month ago |
luoweijian
|
8c4ebb4827
|
feat(crm-auth): Ticket 04 — 图标上传
- POST /api/resources/icon/upload(multipart/file)
- 格式校验:只允许 png/jpg/jpeg/gif/svg/webp
- 大小校验:≤500KB
- 调 crm-file FileApi 上传到 MinIO(bizDomain=resources/icon)
- 返回 FileInfoDTO(含 fileId)
- crm-auth pom.xml 加 crm-file 依赖
- TDD: 36 个单测,114 tests 全绿
|
1 month ago |
luoweijian
|
02cc9356c3
|
feat(crm-auth): Ticket 03 — 删除节点(含子节点检查 + 级联清理)
- DELETE /api/resources/{id} 删除资源节点
- 有子节点时拒绝并返回子节点数
- 无子节点时删除 + 级联清理 sys_role_menu 授权引用
- TDD: 31 个单测,109 tests 全绿
|
1 month ago |
luoweijian
|
b54ff47350
|
feat(crm-auth): Ticket 02 — 全量资源树查询 + 新增/编辑节点(含层级约束)
- GET /api/resources 全量扁平数组(含 catalog/menu/button)
- POST /api/resources JSON body 新增/编辑 + 6 种层级约束校验
- 字段必填:menu 缺 route 拒绝、button 缺 perms/denyBehavior/apiUrl/status 拒绝
- 编辑锁 type(不可变)+ 编辑时 route 未传保留原值
- SecurityConfig DEFAULT_IGNORE_URLS 放行 /api/resources/**
- TDD: 27 个单测覆盖正反例,105 tests 全绿
|
1 month ago |
luoweijian
|
aacc3d4c04
|
feat(crm-auth): Ticket 01 — 数据模型扩展(ADR-0011 统一权限资源树)
- 新增 MenuType 枚举(CATALOG/MENU/BUTTON,含 fromCode 和 isLegalChild)
- SysMenu 实体加 5 字段:description/perms/denyBehavior/status/apiUrl
- 新增 ResourceNode DTO(含 fromEntity/toEntity 互转,映射 menuName/name、path/route)
- 95 tests 全绿,零回归
|
1 month ago |
luoweijian
|
cceb8e5481
|
commit
|
1 month ago |
luoweijian
|
13e15c142a
|
fix: 组织准入校验移出事务 + 细分 getbyunionid 错误码
- 组织校验 HTTP 调用从 DB 事务内移到 login() 事务外预校验,
避免首登洪峰长时间占用事务连接(code review M1)
- parseOrgMember 只将 60121(未找到对应员工)判为非成员,
其他 errcode 视为调用失败抛异常,不误判拒绝(code review m1)
- 企业级 token 失效(40014/42001)时清缓存重取重试一次
|
1 month ago |
luoweijian
|
73304b7734
|
commit
|
1 month ago |
luoweijian
|
6329a6ba74
|
first-commit
|
1 month ago |