Rights and Roles Service

Rights and Roles

Rights and Roles Service

Rights and Roles

Get all the available roles


Resource: <team_slug>/roles 

URLhttps://api-stage.bimplus.net/v2/<team_slug>/roles

Examplehttps://api-stage.bimplus.net/v2/best-company/roles

Optional query parameters

NameTypeDefault valueDescription
rightsbooleantrue

When query parameter "rights=false" is defined, the API call will returns all roles. i.e. not only roles which contains
resources and right definitions.
When query parameter is missing, the API call returns only roles which includes resources and rights definitions.

customroleboolean

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.
When query parameter is missing, the API call returns all roles (i.e. their customRole property can be true or false)



 GET


 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 OwnerProject AdminProject EditorProject Viewer
Create projectx


Admin projectxx

Delete projectxx

Edit projectxxx
View projectxxxx
Create modelxx

View all modelsxxxx

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 

URLhttps://api-stage.bimplus.net/v2/<team_slug>/rights

Examplehttps://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


 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>

URLhttps://api-stage.bimplus.net/v2/<team_slug>/roles/<role_id>

Examplehttps://api-stage.bimplus.net/v2/bimplus/roles/94a60a79-7c81-454b-8158-ffdb9a2bf4d6


 GET


 Get details of a specified role.



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


Resource: projects/<project_id>/roles 

URLhttps://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/roles 

Examplehttps://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.


 GET


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


Resource: projects/<project_id>/members 

URLhttps://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/members 

Examplehttps://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.
The object has a mandatory property name "id" which represents Id of the user, its type is string(guid)

role

mandatory

object

The project role which will be assigned to the team member.
The object has a mandatory property name "id" which represents Id of the role, its type is string(guid)

rolesmandatoryJSON ArrayArray of role objects, each object must have defined role id.
groupoptionalObjectObject which contains pairs of group's id and group's role where the new user belongs.



 POST


 Assign a project role to an existing member of a team. Only the user with "Account Owner" or "Project Owner" role can use this API call.



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 

URLhttps://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/members 

Examplehttps://api-stage.bimplus.net/v2/bimplus/projects/b8615afc-99cc-4bcd-b0ca-ff0593ce15c6/members


 GET


 Get the member list of a project along with their respective project roles.



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


Resource: projects/<project_id>/members 

URLhttps://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/members 

Examplehttps://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.
Object must have set "id" as string(guid) - Id of the user.

role

mandatory

object

The project role which will be assigned to the team member.
Object must have set "id" as string(guid) - Id of the role

rolesmandatoryJSON ArrayArray of role objects, each object must have defined role id.
groupoptionalObjectObject which contains pairs of group's id and group's role where the new user belongs.



 PUT


 Update the project role of a team member. Only the user with "Account Owner" or "Project Owner" role can use this API call.



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   


Resource: projects/<project_id>/members 

URLhttps://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/members 

Examplehttps://api-stage.bimplus.net/v2/bimplus/projects/b8615afc-99cc-4bcd-b0ca-ff0593ce15c6/members


 DELETE


 Remove the user from a project



Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json




Status: 200 OK