Skip to content

获取应用菜单角色授权状态

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

详细说明

读取当前模块、当前应用范围下已经正式发布的 app_menu 清单,并返回指定角色在该应用菜单清单中的页面、动作、菜单标识授权状态和应用端默认首页。

该接口只服务移动端/应用端菜单权限配置,不读取 system_menu,不写入 sys_authority_menus,不使用 PCWEB 菜单授权结果兜底。接口权限层面,保存后的 app_menu.grantApis 会通过统一重建进入角色 Casbin。

appScope 指向单个具体应用时,接口会沿用应用菜单运行态的发布命中规则:先按应用 UUID 匹配,再按 AppID 匹配,再按应用模型 UUID 匹配,最后按当前模块全部应用匹配。若该应用实际命中了某个已发布范围,返回体中的 summary.appScopesummary.appScopeKeypublishSummary.appScopeKey 表示实际用于授权隔离的发布范围。

接口信息

项目内容
请求方式POST
请求路径/sys_base/platform/manifest/getAppMenuAuthorityStatus
来源文件接口文档/获取应用菜单角色授权状态.md

请求头

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

入参

json
{
  "authorityId": 20,
  "addonsType": "take_away",
  "accessMode": "role",
  "appScope": {
    "scopeMode": "app_uuids",
    "appUuids": ["APP_UUID_001"]
  }
}

参数说明

参数类型必填说明
authorityIdnumberrole 模式必填目标角色 ID;super_admin 模式固定为 0
addonsTypestring当前模块标识
accessModestring读取视角,取值为 rolesuper_admin;为空时按当前 token 上下文解析
appScope.scopeModestring应用菜单范围,支持 all_appsapp_model_uuidsapp_uuidsapp_ids
appScope.appModelUuidsstring[]条件必填scopeMode=app_model_uuids 时必填
appScope.appUuidsstring[]条件必填scopeMode=app_uuids 时必填
appScope.appIdsstring[]条件必填scopeMode=app_ids 时必填

请求示例

当前文档未提供独立请求示例,请参考下方 curl 示例。

响应输出

json
{
  "code": 0,
  "data": {
    "summary": {
      "published": true,
      "addonsType": "take_away",
      "authorityId": 20,
      "isSuperAdminRole": false,
      "appScopeKey": "scopeMode=app_uuids|appModelUuids=|appUuids=APP_UUID_001|appIds=",
      "appScope": {
        "scopeMode": "app_uuids",
        "appUuids": ["APP_UUID_001"]
      },
      "catalogVersion": "2026.06.10",
      "sourceProjectCode": "take_away",
      "versionUuid": "MENU_CATALOG_VERSION_xxx",
      "pageCount": 3,
      "grantedPageCount": 1,
      "actionCount": 5,
      "grantedActionCount": 2,
      "partialActionCount": 0,
      "missingActionCount": 3,
      "menuFlagCount": 3,
      "compareScope": "published_app_menu",
      "compareNote": "当前授权来源为已发布 app_menu 清单,授权结果仅用于移动端/应用端。"
    },
    "publishSummary": {
      "versionUuid": "MENU_CATALOG_VERSION_xxx",
      "addonsType": "take_away",
      "catalogType": "app_menu",
      "catalogVersion": "2026.06.10",
      "appScopeKey": "scopeMode=app_uuids|appModelUuids=|appUuids=APP_UUID_001|appIds=",
      "pageCount": 3,
      "actionCount": 5,
      "menuSeedCount": 8,
      "publishNote": "应用菜单清单已登记为正式发布版本,可供后续按 addonsType + appScope 精确读取。"
    },
    "list": [
      {
        "pageCode": "take_away.app.home",
        "pageTitle": "首页",
        "menuFlag": "take_away.app.home",
        "routeName": "takeAwayAppHome",
        "routePath": "/pages/home/index",
        "componentPath": "pages/home/index",
        "pageGranted": true,
        "hidden": false,
        "actions": [
          {
            "actionCode": "take_away.app.home.view",
            "actionTitle": "查看首页",
            "menuFlags": ["take_away.app.home.view"],
            "grantStatus": "granted",
            "grantedKeys": ["take_away.app.home.view"],
            "missingKeys": []
          }
        ]
      }
    ],
    "tree": [],
    "defaultPage": {
      "pageCode": "take_away.app.home",
      "routeName": "takeAwayAppHome",
      "menuFlag": "take_away.app.home"
    },
    "manifestDefaultPage": {
      "pageCode": "take_away.app.home",
      "routeName": "takeAwayAppHome",
      "menuFlag": "take_away.app.home"
    }
  },
  "msg": "success"
}

字段说明

字段说明
data.summary.published当前模块、当前应用范围是否已有成功发布的 app_menu
data.summary.appScopeKey后端归一化后的应用范围键;单个具体应用命中其他已发布范围时,返回实际用于授权隔离的发布范围键
data.summary.grantedPageCount目标角色在当前应用范围内已授权页面数量
data.summary.grantedActionCount目标角色在当前应用范围内已完整授权动作数量
data.list授权页使用的页面与动作状态列表
data.tree当前已发布应用菜单运行树,供 PCWEB 授权页展示完整结构
data.defaultPage当前角色在当前应用范围下配置的应用端默认首页;必须属于已授权页面,无有效配置时为空
data.manifestDefaultPage当前 app_menu 清单声明的默认页,仅供配置时参考,不等同于角色已配置默认页

curl 示例

bash
curl --location --request POST 'http://127.0.0.1:8100/sys_base/platform/manifest/getAppMenuAuthorityStatus' \
  --header 'Content-Type: application/json' \
  --header 'x-token: <token>' \
  --header 'app-id: <app-id>' \
  --header 'addons-type: take_away' \
  --data-raw '{
    "authorityId": 20,
    "addonsType": "take_away",
    "accessMode": "role",
    "appScope": {
      "scopeMode": "app_uuids",
      "appUuids": ["APP_UUID_001"]
    }
  }'

CL 正式文档平台