You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

18 lines
1.7 KiB

# 基础包(crm-base)
通用能力与非业务域原语。不装 controller、不建业务表,只提供基础设施:异常体系、响应封装、分页、雪花 ID、MyBatis-Plus 扩展、数据权限词汇、安全上下文工具。跨模块 seam 也放在这里。
## Language
**权限种子器**:
一个 seam interface,让任意业务模块声明式地将自己的权限点(button 节点)种子化到权限资源树(`sys_menu` 物理表),而不需要知道该表的物理 schema。调用方通过 `PermissionModuleDescriptor` 声明目录名、菜单名、按钮列表、目标角色编码;实现方(在 crm-auth 中)拥有 `sys_menu` 的全部字段知识,负责 find-or-create 幂等写入与角色绑定。替代了此前的影子实体方案——crm-dict 曾创建 `SysMenuSeed` 等重复实体类直接映射 `sys_menu` 表,导致 schema 泄漏。
_Avoid_: 权限初始化器、权限注入器、权限注册器
**权限模块描述符**:
权限种子化的声明单元。一个描述符 = 一个目录 + 一个菜单 + 一组按钮 + 目标角色编码列表。目录幂等——同一目录名被多次 `seedModule` 只创建一次。调用方不暴露 `sys_menu` 的任何字段名、枚举值或默认值;`denyBehavior`、`status`、`visible` 等 schema 默认值由种子器实现方硬编码。
_Avoid_: 权限配置、种子描述文件
**按钮种子**:
权限模块描述符中一条按钮权限点的最小声明:名称、权限码、接口 URL、排序。不包含 `denyBehavior`/`status`/`visible`——这些是 `sys_menu` 的 schema 细节,由种子器实现方统一硬编码。需要不同值的管理员在启动后通过资源管理 API 修改。
_Avoid_: 按钮配置、权限点定义