整体替换页面角色白名单(addon.manage)
/api/v1/addons/{key}/access
PUT
/api/v1/addons/{key}/access调用说明
需要 addon.manage。必须提交清单中的全部页面,不能只提交修改项;未知页面、失效角色和非整数角色 ID 会被拒绝。每页使用 view 和 manage 两组角色数组;manage 必须是 view 的子集。两者为空代表仅管理员。
应用授权完全独立,不需要在系统角色权限中重复分配。保存成功后 menus 可供后台更新左侧导航。
路径与请求头参数
| 参数 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| key | path | string | 是 | ^[a-z][a-z0-9_]{1,79}$ |
| X-CSRF-Token | header | string | 是 | 后台页面 meta[name="csrf-token"] 的当前会话令牌 |
JSON 请求体
使用 application/json 提交请求体。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| page_roles | object | 是 | 须包含全部页面。每页 view 为可查看角色,manage 为可操作角色且必须是 view 的子集;两者为空时仅管理员。 |
Axios 请求示例
在已登录后台页面中调用;示例角色 ID 仅用于说明,请替换为当前系统中的实际角色。
javascript
axios.put('/api/v1/addons/ledger_management/access', {
"page_roles": {
"tasks": {
"view": [
3
],
"manage": [
3
]
},
"categories": {
"view": [],
"manage": []
},
"fields": {
"view": [
3
],
"manage": [
3
]
},
"templates": {
"view": [],
"manage": []
},
"domains": {
"view": [],
"manage": []
}
}
});响应结构示例
以下为结构示例,不是实时接口结果;列表和文档对象可能省略部分项目。
json
{
"code": 0,
"message": "操作成功",
"data": {
"menus": []
}
}响应状态
| HTTP 状态 | 含义 |
|---|---|
| 200 | 成功 |
| 401 | 未登录或会话失效 |
| 403 | 没有权限 |
| 419 | CSRF 令牌无效 |
| 422 | 参数错误 |
| 503 | 数据库结构需要升级 |