我在下载或修改文件前想先判断当前用户有没有 download 或 modify 权限,避免直接调用业务接口报错。应该用哪个接口?返回值怎么判断?
我在下载或修改文件前想先判断当前用户有没有 download 或 modify 权限,避免直接调用业务接口报错。应该用哪个接口?返回值怎么判断?
使用 POST /api/eacp/v1/perm1/check(检查单个权限,支持用户账户与应用账户)。
请求体(Perm1CheckReq,必填 docid、perm):
| 字段 | 说明 |
|---|---|
docid |
文档 gns。 |
perm |
待检查的权限,枚举:display(显示)、preview(预览)、download(下载)、create(新建)、modify(修改)、delete(删除)、cache(缓存)。 |
请求示例:
POST /api/eacp/v1/perm1/check HTTP/1.1
Host: 192.168.1.100
Authorization: Bearer <ACCESS_TOKEN>
Content-Type: application/json
{
"docid": "gns://DED18AD77A2849509DB0A7F6BAA58926",
"perm": "download"
}
响应示例(Perm1CheckRes):
{
"result": 1,
"error": {
"code": 403001002,
"cause": "没有配置权限",
"message": ""
}
}
result 含义:
0:OK,拥有该权限;1:未配置该权限;2:拒绝该权限(被 deny)。当 result 非 0 时,error 字段给出权限不足的原因。若需一次性检查多个权限或查看各访问者的最终权限,可改用 perm1/checkall(检查所有权限)与 perm1/list(展示各访问者最终权限)。