Skip to content

保存已发布菜单角色授权

POST/sys_base/platform/manifest/savePublishedMenuAuthority
构建时间2026-06-26 20:10:33(Asia/Shanghai)来源项目中间件文档 / 中间件后端来源仓../cl-midserver-2026来源提交号69b951a07311e75887b57e0400d888f89dd72cac
查看文档来源信息
  • 来源目录:addons/sys_base/docs
  • 来源文件:接口文档/保存已发布菜单角色授权.md

详细说明

按当前模块已经正式发布的 system_menu 清单保存角色菜单、动作和默认页授权。该接口用于下游业务模块和显式发布到下游菜单中的公共治理入口授权,不读取代码动作清单,不注入共享治理兜底菜单。

保存成功后,后端会把解析出的运行承载菜单写入 sys_authority_menus,并重建目标角色运行态 Casbin。重建结果会同时包含已授权 system_menu 与已授权 app_menugrantApis,目标角色的 addonsType 必须与请求 addonsType 完全一致。

接口信息

项目内容
请求方式POST
请求路径/sys_base/platform/manifest/savePublishedMenuAuthority
来源文件接口文档/保存已发布菜单角色授权.md

请求头

请求头示例值说明
Content-Typeapplication/json请求体格式。
x-token<token>登录令牌。
app-id<app-id>当前应用 ID。
addons-typesettlement_center当前模块标识。

入参

json
{
  "authorityId": 20,
  "addonsType": "settlement_center",
  "pageCodes": ["settlement_center.workbench"],
  "menuFlags": [],
  "actionCodes": ["settlement_center.workbench.view"],
  "defaultPageCode": "settlement_center.workbench"
}

参数说明

参数类型必填说明
authorityIdnumber目标角色 ID,必须是当前模块下的角色
addonsTypestring当前模块标识,必须与目标角色 addonsType 一致
pageCodesstring[]本次授权的页面编码,必须存在于当前模块已发布 system_menu.pages
menuFlagsstring[]本次授权的菜单标识,必须存在于当前模块已发布 system_menu.menuSeeds
actionCodesstring[]本次授权的动作编码,必须存在于当前模块已发布 system_menu.actions
defaultPageCodestring默认页页面编码;传入时必须属于本次授权后的页面集合

请求示例

当前文档未提供独立请求示例,请参考下方 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"
  }'

CL 正式文档平台