Rights & Roles Service
- Get all the available roles
- Get all the available rights
- Create a new role
- Get details of the role
- Update the role
- Delete the role
- 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 & Roles Service
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 |
Get all the available roles. Right now, we support only project based roles and custom roles.
Here is the definition of Bimplus Rights & 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":"f11d32e2-30b7-4f81-8a74-2165ecc00cf6", "name":"Project_Editor", "customRole":true, "resources":[{ "resource":"UserRightProject", "rights":["ProjectEdit", "Model_ViewAll", "Model_Create" ] } ] }, { "id":"213becc0-ad48-4cd0-aef2-b922b21bbfd7", "name":"TestRoleParent", "customRole":true, "resources":[{ "resource":"UserRightLayer", "rights":["MEPEdit" ] } ], "children":[{ "id":"d1310d52-addf-4264-8623-29730d2cc775", "parent":"213becc0-ad48-4cd0-aef2-b922b21bbfd7", "name":"Testchild", "customRole":true, "resources":[{ "resource":"UserRightGlobalFreeAttributes", "rights":["FreeAttributeView", "FreeAttributeGroupView", "AttributeTemplateView", "ProjectAttributeTemplateView" ] }, { "resource":"UserRightLayer", "rights":["MEPEdit" ] } ] }, { "id":"118898b6-0b86-4876-bb05-bf5294e392d6", "parent":"213becc0-ad48-4cd0-aef2-b922b21bbfd7", "name":"TestRole", "customRole":true, "resources":[{ "resource":"UserRightGlobalFreeAttributes", "rights":["FreeAttributeView", "FreeAttributeGroupView", "AttributeTemplateView", "ProjectAttributeTemplateView" ] }, { "resource":"UserRightLayer", "rights":["MEPEdit" ] } ] } ] } ]
Get all the available rights
URL: https://api-stage.bimplus.net/v2/<team_slug>/rights
Example: https://api-stage.bimplus.net/v2/best-company/rights
Get all the available rights.
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 Ok
[{ "resource":"UserRightModel", "rights":["Model_Assign", "Model_Admin", "Model_Delete", "Model_Edit", "Model_View", "Model_Import" ] }, { "resource":"UserRightProject", "rights":["Model_ViewAll", "Model_Create", "Project_Right", "Project_AllDocuments" ] }, { "resource":"UserRightGlobal", "rights":["AllProjects", "AllModels", "Project_Delete", "Project_Create", "AllDocuments", "AllAttributes" ] }, { "resource":"UserRightDocument", "rights":["Document_Update", "Document_Delete", "Document_Share", "Document_DownloadDenied", "Document_ViewDenied" ] }, { "resource":"UserRightGlobalFreeAttributes", "rights":["FreeAttributeEdit", "FreeAttributeGroupEdit", "AttributeTemplateEdit", "ProjectAttributeTemplateEdit", "FreeAttributeView", "FreeAttributeGroupView", "AttributeTemplateView", "ProjectAttributeTemplateView", "TeamMembershipEdit", "TeamMembershipView", "StructuralAction_Editor", "StructuralAction_Viewer", "Precast_Editor", "Precast_Viewer", "Bridge_Editor", "Bridge_Viewer", "DoorWindow_Editor", "DoorWindow_Viewer", "Holzbauobjekte_Editor", "Holzbauobjekte_Viewer", "BuildingModel_Editor", "BuildingModel_Viewer", "Opening_Editor", "Opening_Viewer", "Inventary_Editor", "Inventary_Viewer", "TerrainModel_Editor", "TerrainModel_Viewer", "Stahlbauobjekte_Editor", "Stahlbauobjekte_Viewer", "MEP_Editor", "MEP_Viewer", "CollisionModel_Editor", "CollisionModel_Viewer", "Connection_Editor", "Connection_Viewer", "Proxy Model_Editor", "Proxy Model_Viewer", "Finish_Editor", "Finish_Viewer", "DesignModel_Concrete_Construction_Editor", "DesignModel_Concrete_Construction_Viewer", "Room_Editor", "Room_Viewer", "StructuralAnalysis_Editor", "StructuralAnalysis_Viewer", "RevisionComparison_Editor", "RevisionComparison_Viewer" ] }, { "resource":"UserRightLayer", "rights":["StructuralAction_Right", "Precast_Right", "Bridge_Right", "DoorWindow_Right", "Holzbauobjekte_Right", "BuildingModel_Right", "Opening_Right", "Inventary_Right", "TerrainModel_Right", "Stahlbauobjekte_Right", "MEP_Right", "CollisionModel_Right", "Connection_Right", "Proxy Model_Right", "Finish_Right", "DesignModel_Concrete_Construction_Right", "Room_Right", "StructuralAnalysis_Right", "RevisionComparison_Right" ] } ]
Create a new role
URL: https://api-stage.bimplus.net/v2/<team_slug>/roles
Example: https://api-stage.bimplus.net/v2/bimplus/roles
JSON Structure:
Name |
Mandatory / Optional |
Type |
Description |
---|---|---|---|
id |
optional |
string (guid) |
Id of the role |
name |
mandatory |
string |
The name of the role |
parent |
optional |
string (guid) |
The Id of the parent role |
customRole |
mandatory |
boolean |
When this flag is true the role is custom role otherwise will role is 'built in' role |
resources |
mandatory |
JSON Array |
Array of the resource definition objects for which the role is valid |
JSON Structure of the resource definition object:
Name |
Mandatory / Optional |
Type |
Description |
---|---|---|---|
resource |
mandatory |
string |
Describe kind of right e.g. "UserRightGlobal" or "UserRightLayer" |
rights |
mandatory |
JSON Array |
Array of the strings of rights e.g.: "FreeAttributeView", "MEP: 2" |
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
{ "parent": "213becc0-ad48-4cd0-aef2-b922b21bbfd7", "name": "TestRole", "customRole": true, "resources": [ { "resource": "UserRightGlobal", "rights": [ "FreeAttributeView", "FreeAttributeGroupView", "AttributeTemplateView", "ProjectAttributeTemplateView" ] }, { "resource": "UserRightLayer", "rights": [ "MEP: 2" ] } ] }
Status: 201 Created
{ "id": "118898b6-0b86-4876-bb05-bf5294e392d6", "parent": "213becc0-ad48-4cd0-aef2-b922b21bbfd7", "name": "TestRole", "customRole": true, "resources": [ { "resource": "UserRightGlobal", "rights": [ "FreeAttributeView", "FreeAttributeGroupView", "AttributeTemplateView", "ProjectAttributeTemplateView" ] }, { "resource": "UserRightLayer", "rights": [ "MEPEdit" ] } ] }
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/213becc0-ad48-4cd0-aef2-b922b21bbfd7
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
{ "id": "118898b6-0b86-4876-bb05-bf5294e392d6", "parent": "213becc0-ad48-4cd0-aef2-b922b21bbfd7", "name": "Skuska2child", "customRole": true, "resources": [ { "resource": "UserRightGlobalFreeAttributes", "rights": [ "FreeAttributeView", "FreeAttributeGroupView", "AttributeTemplateView", "ProjectAttributeTemplateView" ] }, { "resource": "UserRightLayer", "rights": [ "MEPEdit" ] } ] }
Update 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/213becc0-ad48-4cd0-aef2-b922b21bbfd7
Json structure : See above in Create a new role section.
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
{ "name": "Skuska2update", "customRole": true, "resources": [ { "resource": "UserRightLayer", "rights": [ "MEP: 3" ] } ] }
Status: 200 OK
{ "id": "213becc0-ad48-4cd0-aef2-b922b21bbfd7", "name": "Skuska2update", "customRole": true, "resources": [ { "resource": "UserRightLayer", "rights": [ "MEPAdmin" ] } ] }
Delete 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/213becc0-ad48-4cd0-aef2-b922b21bbfd7
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
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 |
id |
mandatory |
string (guid) |
Id of the user |
role |
mandatory |
object |
The project role which will be assigned to the team member |
id |
mandatory |
string (guid) |
Id of the role |
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
{ "member": { "id": "bf5b2382-1d14-b8df-8454-947f83b45c25" }, role: { id: "f11d32e2-30b7-4f81-8a74-2165ecc00cf6" }
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" }
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" }, { "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" } } ]
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 |
id |
mandatory |
string (guid) |
Id of the user |
role |
mandatory |
object |
The project role which will be assigned to the team member |
id |
mandatory |
string (guid) |
Id of the role |
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
{ "member": { "id": "bf5b2382-1d14-b8df-8454-947f83b45c25" }, "role": { "id": "f11d32e2-30b7-4f81-8a74-2165ecc00cf6" }
Status: 200 OK
{ "member": { "id": "bf5b2382-1d14-b8df-8454-947f83b45c25", "email": "customer@bimplus.net", "firstname" : "Some", "lastname" : "Customer", ... }, "role": { "id": "f11d32e2-30b7-4f81-8a74-2165ecc00cf6", "name": "Project_Viewer" }
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