注意:在您使用本文所述的接口前,请先了解调用方式,详情可阅读调用方式。
请求说明 请求地址:POST /aeolus/api/v3/open/userManagement/group 请求示例 入参:json格式 { "appId": 1, 项目ID 类型int 必选参数 "name": "zhangsan", 用户组名称 类型string 必选参数 "description": "description_info", 用户组描述 类型string 必选参数 "isPublic": 1, 1: 公开用户组,0: 非公开用户组 类型int 必选参数 "ownerList": ["admin1","admin2"] 管理员列表(元素的类型为string) 必选参数 } 返回示例 { "code": "aeolus/ok", "data": { 用户组信息 }, "msg": "成功" }
请求说明 GET /aeolus/api/v3/open/userManagement/groupList 请求参数 参数:query string appId: 必选参数,项目id 返回示例 { "code": "aeolus/ok", "msg": "成功", "data": { "groups": [ { "id": 1, "originId": "", "name": "名称", "description": "用户组描述", "source": 2 # 用户组类型,0-部门组,1-全局用户组, 2-项目用户组, 3-飞书群 } ] } }
GET /aeolus/api/v3/open/userManagement/groupMember 参数:query string appId: 必选参数,项目id subjectId: 必选参数,组id(上面groupList接口获取到的id参数值) kw: 可选搜索关键词参数,默认为空表示查询全部 perPage: 可选分页参数,指定每页个数,默认20 page: 可选分页参数,指定第几页,默认1 返回: { "code":"aeolus/ok", "data":{ "members":[ { "description":null, "id":1, "name":"组名称", "originId":"组id", "source":0, # type为1时,source为0表示部门,1表示系统级组,2表示项目级组 "type":1 # type为1表示组 }, { "avatar":"头像链接", "departmentName":"部门名称", "emailPrefix":"用户名", "id":2, "name":"姓名", "originId":"用户名", "source":0, # type为0时source字段无用 "type":0 # type为0表示用户个 } ], "total":2 }, "msg":"成功" }
请求说明 请求地址:DELETE /aeolus/api/v3/open/userManagement/groupMember 请求参数 入参:json格式 { "appId": 1, 项目ID 类型int 必须参数 "subjectId": 12, 用户组Id 类型number 必须参数 "groups": [12,13], 用户组id列表(元素的类型为number) 可选参数 "users": [1,2], 用户id列表(元素的类型为number) 可选参数 } 返回示例 { "code": "aeolus/ok", "msg": "成功" }
请求说明 请求地址:PUT /aeolus/api/v3/open/userManagement/groupMember 请求参数 入参:json格式 { "appId": 1, 项目ID 类型int 必须参数 "subjectId": 6, 用户组Id 类型number 必须参数 "groups": [12,13], 用户组id列表(元素的类型为number) 可选参数 "users": [1,2], 用户id列表(元素的类型为number) 可选参数 } 返回示例 { "code": "aeolus/ok", "msg": "成功" }
请求说明 请求地址:DELETE /aeolus/api/v3/open/userManagement/user 请求参数 入参:json格式 { "appId": 1, 项目ID 类型int 必须参数 "subjectIdList": [12,13] 用户组Id列表(元素的类型为number) 必须参数 } 返回示例 { "code": "aeolus/ok", "data": { }, "msg": "成功" }
请求说明 请求地址:POST /aeolus/api/v3/open/userManagement/user 请求示例 入参:json格式 { 目标项目的id "appId": 1, 被操作的用户列表 "originIdList": ["xiajinfu.xjf"], 用户拥有的项目权限,枚举值,read_role, write_role, read_all_role, admin 重复添加用户会取消已有的更高级权限 比如用户原有项目编辑权限,重复添加了用户,且参数是read_role,用户会被取消编辑权限,只有读权限 "action": "read_role" } 返回示例 { "code": "aeolus/ok", "data": { 添加失败的用户列表 "fails": [] 添加成功的用户列表 "users": [] }, "msg": "成功" }
请求说明 请求地址:GET /aeolus/api/v3/open/userManagement/userList 请求参数 参数:query string appId: 必选参数,项目id kw: 可选参数,过滤关键词,不传则不过滤 perPage: 可选参数 page: 可选参数 返回示例 { "code": "aeolus/ok", "data": { "total": 1, 用户数量 "users": [{ "id": 100000000, "originId": "admin", "name": "admin", "email": "", "phoneNumber": "", "enable": true }] }, "msg": "成功" }
请求说明 请求地址:PUT http://{domain}/aeolus/api/v3/open/authManagement/resourceAuth 请求示例 参数为json格式,支持对一个资源同时授予多个人权限,如下: { // 项目id,类型为整型 "appId": {app_id}, // 授权资源id,类型为整型 "resId": {res_id}, // 资源类型,类型为字符串,数据集:data_set,仪表盘:dashboard,数据连接:data_connection "resType": {res_type}, // 权限,读:read_role,写:write_role,管理:admin "actions":["read_role"], // originId:用户名,type:0->人,1->组,可一次添加多个用户 "subjectList":[{"originId":"user_1", "type":0}] } 返回示例 { "code": "aeolus/ok", "data": { // 如果有失败则fails不为空 // originId:用户名,subjectType:0->人,1->组,reason:失败原因 "fails": [{"originId": "user_1", "subjectType": 0, "reason": "xxx"}] }, "msg": "成功" }
请求说明 请求地址:GET http://{domain}/aeolus/api/v3/open/authManagement/resourceAuth 请求参数 参数:query string appId: 必选参数,项目id resId: 必选参数,资源id resType: 必选参数,资源类型,data_set:数据集,dashboard:仪表盘 detailed: 可选参数,0:仅获取用户本身在资源上的权限,1:考虑用户通过角色和组继承的权限,默认0 返回示例 { "code": "aeolus/ok", "data": { // 角色权限明细列表(若有) "roleList": [ { // 权限清单,管理:admin,编辑:write_role,查看:read_role,仅阅览:view_only_role "actions": { "readRole": [ { // 角色名称 "name": "role 1", // 授权实体类型标志,0->人,1->组,2->角色 "subjectType": 2 } ], "viewOnlyRole": [ { "name": "role 1", "subjectType": 2 } ] }, // 角色管理员 "admins": [ { // 管理员头像地址 "avatar": "", // 管理员用户名 "originId": "user_1" } ], // 角色名称 "name": "role 1", // 角色id "originId": "role_1", // 角色key "roleKey": "role_key_1", // 授权实体类型标志,0->人,1->组,2->角色 "type": 2 } ], // 人和组权限明细列表 "subjects": [ { // 权限清单,管理:admin,编辑:write_role,查看:read_role,仅阅览:view_only_role "actions": { "admin": [ { // 授权实体名称 "name": "用户1", // 授权实体类型标志,0->人,1->组,2->角色 "subjectType": 0 } ], "readRole": [], "viewOnlyRole": [], "writeRole": [] }, // 头像地址 "avatar": "", // 部门 "department": "department_1", // 用户名(同originId) "emailPrefix": "", // 是否开启屏蔽组授权 "independentAuth": false, // 用户姓名 "name": "用户1", // 用户名 "originId": "user_1", // 授权实体来源(若为组)0->部门,1->系统级,2->项目级 "source": 0, // 授权实体内部id "subjectId": 1, // 授权实体类型标志,0->人,1->组,2->角色 "type": 0 } ] }, "msg": "成功" }
请求说明 请求地址:PUT http://{domain}/aeolus/api/v3/open/userManagement/subjectAttributeValue 请求参数 参数为json格式,originId表示的用户需要在系统中存在,如下: { // 项目id "appId": {app_id}, // 用户名 "originId": {origin_id}, // 属性id "attributeId": {attribute_id}, // 属性值 "valueList": ["test"] } 返回示例 { "code": "aeolus/ok", "data": {attribute_value_id}, "msg": "成功" }
用户属性id可以在用户属性页面上调用控制台查看,例如:
删除用户属性接口中的属性id同理。
请求说明 请求地址:DELETE http://{domain}/aeolus/api/v3/open/userManagement/subjectAttribute Authorization: Bearer jwt_token 请求参数 入参:json格式 { 项目id "appId":{appId}, 属性id "attributeId":65 } 返回示例 { "code": "aeolus/ok", "data": 65, "msg": "成功" }
请求说明 请求地址:GET http://{domain}/aeolus/api/v3/open/authManagement/filterRuleMember 请求参数 参数:query string appId: 必选参数,项目id filterRuleId: 必选参数,规则id perPage: 可选参数 page: 可选参数 kw: 可选参数,过滤关键词,不传则不过滤 orderBy: 可选参数,默认成员时间addTime排序 order: 可选参数,默认降序 needAll: 可选参数,1为返回全量;0为分页返回,默认为0 返回示例 { "code": "aeolus/ok", "data": { "subjectList": [ { // 添加时间 "addTime": "2022-01-01 00:00", "department": "", // 用户姓名 "name": "用户1", // 用户名 "originId": "user_1", // 0->人,1->组 "type": 0 "subjectId": 1, } ], // 总记录数 "total": 1 }, "msg": "成功" }
请求地址 POST http://{domain}/aeolus/api/v3/open/authManagement/filterRuleMember 请求参数 参数为json格式,originId表示的用户需要在系统中存在,如下: { // 项目id "appId": {app_id}, // 数据权限id "filterRuleId": {filter_rule_id}, // originId:用户名,type:0->人,1->组 "originList":[{"originId":"user_1", "type":0}] } 返回示例 { "code": "aeolus/ok", "data": { // 如果有失败则fails不为空 // originId:用户名,subjectType:0->人,1->组,reason:失败原因 "fails": [{"originId": "user_1", "subjectType": 0, "reason": "xxx"}] }, "msg": "成功" }
请求说明 请求地址 :DELETE http://{domain}/aeolus/api/v3/open/authManagement/filterRuleMember 请求参数 参数为json格式,originId表示的用户需要在系统中存在,如下: { // 项目id "appId": {app_id}, // 数据权限id "filterRuleId": {filter_rule_id}, // originId:用户名,type:0->人,1->组 "originList":[{"originId":"user_1", "type":0}] } 返回示例 { "code": "aeolus/ok", "data": { // 如果有失败则fails不为空 // originId:用户名,subjectType:0->人,1->组,reason:失败原因 "fails": [{"originId": "user_1", "type": 0, "reason": "xxx"}] }, "msg": "成功" }
请求说明 请求地址:GET http://{domain}/aeolus/api/v3/open/authManagement/dataPermissions 请求参数 参数:query string appId: 必选参数,项目id dataSetId: 必选参数,资源id page: 必选参数,第几页,1 perPage: 必选参数,每页多少,20 authOriginId: 可选参数,被授权人originId,zhangsan.1 返回示例 { "code": "aeolus/ok", "data": { // 是否开启黑白名单 "blackEnabled": false, // 规则列表 "filterRuleList": [ { // 项目ID "appId": 1, // 创建时间,默认按照创建时间排序 "ctime": "2022-08-02 15:40", // 数据集ID "dataSetId": ******, // 子规则列表 "filterRowList": [ { // 子规则ID "rowId": ****, // 子规则内容 "rowNode": { // 列权限受限数据集字段 "dimMetList": [ { // 数据集字段ID "id": 158*********190, // 数据集字段名 "name": "特殊字段" }, { "id": 158*********176, "name": "产品 ID" } ], // 列权限受限底表字段 "fieldList": [ { // 底表字段名 "fieldName": "国家/地区", // 底表字段关联的数据集字段 "relatedDimMetList": [ { // 数据集字段类型 "dataTypeName": "string", // 数据集字段关联的底表字段 "fieldList": "[\"国家/地区\"]", // 数据集字段ID "id": 158*********175, // 数据集字段名 "name": "国家/地区", "persisted": true } ] }, { "fieldName": "细分", "relatedDimMetList": [ { "dataTypeName": "string", "fieldList": "[\"细分\"]", "id": 158*********188, "name": "细分", "persisted": true } ] } ], // 子规则内关联关系,仅行权限有效,'and'->且,'or'->或 "linkType": "and" }, // 固定值还是动态值,仅行权限有效,0->固定值,1->动态值 "rowTmplType": 0, // 行权限还是列权限,0->行权限,1->列权限 "rowType": 1 } ], // 规则名字 "name": "测试2", // 规则创建者 "owner": { // 创建者头像 "avatar": "url", // 创建者名字 "name": "xxx", // 创建者origin_id "originId": "xxx", // 创建者类型,一般为0 "subjectType": 0 }, // 行权限还是列权限,0->行权限,1->列权限 "rowType": 1, // 规则ID "ruleId": 1447, // 规则适用对象列表 "subjectList": [ { // 用户origin_id,在用户中唯一标识 "originId": "xxx" // 邮箱前缀 "emailPrefix": null, // subject表ID "id": xxx, // 名字 "name": "xxx", // 和type一起判断组类型,0->部门组,1->系统组,2->项目组 "source": 0, // 个人还是用户组,1->组,0->个人 "type": 1 }, { "emailPrefix": "xxx", "id": xxx, "name": "xxx", "source": 0, // 个人 "type": 0 } ], // 规则类型,0->个人,1->审批流,一般TOB只有0 "type": 0 }, { "appId": 1, "ctime": "2022-08-02 15:39", "dataSetId": 183454, "filterRowList": [ { "rowId": 6248, "rowNode": { "dimMetList": [], "fieldList": [ { // 数据集字段ID "fieldId": 158*********180, // 数据集字段名 "fieldName": "城市", // 操作符,in->在列表内 "op": "in", // 用户属性ID,-1用户名,-2姓名,-3邮箱,-4部门,-5城市 "value": -5 }, { "fieldId": 158*********179, "fieldName": "子类别", "op": "in", // 用户自己设置的动态值属性 "value": 316 } ], // 子规则内关联关系,且 "linkType": "and" }, // 动态值 "rowTmplType": 1, // 行权限 "rowType": 0 }, { "rowId": 6249, "rowNode": { "dimMetList": [], "fieldList": [ { "fieldId": 158*********176, "fieldName": "产品 ID", // op与valOption组合为操作符 "op": "in", "valOption": {}, // 固定值 "value": [ "办公用-信封-10000017" ] }, { "fieldId": 158*********178, "fieldName": "地区", "op": "in", "valOption": {}, "value": [ "中南" ] } ], // 子规则内关联关系,或 "linkType": "or" }, // 固定值 "rowTmplType": 0, // 行权限 "rowType": 0 } ], "name": "ceshi121", "owner": { "avatar": "xxx", "name": "xxx", "originId": "xxx", "subjectType": 0 }, "rowType": 0, "ruleId": 1446, "subjectList": [ { "emailPrefix": "xxx", "id": xxx, "name": "xxx", "source": 0, "type": 0 }, { "emailPrefix": null, "id": xxx, "name": "xxx", "source": 0, "type": 1 } ], "type": 0 } ], // 合计,不受分页影响 "total": 9 }, "msg": "成功" }
新建行权限
请求说明 请求地址:POST http://{domain}/aeolus/api/v3/open/authManagement/filterRule 请求参数 参数为json格式,originId表示的用户需要在系统中存在,如下: { // 项目ID "appId": 1, // 数据集ID "dataSetId": ******, // 规则名字,同一数据集下不能重名 "name": "ceshi6", // 适用对象 "originList": [ { //subject表的origin_id "originId": "xxxx", // 个人还是组,0->个人,1->组 "type": 0 }, { "originId": "*****", "type": 1 } ], // 规则内容 "rowNodeList": [ { // 行权限还是列权限,0->行,1->列 "rowType": 0, // 动态值还是固定值,0->固定值,1->动态值 "rowTmplType": 0, // 子规则内容 "rowNode": { // 子规则内关联关系,'and'->且,'or'->或 "linkType": "or", "fieldList": [ { // 数据集ID "fieldId": ****, // 操作符,一般op和valOption结合确认操作符 "op": "in", // 辅助操作符 "valOption": {}, // 固定值 "value": [ "办公020" ] }, { "fieldId": {fieldId}, "op": "in", "valOption": {}, "value": [ "CN-20062" ] } ] } }, { "rowType": 0, // 动态值 "rowTmplType": 1, "rowNode": { // 子规则内,取'且'的逻辑判断 "linkType": "and", "fieldList": [ { "fieldId": {fieldId}, "op": "in", // 用户属性ID,-1用户名,-2姓名,-3邮箱,-4部门,-5城市 "value": -5 }, { "fieldId": {fieldId}, "op": "in", // 用户属性ID,大于0的是自建属性ID "value": 352 } ] } } ] } 返回示例 { "code": "aeolus/ok", "data": { // 规则ID "filterRuleId": 1450 }, "msg": "成功" }
新建列权限
请求说明 请求地址:POST http://{domain}/aeolus/api/v3/open/authManagement/filterRule 请求参数 参数为json格式,originId表示的用户需要在系统中存在,如下: { "appId": 1, "dataSetId": ******, "name": "ceshi8", "originList": [ { "originId": "xxx", "type": 0 } ], "rowNodeList": [ { //固定为1,列权限 "rowType": 1, // 固定为0 "rowTmplType": 0, "rowNode": { // 固定为'and' "linkType": "and", // 受限底表字段列表 "fieldList": [ { // 底表字段名 "fieldName": "地区" }, { "fieldName": "子类别" } ], // 受限数据集字段列表 "dimMetList": [ { // 数据集字段ID "id": {id}, // 数据集字段名 "name": "订单 ID" }, { "id": {id}, "name": "行 ID" } ] } } ] }
请求说明 请求地址:DELETE /aeolus/api/v3/open/authManagement/filterRule Authorization: Bearer jwt_token 请求参数 入参:json格式 { // 项目ID "appId": 1, // 行列权限规则ID "filterRuleId": **** } 返回示例 { "code": "aeolus/ok", "data": { "affectedRows": 1 }, "msg": "成功" }
请求说明 请求地址:PUT http://{domain}/aeolus/api/v3/open/authManagement/filterRule 请求参数 修改传参与新建传参基本一致,新增filterRuleId字段,指定更新哪个规则 参数为json格式,originId表示的用户需要在系统中存在,如下: { "appId": 1, "dataSetId":******, "name": "ceshi6", // 行列权限规则ID "filterRuleId": "****", "originList": [ { "originId": "*****", "type": 1 }, { "originId": "xielinjiang", "type": 0 } ], "rowNodeList": [ { "rowType": 0, "rowTmplType": 0, "rowNode": { "linkType": "or", "fieldList": [ { "fieldId": {fieldId}, "op": "in", "valOption": {}, "value": [ "办公用-信封-10000020" ] }, { "fieldId": {fieldId}, "op": "in", "valOption": {}, "value": [ "CN-2016-1******" ] } ] } }, { "rowType": 0, "rowTmplType": 1, "rowNode": { "linkType": "and", "fieldList": [ { "fieldId": {fieldId}, "op": "in", "value": -5 }, { "fieldId":{fieldId}, "op": "in", "value": 352 } ] } } ] } 返回示例 { "code": "aeolus/ok", "data": { "filterRuleId": **** }, "msg": "成功" }
参考获取数据集上的行列权限规则列表
使用字段 authOriginId
非新建数据权限,新建使用数据集上新建行列权限
接口
请求地址 POST http://{domain}/aeolus/api/v3/open/authManagement/filterRuleMember 请求参数 参数为json格式,originId表示的用户需要在系统中存在,如下: { // 项目ID "appId": 1, // 规则ID "filterRuleId": ****, // 需要授予权限的对象列表 "originList": [ { // 对象origin_id "originId": "xxx", // 指定0 "type": 0 } ] } 返回示例 { "code": "aeolus/ok", "data": { // 操作失败的用户会在这里 "fails": [ { "originId": "xxx", "reason": "subject未找到", "type": 0 } ] }, "msg": "成功" }
非删除数据权限,删除使用数据集上删除行列权限
接口
请求地址 DELETE http://{domain}/aeolus/api/v3/open/authManagement/filterRuleMember 请求参数 参数为 json 格式,originId 表示的用户需要在系统中存在,与授予权限一致,如下: { // 项目ID "appId": 1, // 规则ID "filterRuleId": ****, // 需要移除权限的对象列表 "originList": [ { // 对象origin_id "originId": "xxx", // 指定0 "type": 0 } ] } 返回示例 { "code": "aeolus/ok", "data": { // 操作失败的用户会在这里 "fails": [ { "originId": "xxx", "reason": "subject未找到", "type": 0 } ] }, "msg": "成功" }
请求地址 GET http://{domain}/aeolus/api/v3/open/authManagement/sensitiveDimMet 请求参数 参数:query string appId: 必选参数,项目id resType: 必选参数,资源类型,目前仅支持图表,report resId: 必选参数,资源ID 返回示例 { "code": "aeolus/ok", "data": { // 数据集ID "183454": { // 行权限 "0": { // 字段ID:字段名 "158*********176": "产品 ID", "158*********177": "订单 ID", "158*********178": "地区", "158*********179": "子类别", "158*********180": "城市", "158*********184": "订单日期", "158*********185": "发货日期", "158*********188": "细分", "158*********192": "折扣" }, // 列权限 "1": { // 字段ID:字段名 "158*********175": "国家/地区", "158*********176": "产品 ID", "158*********177": "订单 ID", "158*********178": "地区", "158*********179": "子类别", "158*********188": "细分", "158*********190": "特殊字段", "158*********193": "行 ID" } } }, "msg": "成功" }
说明
涉及数据行列权限通配符的说明详见数据行列权限操作符