This solution mainly discusses the data permission scheme of HENGSHI SENSE, which means that in the HENGSHI SENSE system, by synchronizing the internal personnel attributes and organizational structure information of the enterprise, the data reading permissions for each user within the enterprise for business data are implemented.
The expected readers of this solution are: HENGSHI SENSE design and development personnel, and enterprise customer developers of HENGSHI SENSE.
To meet customer demands of filtering data based on business system data permissions.
No. | Term | Explanation |
---|---|---|
1 | Permission | The range of authority a user has over resources |
2 | Functional Permissions | Operational permissions a user has on the HENGSHI SENSE system |
3 | Data Permissions | The data set basis for calculations when a user views each report in the HENGSHI SENSE system |
4 | User Attributes | A part of user-defined information (user attributes/portraits, used to filter user groups, filter data), generally synchronized to HENGSHI SENSE, see 3.1 for details |
5 | Organizational Structure | Internal organizational structure information of an enterprise, generally in a tree-like structure, each user belongs to one or several nodes (currently, HENGSHI SENSE only supports one) |
= Authorized User Group + Data Filter
Design principles of processes:
Process:

Explanation of the process:
Example 1:
Table A includes Company C, subsidiaries CC1 and CC2, and companies D and E. The organizational id field in Table A is represented as org_id. User U's accessible organization id collection includes the ids of C, CC1, CC2. Therefore, according to the permission filter, the data visible to user U is only of C, CC1, CC2.
Parameter | Description | Notes |
---|---|---|
login_name | Username | Unique/Required |
name | Display Name | Required |
Unique | ||
Enabled/Disabled flag | Required (Reserved, not enabled) | |
mobile | Mobile Number | Unique |
Note | Can be empty (Reserved, not enabled) | |
group_ids | List of User Group IDs | |
role_ids | List of Role IDs | |
{XXX} | Other custom attributes | Only supports numbers, strings, arrays (elements are numbers or strings) |
Parameter | Description | Notes |
---|---|---|
dept_ids | List of Department IDs | Customizable name |
org_ids | List of Organizational IDs | Customizable name |
permit_dept_ids | List of Department IDs user has permission to access | Customizable name |
permit_org_ids | List of Organizational IDs user has permission to access | Customizable name |
inhibit_dept_ids | List of Department IDs user is prohibited from accessing | Customizable name |
inhibit_org_ids | List of Organizational IDs user is prohibited from accessing | Customizable name |
Example:
{
"login_name":"zhangjunjie",
"email_verified":false,
"nickname":"Zhang Junjie",
"name":"Zhang Junjie",
"mobile":"13383338333",
"preferred_username":"zhangjunjie",
"given_name":"Junjie",
"family_name":"Zhang",
"mail":"zhangjunjie@hengshi.com",
"dept_ids":[
"1",
"2"
],
"org_ids":[
"1"
],
"permit_dept_ids":[
"1",
"2",
"3"
],//This user can access data with department identifiers (id, number, name) 1, 2, 3
"permit_org_ids":[
],
"inhibit_dept_ids":[
],
"inhibit_org_ids":[
"5",
"6"
],//This user cannot access data with organization identifiers (id, number, name) 5, 6
"role_ids":[
1,
2
],
"group_ids":[
1,
2
]
}
Return value:
{
"login_name":"zhangjunjie",
"email_verified":false,
"nickname":"Zhang Junjie",
"name":"Zhang Junjie",
"mobile":"13383338333",
"preferred_username":"zhangjunjie",
"given_name":"Junjie",
"family_name":"Zhang",
"mail":"zhangjunjie@hengshi.com",
"dept_ids":[
"1",
"2"
],
"org_ids":[
"1"
],
"permit_dept_ids":[
"1",
"2",
"3"
],//This user can access data with department identifiers (id, number, name) 1, 2, 3
"permit_org_ids":[
],
"inhibit_dept_ids":[
],
"inhibit_org_ids":[
"5",
"6"
],//This user cannot access data with organization identifiers (id, number, name) 5, 6
"role_ids":[
1,
2
],
"group_ids":[
1,
2
]
}
You can customize user properties, as shown below:
CAS/SAML2 cannot pass permission information for the time being, it is synchronized by the synchronization interface.