You need to enable JavaScript to run this app.
导航

用户、用户组、权限 Open API

最近更新时间2023.08.09 15:52:46

首次发布时间2022.10.27 19:45:04

1. 创建用户组
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": "成功"
}
2. 删除用户组成员
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": "成功"
}
3. 添加用户组成员
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": "成功"
}
4. 从项目中删除用户
DELETE /aeolus/api/v3/open/userManagement/user

入参:json格式
{
    "appId": 1,    项目ID  类型int  必须参数
    "subjectIdList": [12,13]    用户组Id列表(元素的类型为number) 必须参数
}

返回:
{
  "code": "aeolus/ok", 
  "data": {
  }, 
  "msg": "成功"
}
5. 添加用户到项目中
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": "成功"
}
6. 获取项目用户列表
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": "成功"
}
7. 授权接口
PUT http://{domain}/aeolus/api/v3/open/authManagement/resourceAuth

参数为json格式,支持对一个资源同时授予多个人权限,如下:
{
    // 项目id,类型为整型
    "appId": {app_id},
    // 授权资源id,类型为整型
    "resId": {res_id},
    // 资源类型,类型为字符串,数据集:data_set,仪表盘:dashboard
    "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": "成功"
}
8. 获取资源授权明细
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": "成功"
}
9. 更改用户属性接口
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同理。

10. 删除用户属性接口
DELETE http://{domain}/aeolus/api/v3/open/userManagement/subjectAttribute
Authorization: Bearer jwt_token

