跳转至

.role 文件 Schema

位置:/{软件名}.application/role/{角色名}.role(单文件) | XML 根:role | 与技能对齐:generate-role-file 机制背景见 [[design/table-schema/overview]]。

1. 用途与落盘

角色 = 把域用户接到软件的权限载体(RBAC)。前台用户可见非系统软件的条件:域绑定 + activated=true + 拥有该软件下 status=1 角色。

storage/workspace/{软件名}.application/role/{角色名}.role

2. 属性表

属性 XML 形态 类型 默认 说明
id 根属性 string 须生成 __ + 短 UUID;鉴权缓存键组成部分
name 子元素 string — 必填;文件名;同应用唯一
roleNo 子元素 string — 必填(设计态校验);同应用唯一;脚本 getRoleByRoleNo 用
parentId / applicationid 子元素 string — = 软件 id(applicationid 须手写)
status 子元素 int 1 1=有效;0=失效(有绑定也不当有效角色)
defaultRole 子元素 bool true=默认角色;新建用户/微信钉钉飞书同步自动挂上
orderNo 子元素 int 0 排序
permissions 子元素 CDATA string 可省略 JSON 数组,见 §3
sortId 子元素 string 可选
description / remark CDATA

3. permissions JSON

CDATA 内 JSON 数组,每项一个 Permission:

[{
  "operationCode": 1002, "operationId": "资源或操作id", "resId": "资源id",
  "resName": "菜单|打开|详情|编辑|按钮名", "resType": 2, "type": 1, "roleId": ""
}]

运行时鉴权键:{roleId}_{resId}_{operationId}_{operationCode} 命中即有权。

resType

值 含义 值 含义
0 视图 3 表单字段
1 表单 4 文件夹
2 菜单(PC/移动同源)

operationCode(常用)

值 含义 说明
1000 所有操作
1002 菜单授权 菜单授权实际用此码 + type=1(历史命名 MENU_INVISIBLE 勿按字面理解)
1032 打开 表单/视图允许打开;operationId=resId=表单/视图 id
1033 / 1034 详情 / 编辑 视图操作;operationId 可为 {viewId}_1033 形式,落盘归一为 viewId
1011–1014 字段权限 只读/修改/隐藏/禁用
其它 activity.type() 工具栏按钮;operationId=activity.id

type:1=允许,2=禁止。

4. XML 骨架

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<role id="__roleAdmin000000001">
  <name>管理员</name>
  <parentId>__a1b2c3d4e5f6g7h8i9j</parentId>
  <applicationid>__a1b2c3d4e5f6g7h8i9j</applicationid>
  <roleNo>1</roleNo>
  <status>1</status>
  <defaultRole>true</defaultRole>
  <orderNo>0</orderNo>
</role>

带授权时追加 <permissions><![CDATA[{json}]]></permissions>。

5. 校验(设计态)

name/roleNo 空 → 拒存;同应用 name 或 roleNo 重复 → 「名称已存在」/「编号已存在」。用户绑定在运行库(UserDepartmentRoleSet),不在 workspace 文件内。KM 模块有固定角色 id/编号特例,见技能文档 §8。

6. 相关

资源 文档
所属软件 [[application-file]]
菜单授权对象 [[menu-file]]
用户体系表 design/table-schema/usercenter-tables.md
生成操作指南 agent-skills-usage/skills/generate-role-file/SKILL.md