保存已发布菜单角色授权
查看文档来源信息
- 来源目录:
addons/sys_base/docs - 来源文件:
接口文档/保存已发布菜单角色授权.md
详细说明
按当前模块已经正式发布的 system_menu 清单保存角色菜单、动作和默认页授权。该接口用于下游业务模块和显式发布到下游菜单中的公共治理入口授权,不读取代码动作清单,不注入共享治理兜底菜单。
保存成功后,后端会把解析出的运行承载菜单写入 sys_authority_menus,并重建目标角色运行态 Casbin。重建结果会同时包含已授权 system_menu 与已授权 app_menu 的 grantApis,目标角色的 addonsType 必须与请求 addonsType 完全一致。
接口信息
| 项目 | 内容 |
|---|---|
| 请求方式 | POST |
| 请求路径 | /sys_base/platform/manifest/savePublishedMenuAuthority |
| 来源文件 | 接口文档/保存已发布菜单角色授权.md |
请求头
| 请求头 | 示例值 | 说明 |
|---|---|---|
Content-Type | application/json | 请求体格式。 |
x-token | <token> | 登录令牌。 |
app-id | <app-id> | 当前应用 ID。 |
addons-type | settlement_center | 当前模块标识。 |
入参
json
{
"authorityId": 20,
"addonsType": "settlement_center",
"pageCodes": ["settlement_center.workbench"],
"menuFlags": [],
"actionCodes": ["settlement_center.workbench.view"],
"defaultPageCode": "settlement_center.workbench"
}参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
authorityId | number | 是 | 目标角色 ID,必须是当前模块下的角色 |
addonsType | string | 是 | 当前模块标识,必须与目标角色 addonsType 一致 |
pageCodes | string[] | 否 | 本次授权的页面编码,必须存在于当前模块已发布 system_menu.pages |
menuFlags | string[] | 否 | 本次授权的菜单标识,必须存在于当前模块已发布 system_menu.menuSeeds |
actionCodes | string[] | 否 | 本次授权的动作编码,必须存在于当前模块已发布 system_menu.actions |
defaultPageCode | string | 否 | 默认页页面编码;传入时必须属于本次授权后的页面集合 |
请求示例
当前文档未提供独立请求示例,请参考下方 curl 示例。
响应输出
json
{
"code": 0,
"data": {
"summary": {
"published": true,
"addonsType": "settlement_center",
"authorityId": 20,
"pageCount": 1,
"actionCount": 1,
"resolvedMenuCount": 3,
"saveNote": "按当前模块已发布 system_menu 清单保存角色菜单、动作和默认页授权,并同步运行时 Casbin 权限。"
},
"selectedPageCodes": ["settlement_center.workbench"],
"selectedMenuFlags": ["settlement_center.workbench", "settlement_center.workbench.view"],
"selectedActionCodes": ["settlement_center.workbench.view"],
"defaultPage": {
"pageCode": "settlement_center.workbench",
"pageTitle": "工作台",
"menuFlag": "settlement_center.workbench",
"routeName": "settlementCenterWorkbench",
"routePath": "settlement_center/workbench",
"governanceMode": "manifest",
"manifestSupported": true,
"resolved": true,
"source": "published_menu"
},
"defaultPageSyncApplied": true,
"defaultPageSyncReason": "explicit_selected_page"
},
"msg": "success"
}字段说明
| 字段 | 说明 |
|---|---|
data.summary.published | 当前模块是否存在已发布 system_menu |
data.summary.resolvedMenuCount | 本次写入 sys_authority_menus 的运行承载菜单数量,包含必要父级 |
data.selectedPageCodes | 后端确认有效的页面编码 |
data.selectedMenuFlags | 后端确认有效的菜单标识 |
data.selectedActionCodes | 后端确认有效的动作编码 |
data.defaultPage | 保存后解析出的默认页结果;无有效默认页时为空或 resolved=false |
data.defaultPageSyncApplied | 本次是否调整了目标角色默认页存储 |
data.defaultPageSyncReason | 默认页同步原因 |
curl 示例
bash
curl --location --request POST 'http://127.0.0.1:8100/sys_base/platform/manifest/savePublishedMenuAuthority' \
--header 'Content-Type: application/json' \
--header 'x-token: <token>' \
--header 'app-id: <app-id>' \
--header 'addons-type: settlement_center' \
--data-raw '{
"authorityId": 20,
"addonsType": "settlement_center",
"pageCodes": ["settlement_center.workbench"],
"actionCodes": ["settlement_center.workbench.view"],
"defaultPageCode": "settlement_center.workbench"
}'