入参:json格式
{
     项目id
    "appId":7777781,
     属性id
    "attributeId":65
}
出参
{
  "code": "aeolus/ok", 
  "data": 65, 
  "msg": "成功"
}
11. 获取数据权限成员接口
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": "成功"
}
12. 添加数据权限成员接口
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": "成功"
}
13. 删除数据权限成员接口
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": "成功"
}
14. 获取数据集上的行列权限规则列表
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": 183454,
                // 子规则列表
                "filterRowList": [
                    {
                        // 子规则ID
                        "rowId": 6247,
                        // 子规则内容
                        "rowNode": {
                            // 列权限受限数据集字段
                            "dimMetList": [
                                {
                                    // 数据集字段ID
                                    "id": 1586869489190,
                                    // 数据集字段名
                                    "name": "特殊字段"
                                },
                                {
                                    "id": 1586869489176,
                                    "name": "产品 ID"
                                }
                            ],
                            // 列权限受限底表字段
                            "fieldList": [
                                {
                                    // 底表字段名
                                    "fieldName": "国家/地区",
                                    // 底表字段关联的数据集字段
                                    "relatedDimMetList": [
                                        {
                                            // 数据集字段类型
                                            "dataTypeName": "string",
                                            // 数据集字段关联的底表字段
                                            "fieldList": "[\"国家/地区\"]",
                                            // 数据集字段ID
                                            "id": 1586869489175,
                                            // 数据集字段名
                                            "name": "国家/地区",
                                            "persisted": true
                                        }
                                    ]
                                },
                                {
                                    "fieldName": "细分",
                                    "relatedDimMetList": [
                                        {
                                            "dataTypeName": "string",
                                            "fieldList": "[\"细分\"]",
                                            "id": 1586869489188,
                                            "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": 1586869489180,
                                    // 数据集字段名
                                    "fieldName": "城市",
                                    // 操作符,in->在列表内
                                    "op": "in",
                                    // 用户属性ID,-1用户名,-2姓名,-3邮箱,-4部门,-5城市
                                    "value": -5
                                },
                                {
                                    "fieldId": 1586869489179,
                                    "fieldName": "子类别",
                                    "op": "in",
                                    // 用户自己设置的动态值属性
                                    "value": 316
                                }
                            ],
                            // 子规则内关联关系,且
                            "linkType": "and"
                        },
                        // 动态值
                        "rowTmplType": 1,
                        // 行权限
                        "rowType": 0
                    },
                    {
                        "rowId": 6249,
                        "rowNode": {
                            "dimMetList": [],
                            "fieldList": [
                                {
                                    "fieldId": 1586869489176,
                                    "fieldName": "产品 ID",
                                    // op与valOption组合为操作符
                                    "op": "in",
                                    "valOption": {},
                                    // 固定值
                                    "value": [
                                        "办公用-信封-10000017"
                                    ]
                                },
                                {
                                    "fieldId": 1586869489178,
                                    "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": "成功"
}
15. 数据集上新建行列权限

新建行权限

POST http://{domain}/aeolus/api/v3/open/authManagement/filterRule

参数为json格式,originId表示的用户需要在系统中存在,如下:
{
    // 项目ID
    "appId": 1,
    // 数据集ID
    "dataSetId": 183454,
    // 规则名字,同一数据集下不能重名
    "name": "ceshi6",
    // 适用对象
    "originList": [
        {
            //subject表的origin_id
            "originId": "xxxx",
            // 个人还是组,0->个人,1->组
            "type": 0
        },
        {
            "originId": "72345",
            "type": 1
        }
    ],
    // 规则内容
    "rowNodeList": [
        {
            // 行权限还是列权限,0->行,1->列
            "rowType": 0,
            // 动态值还是固定值,0->固定值,1->动态值
            "rowTmplType": 0,
            // 子规则内容
            "rowNode": {
                // 子规则内关联关系,'and'->且,'or'->或
                "linkType": "or",
                "fieldList": [
                    {
                        // 数据集ID
                        "fieldId": 15866,
                        // 操作符,一般op和valOption结合确认操作符
                        "op": "in",
                        // 辅助操作符
                        "valOption": {},
                        // 固定值
                        "value": [
                            "办公020"
                        ]
                    },
                    {
                        "fieldId": 1586869489177,
                        "op": "in",
                        "valOption": {},
                        "value": [
                            "CN-20062"
                        ]
                    }
                ]
            }
        },
        {
            "rowType": 0,
            // 动态值
            "rowTmplType": 1,
            "rowNode": {
                // 子规则内,取'且'的逻辑判断
                "linkType": "and",
                "fieldList": [
                    {
                        "fieldId": 158649180,
                        "op": "in",
                        // 用户属性ID,-1用户名,-2姓名,-3邮箱,-4部门,-5城市
                        "value": -5
                    },
                    {
                        "fieldId": 158649188,
                        "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": 183454,
    "name": "ceshi8",
    "originList": [
        {
            "originId": "xxx",
            "type": 0
        }
    ],
    "rowNodeList": [
        {
            //固定为1,列权限
            "rowType": 1,
            // 固定为0
            "rowTmplType": 0,
            "rowNode": {
                // 固定为'and'
                "linkType": "and",
                // 受限底表字段列表
                "fieldList": [
                    {
                        // 底表字段名
                        "fieldName": "地区"
                    },
                    {
                        "fieldName": "子类别"
                    }
                ],
                // 受限数据集字段列表
                "dimMetList": [
                    {
                        // 数据集字段ID
                        "id": 1586869489177,
                        // 数据集字段名
                        "name": "订单 ID"
                    },
                    {
                        "id": 1586869489193,
                        "name": "行 ID"
                    }
                ]
            }
        }
    ]
}
16. 数据集上删除行列权限
DELETE /aeolus/api/v3/open/authManagement/filterRule
Authorization: Bearer jwt_token

入参:json格式
{
    // 项目ID
    "appId": 1,
    // 行列权限规则ID
    "filterRuleId": 1449
}
出参
{
    "code": "aeolus/ok",
    "data": {
        "affectedRows": 1
    },
    "msg": "成功"
}
17. 数据集上修改行列权限
PUT http://{domain}/aeolus/api/v3/open/authManagement/filterRule

修改传参与新建传参基本一致,新增filterRuleId字段,指定更新哪个规则
参数为json格式,originId表示的用户需要在系统中存在,如下:
{
    "appId": 1,
    "dataSetId": 183454,
    "name": "ceshi6",
    // 行列权限规则ID
    "filterRuleId": "1450",
    "originList": [
        {
            "originId": "77429",
            "type": 1
        },
        {
            "originId": "xielinjiang",
            "type": 0
        }
    ],
    "rowNodeList": [
        {
            "rowType": 0,
            "rowTmplType": 0,
            "rowNode": {
                "linkType": "or",
                "fieldList": [
                    {
                        "fieldId": 1586869489176,
                        "op": "in",
                        "valOption": {},
                        "value": [
                            "办公用-信封-10000020"
                        ]
                    },
                    {
                        "fieldId": 1586869489177,
                        "op": "in",
                        "valOption": {},
                        "value": [
                            "CN-2016-1340062"
                        ]
                    }
                ]
            }
        },
        {
            "rowType": 0,
            "rowTmplType": 1,
            "rowNode": {
                "linkType": "and",
                "fieldList": [
                    {
                        "fieldId": 1586869489180,
                        "op": "in",
                        "value": -5
                    },
                    {
                        "fieldId": 1586869489188,
                        "op": "in",
                        "value": 352
                    }
                ]
            }
        }
    ]
}

接口返回:
{
    "code": "aeolus/ok",
    "data": {
        "filterRuleId": 1450
    },
    "msg": "成功"
}
18. 获取数据集上指定人的行列权限规则列表

参考获取数据集上的行列权限规则列表
使用字段 authOriginId

19. 在数据集上指定用户授权指定数据权限规则

非新建数据权限,新建使用数据集上新建行列权限接口

POST http://{domain}/aeolus/api/v3/open/authManagement/filterRuleMember

参数为json格式,originId表示的用户需要在系统中存在,如下:

{
    // 项目ID
    "appId": 1,
    // 规则ID
    "filterRuleId": 1452,
    // 需要授予权限的对象列表
    "originList": [
        {
            // 对象origin_id
            "originId": "xxx",
            // 指定0
            "type": 0
        }
    ]
}

返回:
{
    "code": "aeolus/ok",
    "data": {
        // 操作失败的用户会在这里
        "fails": [
            {
                "originId": "xxx",
                "reason": "subject未找到",
                "type": 0
            }
        ]
    },
    "msg": "成功"
}
20. 在数据集上指定用户移除指定数据权限规则权限

非删除数据权限,删除使用数据集上删除行列权限接口

DELETE http://{domain}/aeolus/api/v3/open/authManagement/filterRuleMember

参数为 json 格式,originId 表示的用户需要在系统中存在,与授予权限一致,如下:

{
    // 项目ID
    "appId": 1,
    // 规则ID
    "filterRuleId": 1452,
    // 需要移除权限的对象列表
    "originList": [
        {
            // 对象origin_id
            "originId": "xxx",
            // 指定0
            "type": 0
        }
    ]
}

返回:
{
    "code": "aeolus/ok",
    "data": {
        // 操作失败的用户会在这里
        "fails": [
            {
                "originId": "xxx",
                "reason": "subject未找到",
                "type": 0
            }
        ]
    },
    "msg": "成功"
}
21. 获取图表上所有设置过行列权限的字段
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:字段名
                "1586869489176": "产品 ID",
                "1586869489177": "订单 ID",
                "1586869489178": "地区",
                "1586869489179": "子类别",
                "1586869489180": "城市",
                "1586869489184": "订单日期",
                "1586869489185": "发货日期",
                "1586869489188": "细分",
                "1586869489192": "折扣"
            },
            // 列权限
            "1": {
                // 字段ID:字段名
                "1586869489175": "国家/地区",
                "1586869489176": "产品 ID",
                "1586869489177": "订单 ID",
                "1586869489178": "地区",
                "1586869489179": "子类别",
                "1586869489188": "细分",
                "1586869489190": "特殊字段",
                "1586869489193": "行 ID"
            }
        }
    },
    "msg": "成功"
}

说明

涉及数据行列权限通配符的说明详见数据行列权限操作符