账号、角色与数据权限
Modu 使用角色权限控制功能访问,使用 DataScope 数据权限控制记录范围。能看到页面或按钮,不代表能读写全部记录。
配置账号与角色
Section titled “配置账号与角色”先建立部门与账号,再为角色分配功能菜单、按钮权限和数据范围,最后将角色关联到账号。菜单启用状态、角色关联和服务端权限声明共同决定可用能力。
例如商品列表接口声明 example:product:list。角色拥有该权限才能调用接口,接口内部还会根据当前账号的数据范围筛选商品创建者。
| DataScope | 可见范围 |
|---|---|
all |
全部数据 |
dept_and_children |
本部门及子部门 |
dept |
本部门 |
custom |
角色指定的部门 |
self |
本人数据 |
多个角色的数据范围取并集。业务服务必须显式应用范围过滤,并在单条记录读取、修改、删除及批量操作时检查归属。它不是自动过滤所有 ORM 查询的全局拦截器。
新增业务可参考商品样板的 sdk.VisibleOwnerIDs 和详情、写入时的归属检查。管理员的功能权限也不能代替审批任务的真实办理席位。
菜单路径与权限码
Section titled “菜单路径与权限码”子菜单的路径以父目录路径为前缀。例如通知管理 /notify 的子页面使用 /notify/...。ProLayout 根据路径前缀判断展开目录,路径与层级不一致会引起误展开。
页面路径和权限码用途不同:路径用于导航,权限码用于授权。前端隐藏按钮用于引导用户,服务端仍会重新核对当前权限。
首次授权与后续维护
Section titled “首次授权与后续维护”应用菜单参与核心首次安装的授权事务。重跑种子不会恢复管理员已撤销的授权,也不会擅自恢复已经停用或删除的菜单。
审批导航和文件扩展有单独的启用要求。新页面不可见时,依次检查菜单状态、角色关联、功能权限及扩展状态,再检查前端 catalog 是否对应当前后端。
实现自己的业务接口,继续阅读后端业务开发。