1. 用户属性
1.1. 用户属性说明
1.1.1. 用户属性的定义
由系统定义或用户自定义的用户扩展变量,可作为可变参数用于数据连接、链接权限、行权限、高级表达式等功能
用户属性结构说明
字段 | 类型 | 是否必须 | 描述 |
---|---|---|---|
id | LONG | 否 | id |
name | STRING | 是 | 属性名称 |
scope | STRING | 是 | 用户属性作用范围:SYSTEM,INTERNAL,GLOBAL,SYSTEM为系统定义,用户不可添加或修改 |
openLevel | STRING | 是 | 用户属性开放级别:READ_ONLY,HIDDEN |
options | OBJECT | 是 | 用户属性的配置信息 |
options.type | STRING | 是 | 属性类型,支持:string,number,date,time,any |
options.defaultValue | OBJECT | 否 | 属性默认值,需与属性类型匹配,属性类型为any时可任意设置 |
用户属性使用说明
- 用户属性可用于连接权限或行权限的过滤
- 用户属性可用于表达式,使用格式为``
- 若用户属性设置了默认值,且当前被含有用户属性的过滤限制了的登陆用户,没有专门为自身设置这个属性的具体值,则在过滤时会使用默认值
- 系统定义的用户属性的默认名称前缀为
sys.
,用户自定义属性不可以此前缀开头 - 用户属性创建后,名称不可再变更
- 系统定义的用户属性不可修改,其值为用户对应的信息,如登录名,邮箱等
- 用户属性作用范围说明:
SYSTEM
为系统定义,用户不可添加或修改;INTERNAL
为内部属性,定义后只能在平台方或租户内部可用;GLOBAL
为全局属性,平台方与租户方都可以使用,由平台方定义并为租户方赋值,属性值被所有对应的租户内所有用户继承,租户不可修改或删除。 - 开放级别为
HIDDEN
的用户属性只能用于数据连接
,不可在应用
中使用。 - 开放级别为
HIDDEN
的平台方全局用户属性,对租户方不可见。 - 作用范围为
GLOBAL
的全局属性,在租户方有三个可取值的点:属性默认值(attr.defaultValue
)、平台方为租户设置的值(tenant.platformConfig
)、租户内用户通过sso登陆同步的值(user.platformConfig
),取值优先级为:user.platformConfig
>tenant.platformConfig
>attr.defaultValue
1.2. 接口说明
1.2.1. 创建用户属性
创建用户属性。
请求URL
POST /api/v1/users/attrs
请求参数
URL 参数
无
request body 参数
返回对象的格式说明
字段 | 类型 | 说明 |
---|---|---|
version | STRING | 当前系统版本哈希值 |
data | OBEJCT | 添加的用户属性 |
接口示例1: 创建用户属性
POST /api/v1/users/attrs
{
"name": "test",
"scope": "INTERNAL",
"openLevel": "READ_ONLY",
"options": {
"type": "number",
"defaultValue": 1
}
}
返回
{
"version": "3.2-SNAPSHOT@@git.commit.id.abbrev@#null",
"code": 0,
"msg": "success",
"data": {
"id": 3,
"name": "test",
"scope": "INTERNAL",
"openLevel": "READ_ONLY",
"options": {
"type": "number",
"defaultValue": 1,
"allowAllValue": true
},
"createdBy": 1,
"createdAt": "2020-07-08 15:42:59",
"updatedBy": 1,
"updatedAt": "2020-07-08 15:42:59"
}
}
接口示例2: 创建用户属性
POST /api/v1/users/attrs
{
"name": "testAny",
"scope": "INTERNAL",
"openLevel": "READ_ONLY",
"options": {
"type": "any",
"defaultValue": "[\"星际穿越\",\"饮食男女\"]"
}
}
返回
{
"version": "3.2-SNAPSHOT@@git.commit.id.abbrev@#null",
"code": 0,
"msg": "success",
"data": {
"id": 4,
"name": "testAny",
"scope": "INTERNAL",
"openLevel": "READ_ONLY",
"options": {
"type": "any",
"defaultValue": "[\"星际穿越\",\"饮食男女\"]",
"allowAllValue": true
},
"createdBy": 1,
"createdAt": "2020-07-08 15:50:40",
"updatedBy": 1,
"updatedAt": "2020-07-08 15:50:40"
}
}
1.2.2. 修改用户属性
修改用户属性。
说明
PUT /api/v1/users/attrs/{attrId}
请求参数
URL 参数
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
attrId | LONG | 是 | 被修改用户属性的 id |
request body 参数
返回对象的格式说明
字段 | 类型 | 说明 |
---|---|---|
version | STRING | 当前系统版本哈希值 |
data | OBEJCT | 修改的用户属性 |
接口示例1: 修改用户属性
PUT /api/v1/users/attrs/3
{
"options": {
"type": "string",
"defaultValue": "aaa"
}
}
返回
{
"version": "3.2-SNAPSHOT@@git.commit.id.abbrev@#null",
"code": 0,
"msg": "success",
"data": {
"id": 3,
"name": "test",
"scope": "INTERNAL",
"openLevel": "READ_ONLY",
"editable": true,
"options": {
"type": "string",
"defaultValue": "aaa",
"allowAllValue": true
},
"createdBy": 1,
"createdAt": "2020-07-08 15:42:59",
"updatedBy": 1,
"updatedAt": "2020-07-08 15:54:13",
"isDelete": false
}
}
1.2.3. 删除用户属性
删除用户属性
说明
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
attrId | LONG | 是 | 被删除用户属性的 id |
返回对象的格式说明
字段 | 类型 | 说明 |
---|---|---|
version | STRING | 当前系统版本哈希值 |
接口示例1: 删除用户
DELETE /api/v1/users/attrs/{attrId}
返回:
{
"version": "3.2-SNAPSHOT@@git.commit.id.abbrev@#null",
"code": 0,
"msg": "success"
}
1.2.4. 获取用户属性列表
请求URL
GET /api/v1/users/attrs?offset=0&limit=1000&queryValueSet=true
需要认证:是
请求参数
URL 参数
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
offset | INTEGER | 可选 | 分页偏移量,默认是0 |
limit | INTEGER | 可选 | 分页获取个数,默认是10 |
queryValueSet | BOOLEAN | 可选 | 是否要获取每条属性在设置了该属性的所有用户中的distinct值列表 |
返回对象的格式说明
字段 | 类型 | 说明 |
---|---|---|
version | STRING | 当前系统版本哈希值 |
data | OBEJCT | 系统中的用户属性 |
接口示例1: 获取用户属性列表
GET /api/v1/users/attrs?offset=0&limit=1000&queryValueSet=true
返回:
{
"version": "3.2-SNAPSHOT@@git.commit.id.abbrev@#null",
"code": 0,
"msg": "success",
"data": [
{
"name": "sys.id",
"scope": "SYSTEM",
"openLevel": "READ_ONLY",
"editable": false,
"options": {
"type": "number",
"allowAllValue": true
},
"valueSet": [
1,
2,
3,
4,
5
]
},
{
"name": "sys.name",
"scope": "SYSTEM",
"openLevel": "READ_ONLY",
"editable": false,
"options": {
"type": "string",
"allowAllValue": true
},
"valueSet": [
"test",
"test2",
"test3",
"test4",
"test5"
]
},
{
"name": "sys.login_name",
"scope": "SYSTEM",
"openLevel": "READ_ONLY",
"editable": false,
"options": {
"type": "string",
"allowAllValue": true
},
"valueSet": [
"test",
"test2",
"test3",
"test4",
"test5"
]
},
{
"name": "sys.loginName",
"scope": "SYSTEM",
"openLevel": "READ_ONLY",
"editable": false,
"options": {
"type": "string",
"allowAllValue": true
},
"valueSet": [
"test",
"test2",
"test3",
"test4",
"test5"
]
},
{
"name": "sys.email",
"scope": "SYSTEM",
"openLevel": "READ_ONLY",
"editable": false,
"options": {
"type": "string",
"allowAllValue": true
},
"valueSet": [
"test@hengshi.com",
"test2@hengshi.com",
"test3@hengshi.com",
"test4@hengshi.com",
"test5@hengshi.com"
]
},
{
"name": "sys.mobile",
"scope": "SYSTEM",
"openLevel": "READ_ONLY",
"editable": false,
"options": {
"type": "string",
"allowAllValue": true
},
"valueSet": []
},
{
"id": 1,
"name": "a1",
"scope": "INTERNAL",
"openLevel": "READ_ONLY",
"editable": true,
"options": {
"type": "any",
"allowAllValue": true
},
"createdBy": 1,
"createdAt": "2020-07-07 19:34:15",
"updatedBy": 1,
"updatedAt": "2020-07-07 19:34:15",
"isDelete": false,
"valueSet": [
"[\"-1\"]",
"你好",
"1"
]
},
{
"id": 2,
"name": "a2",
"scope": "GLOBAL",
"openLevel": "READ_ONLY",
"editable": true,
"options": {
"type": "any",
"allowAllValue": true
},
"createdBy": 1,
"createdAt": "2020-07-07 19:34:17",
"updatedBy": 1,
"updatedAt": "2020-07-07 19:34:17",
"isDelete": false,
"valueSet": [
[
"5"
],
"[\"你好\"]",
"测试"
]
},
{
"id": 5,
"name": "t",
"scope": "INTERNAL",
"openLevel": "HIDDEN",
"editable": true,
"options": {
"type": "time",
"allowAllValue": true
},
"createdBy": 1,
"createdAt": "2020-07-08 16:10:47",
"updatedBy": 1,
"updatedAt": "2020-07-08 16:10:47",
"isDelete": false,
"valueSet": [
"2020-07-23 16:11:00",
"2025-07-18 16:12:01"
]
},
{
"id": 3,
"name": "test",
"scope": "GLOBAL",
"openLevel": "HIDDEN",
"editable": true,
"options": {
"type": "string",
"defaultValue": "aaa",
"allowAllValue": true
},
"createdBy": 1,
"createdAt": "2020-07-08 15:42:59",
"updatedBy": 1,
"updatedAt": "2020-07-08 15:54:13",
"isDelete": false,
"valueSet": [
"test2",
"qqq"
]
}
],
"totalHits": 10,
"offset": 0
}
1.2.5. 根据ID获取用户属性
请求URL
GET /api/v1/users/attrs/{attrId}
需要认证:是
请求参数
URL 参数
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
attrId | LONG | 是 | 被修改用户属性的 id |
返回对象的格式说明
字段 | 类型 | 说明 |
---|---|---|
version | STRING | 当前系统版本哈希值 |
data | OBEJCT | 系统中的用户属性 |
接口示例1: 根据ID获取用户属性
GET /api/v1/users/attrs/3
返回:
{
"version": "3.2-SNAPSHOT@@git.commit.id.abbrev@#null",
"code": 0,
"msg": "success",
"data": {
"id": 3,
"name": "test",
"scope": "INTERNAL",
"openLevel": "READ_ONLY",
"editable": true,
"options": {
"type": "string",
"defaultValue": "aaa",
"allowAllValue": true
},
"createdBy": 1,
"createdAt": "2020-07-08 15:42:59",
"updatedBy": 1,
"updatedAt": "2020-07-08 15:54:13",
"isDelete": false
}
}