Rights and Roles Service
Rights and Roles
- Get all the available roles
- Get all the available rights
- Get details of the role
- Get all project's roles assigned by right and roles template
- Make a team member part of a project by assigning a role to him
- Get the project members along with their respective roles
- Update the project role of a team member
- Remove the user from the project
Rights and Roles Service
Rights and Roles
Get all the available roles
URL: https://api-stage.bimplus.net/v2/<team_slug>/roles
Example: https://api-stage.bimplus.net/v2/best-company/roles
Optional query parameters
Name | Type | Default value | Description |
---|---|---|---|
rights | boolean | true | When query parameter "rights=false" is defined, the API call will returns all roles. i.e. not only roles which contains |
customrole | boolean | When query parameter customrole is defined e.g. "customrole=true", the API call will returns only roles which have value of property "customRole" equal to query parameter. |
Get all the available roles. Right now, we support only project based roles and custom roles.
Here is the definition of Bimplus Rights and Roles.
Account Owner | Project Admin | Project Editor | Project Viewer | |
Create project | x | |||
Admin project | x | x | ||
Delete project | x | x | ||
Edit project | x | x | x | |
View project | x | x | x | x |
Create model | x | x | ||
View all models | x | x | x | x |
Model rights and roles are not supported yet, the project rights are used instead - meaning e.g. update model requires ProjectEdit rights
The custom roles contains also definition for which resource and rights are valid.
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 Ok
[ { "id": "a298b28d-9711-4a76-9a7d-910cbf144ee5", "name": "Project_Admin", "type": "Project", "rank": 3, "customRole": true, "resources": [{ "id": "cc49128e-9416-4bfc-a695-b17365dc7a5e", "resource": "Project", "rights": [ "ProjectAdmin" ], "rightsAccess": [{ "id": "815ce797-da07-4372-8a59-609f7106ab09", "name": "Project", "access": "Admin" } ] } ] }, { "id": "a618d075-7e4a-4bde-9d58-d2979696fa96", "name": "Project_Viewer", "type": "Project", "rank": 1, "customRole": true, "resources": [{ "id": "cc49128e-9416-4bfc-a695-b17365dc7a5e", "resource": "Project", "rights": [ "ProjectView" ], "rightsAccess": [{ "id": "815ce797-da07-4372-8a59-609f7106ab09", "name": "Project", "access": "View" } ] } ] } ... ]
Get all the available rights
Resource: <team_slug>/rights
URL: https://api-stage.bimplus.net/v2/<team_slug>/rights
Example: https://api-stage.bimplus.net/v2/best-company/rights
JSON Structure:
Name |
Mandatory / Optional |
Type |
Description |
---|---|---|---|
id |
mandatory |
string (guid) |
Id of the right resource type |
resource |
mandatory |
string |
The name of the right resource type |
rights |
mandatory |
object |
Dictionary of the pairs of right id together with its name |
access |
mandatory |
JSON Array |
Array of the strings represented access right. Can be combination of predefined rights "View", "Edit", "Admin" |
Optional query parameters:
Following query parameters allows reduce set of returned right resource types. By default will be returned all defined right resource types.
Name |
Type |
Default value |
Description |
---|---|---|---|
project |
boolean |
true |
When query parameter "project=false" is defined, the API call will returns all right resource types except project right resource type. |
global |
boolean |
true |
When query parameter "global=false" is defined, the API call will returns all right resource types except global right resource type. |
document |
boolean |
true |
When query parameter "document=false" is defined, the API call will returns all right resource types except document right resource type. |
globalfreeattributes |
boolean |
true |
When query parameter "globalfreeattributes=false" is defined, the API call will returns all right resource types except globalfreeattributes right resource type. |
Get all the available rights returns array of right resource types with defined rights.
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 Ok
[ { "id":"173e7a88-16d9-4d88-92bf-270fff458435", "resource":"Document", "rights":{ "73ca755b-eb41-4abf-8d72-6360f638a34c":"documentshare", "f53dac0d-8ef8-48bd-9fa5-b49831bcf671":"documentdelete", "6513c54f-0531-47e2-853d-56a25a226765":"documentdownloaddenied", "820eb26b-7469-48bd-b10f-0c69e631c910":"documentviewdenied", "d7727bed-38b8-4a77-b61d-397fb01f1ad8":"documentupdate" }, "access":["Edit" ] }, { "id":"cc49128e-9416-4bfc-a695-b17365dc7a5e", "resource":"Project", "rights":{ "815ce797-da07-4372-8a59-609f7106ab09":"project" }, "access":["View", "Edit", "Admin" ] }, { "id":"9dae8bb5-77c1-47a6-a916-d4948583b0b9", "resource":"Global", "rights":{ "c64151c5-ecde-4e2c-ba53-d0390f480461":"projectdelete", "6bbc401b-7cd5-4684-a11d-e2448befb3c1":"projectcreate", "99bad6fc-0539-4848-84af-62b6df31eaa3":"allattributes", "3b3f10c1-93a6-4d15-a727-e38e2fb9b0b2":"alldocuments", "cc3416d3-c570-4dc6-aa84-72216d3f58da":"allmodels", "9351251b-9631-499e-8e23-68ffe70ef3b7":"allprojects" }, "access":["Edit" ] }, { "id":"500766a6-2525-45db-b9cd-b2a3d8092ba9", "resource":"GlobalFreeAttributes", "rights":{ "061a3842-9b4d-4d19-8651-2f9373c42842":"freeattribute", "63b9bfad-db9f-4bbe-a902-7716c440a200":"attributetemplate", "04f5c272-3dec-4bce-85ae-6abb2e936ef8":"projectattributetemplate", "2a0e7bed-9fbf-46bc-987a-7a6c5c638f98":"freeattributegroup", "b886cab2-fcce-4a77-ab2d-09f704e363b7":"teammembership" }, "access":["View", "Edit" ] } ]
Get details of the role
Resource: <team_slug>/roles/<role_id>
URL: https://api-stage.bimplus.net/v2/<team_slug>/roles/<role_id>
Example: https://api-stage.bimplus.net/v2/bimplus/roles/94a60a79-7c81-454b-8158-ffdb9a2bf4d6
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
{ "id" : "94a60a79-7c81-454b-8158-ffdb9a2bf4d6", "name":"Test", "customRole":true, "resources":[{ "id":"4e587ea1-5098-45cd-9655-15f90c16dc58", "resource":"Layer", "rights":["Room" ], "rightsAccess":[{ "id":"52bbc329-dab3-a81c-b548-09c715786a81", "name":"RoomModel", "access":"Edit" } ] } ] }
Get all project's roles assigned by right and roles template
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/roles
Example: https://api-stage.bimplus.net/v2/bimplus/projects/b8615afc-99cc-4bcd-b0ca-ff0593ce15c6/roles
JSON Structure: The structure of object is the same as in get all available roles.
The rightsandrolestemplate query parameter should not be used, due to it is implicitly set to actual project rights and roles template id.
Each project has by default assigned free attribute "RightsAndRoles template" which defines rights and roles template.
The API call will returns all project's roles assigned by rights and roles template.
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 201 Created
[ { "id": "94a60a79-7c81-454b-8158-ffdb9a2bf4d6", "name": "TEST1", "customRole": true, "resources": [ { "id": "4e587ea1-5098-45cd-9655-15f90c16dc58", "resource": "Layer", "rights": [ "RoomModel" ], "rightsAccess": [ { "id": "52bbc329-dab3-a81c-b548-09c715786a81", "name": "RoomModel", "access": "Edit" } ] } ] }, { "id": "391fb0fc-43ec-464c-bd18-b5223b32bd14", "name": "TEST2", "customRole": true, "resources": [ { "id": "9dae8bb5-77c1-47a6-a916-d4948583b0b9", "resource": "Global", "rights": [ "AllModels", "ProjectCreate", "AllAttributes" ], "rightsAccess": [ { "id": "cc3416d3-c570-4dc6-aa84-72216d3f58da", "name": "AllModels", "access": "Edit" }, { "id": "6bbc401b-7cd5-4684-a11d-e2448befb3c1", "name": "ProjectCreate", "access": "Edit" }, { "id": "99bad6fc-0539-4848-84af-62b6df31eaa3", "name": "AllAttributes", "access": "Edit" } ] } ] } ... ]
Make a team member part of a project by assigning a role to him
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/members
Example: https://api-stage.bimplus.net/v2/bimplus/projects/b8615afc-99cc-4bcd-b0ca-ff0593ce15c6/members
JSON Structure:
Name |
Mandatory / Optional |
Type |
Description |
---|---|---|---|
member |
mandatory |
object |
The member who will be assigned a role to the project. |
role |
mandatory |
object |
The project role which will be assigned to the team member. |
roles | mandatory | JSON Array | Array of role objects, each object must have defined role id. |
group | optional | Object | Object which contains pairs of group's id and group's role where the new user belongs. |
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
{ "member": { "id": "bf5b2382-1d14-b8df-8454-947f83b45c25", }, "role": { "id": "f11d32e2-30b7-4f81-8a74-2165ecc00cf6", } "roles":[ { "id": "f11d32e2-30b7-4f81-8a74-2165ecc00cf6", }, { "id":"391fb0fc-43ec-464c-bd18-b5223b32bd14", }, { "id":"33078aed-0473-4714-beb9-ab989959afdd", } ], "group": { "id": "9a63fe8e-4b80-4c21-af1b-4344f95df6bc", "role": "da3c04d7-b593-4017-b6c3-4c9eed7699bb" } }
Status: 201 Created
{ "member": { "id": "bf5b2382-1d14-b8df-8454-947f83b45c25", "email": "testuser@bimplus.net", "firstname" : "Test", "lastname" : "User", ... }, "role": { "id": "f11d32e2-30b7-4f81-8a74-2165ecc00cf6", "name": "Project_Editor" } "roles":[ { "id": "f11d32e2-30b7-4f81-8a74-2165ecc00cf6", "name": "Project_Editor" }, { "id":"391fb0fc-43ec-464c-bd18-b5223b32bd14", "name":"Architekt" }, { "id":"33078aed-0473-4714-beb9-ab989959afdd", "name":"BuildingEditor" } ], "group": { "id": "9a63fe8e-4b80-4c21-af1b-4344f95df6bc", "role": "da3c04d7-b593-4017-b6c3-4c9eed7699bb" } }
Get the project members along with their respective roles
Resource: projects/<project_id>/members
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/members
Example: https://api-stage.bimplus.net/v2/bimplus/projects/b8615afc-99cc-4bcd-b0ca-ff0593ce15c6/members
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
[ { "member": { "id": "bf5b2382-1d14-b8df-8454-947f83b45c25", "email": "testuser@bimplus.net", "firstname" : "Test", "lastname" : "User", ... }, "role": { "id": "f11d32e2-30b7-4f81-8a74-2165ecc00cf6", "name": "Project_Editor" } "roles":[ { "id": "f11d32e2-30b7-4f81-8a74-2165ecc00cf6", "name": "Project_Editor" }, { "id":"391fb0fc-43ec-464c-bd18-b5223b32bd14", "name":"Architekt" }, { "id":"33078aed-0473-4714-beb9-ab989959afdd", "name":"BuildingEditor" } ], "group": { "id": "9a63fe8e-4b80-4c21-af1b-4344f95df6bc", "role": "da3c04d7-b593-4017-b6c3-4c9eed7699bb" } }, { "member": { "id": "bf5b2382-1d14-b8df-8454-947f83b45c25", "email": "customer2@bimplus.net" "firstname" : "Some", "lastname" : "Customer", ... }, "role": { "id": "e11d32e2-30b7-4f81-8a74-2165ecc00cf6", "name": "Project_Viewer" } "roles":[ { "id": "e11d32e2-30b7-4f81-8a74-2165ecc00cf6", "name": "Project_Viewer" }, ], "group": { "id": "9a63fe8e-4b80-4c21-af1b-4344f95df6bc", "role": "da3c04d7-b593-4017-b6c3-4c9eed7699bb" } } ]
Update the project role of a team member
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/members
Example: https://api-stage.bimplus.net/v2/bimplus/projects/b8615afc-99cc-4bcd-b0ca-ff0593ce15c6/members
JSON Structure:
Name |
Mandatory / Optional |
Type |
Description |
---|---|---|---|
member |
mandatory |
object |
The member who will be assigned a role to the project. |
role |
mandatory |
object |
The project role which will be assigned to the team member. |
roles | mandatory | JSON Array | Array of role objects, each object must have defined role id. |
group | optional | Object | Object which contains pairs of group's id and group's role where the new user belongs. |
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
{ "member":{ "id":"efeb4da2-1c7c-4aa8-ab13-28638f9669a8" }, "role":{ "id":"a298b28d-9711-4a76-9a7d-910cbf144ee5" }, "roles":[{ "id":"5d4eaafa-aed0-4c53-803d-2fb7fa6a208b" }, { "id":"72fd3336-7df5-410d-a883-98318e6337b6" } ], "group": { "id": "9a63fe8e-4b80-4c21-af1b-4344f95df6bc", "role": "da3c04d7-b593-4017-b6c3-4c9eed7699bb" } }
Status: 200 OK
{ "member": { "id": "bf5b2382-1d14-b8df-8454-947f83b45c25", "email": "testuser@bimplus.net", "firstname" : "Test", "lastname" : "User", ... }, "role": { "id": "f11d32e2-30b7-4f81-8a74-2165ecc00cf6", "name": "Project_Editor" } "roles":[ { "id": "f11d32e2-30b7-4f81-8a74-2165ecc00cf6", "name": "Project_Editor" }, { "id":"391fb0fc-43ec-464c-bd18-b5223b32bd14", "name":"Architekt" }, { "id":"33078aed-0473-4714-beb9-ab989959afdd", "name":"BuildingEditor" } ], "group": { "id": "9a63fe8e-4b80-4c21-af1b-4344f95df6bc", "role": "da3c04d7-b593-4017-b6c3-4c9eed7699bb" } }
Remove the user from the project
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/members
Example: https://api-stage.bimplus.net/v2/bimplus/projects/b8615afc-99cc-4bcd-b0ca-ff0593ce15c6/members
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK