图例说明

airsky 总索引 | 权限体系分析 索引

用于解释 总览流程拆解 中各图的元素与权限术语。

流程图图例

元素含义
矩形节点一个校验步骤或处理动作
{菱形}判定分支(是/否)
实线箭头流程走向,箭头上文字为分支条件
「理想态 / 实际态」标注区分设计应有行为与当前代码实际行为

权限标识规范

格式:模块:资源:动作,例如:

示例标识含义
crm:customer:listCRM 模块 客户资源 列表权限
analytics:sales:list经营看板 销售分析 查看权限
communication:channels:bind_self沟通渠道 绑定本人账号权限
*:*:*超级管理员通配,放行一切

角色层级

角色tenant_id说明
平台超管 super_admin0拥有 *:*:*,放行一切
平台普通角色(如审计员)0sys_role_menu 归纳权限点校验
租户管理员 tenant_admin>0跳过角色级权限判定,但受租户菜单授权约束
租户普通用户>0走完整「租户授权 ∩ 角色授权」校验

data_scope 取值(数据权限)

范围过滤条件
1全部数据仅 tenant_id(由 TenantScope 保证)
2自定义部门dept_id IN (授权部门列表)
3本部门dept_id = 当前用户.dept_id
4本部门及以下dept_id IN (部门子树)
5仅本人ownerField = 当前用户.id

数值越小权限越大;多角色取最大范围(最小值)。

关键代码锚点对照

能力文件位置
功能权限中间件middleware/permission.go:13
权限核心判定utils/rbac/permission.go:266
菜单交集计算utils/rbac/permission.go:194
数据权限过滤middleware/data_scope.go:18
功能开关middleware/feature_guard.go:39
前端权限指令directive/auth/permission.ts:8
未使用的缓存 keyconstant/cache_key.go:8