Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Rights and Roles Service

Rights and

...

Rights and Roles

Rights and Roles Service

Rights and

...

Roles

Anchor
createTeamRightsAndRolesTemplategetAllRolescreateTeamRightsAndRolesTemplate

...

getAllRoles

Get all the available roles
Short description of the project rights and roles template
Deck of Cards
idbimCreateTeamRightsAndRolesTemplatebimGetAllRoles


Card
defaulttrue
labelURL / Resource / JSON Structure
Resource: projectrightsrolestemplates<team_slug>/roles 

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

Example: https://api-stage.bimplus.net/v2/bimplusbest-company/projectrightsrolestemplatesJSON Structureroles

Optional query parameters

Name

Mandatory / Optional

TypeDefault value
Type
Description
name
rights
mandatory
boolean

string

Unique name of the project rights and roles template 

description

optional

string

true

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)



Card
labelHTTP Method
 POST GET


Card
labelDescription

Creates a new project right and roles template.

 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.



Card
labelRequest


Code Block
borderColorGreen
langxml
titleHeaders
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json
Card
labelRequest
Code Block
borderColorGreen
langxml
titleHeaders
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json
Code Block
borderColorRed
langxml
titleJSON
{
  "name":"My project rights and roles template",
  "description":"Project rights and roles template description"
}



Card
labelResponse


Code Block
borderColorGreen
langxml
titleStatus
Status: 201200 CreatedOk


Code Block
borderColorRed
langxml
titleJSON
[	{
  		"id": "49d13da3a298b28d-2acf9711-4f0b4a76-b6679a7d-40fc0197585f910cbf144ee5",
  		"name":"My project rights and roles template "Project_Admin",
  		"descriptiontype": "Project rights and roles template description"
}

...

Get the list of existing project rights and roles templates

...

idbimGetTeamRightsAndRolesTemplates
Card
defaulttrue
labelURL / Resource / JSON Structure
Resource: projectsrightsrolestemplates

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

Examplehttps://api-stage.bimplus.net/v2/bimplus/projectsrightsrolestemplates

Card
labelHTTP Method
 GET
Card
labelDescription
Get all the project rights and roles templates that belongs to a team. Each team has at least one default project rights and roles template.

...

labelRequest
Code Block
borderColorGreen
langxml
titleHeaders
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json

...

labelResponse
",
		"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"
					}
				]
			}
		]
	}
...
]



Anchor
getAllRights
getAllRights

Get all the available rights
Deck of Cards
idbimGetAllRights
Code Block
borderColorGreen
langxml
titleStatus
Status: 200 OK
Code Block
borderColorRed
langxml
titleJSON
[
  {
    "id":"49d13da3-2acf-4f0b-b667-40fc0197585f",
    "name":"My project rights and roles template",
    "description":"Project rights and roles template description"
  },
  {
    "id":"1996f9a0-fe24-4dc7-8140-0cfb98d31442",
    "name":"CustomProjectRightsRolesTemplate",
    "description":"Custom template for rights and roles"
  },
  {
    "id":"482176be-84ab-4d8f-93e4-2c58863d4eae",
    "name":"DefaultProjectRightsRolesTemplate",
    "description":"Default template for rights and roles"
  }
]

...

Get the info about a particular project rights and roles template
Deck of Cards
idbimGetRightsAndRolesTemplateInfo


Card
defaulttrue
labelURL / Resource / JSON Structure

Resource:

projectrightsrolestemplates

<team_slug>/rights 

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

Examplehttps://api-stage.bimplus.net/v2/bimplus/projectsrightsrolestemplates/49d13da3-2acf-4f0b-b667-40fc0197585f

Card
labelHTTP Method
 GET
Card
labelDescription
Get the info about a particular project rights and roles template that belongs to a particular team.
Card
labelRequest
Code Block
borderColorGreen
langxml
titleHeaders
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json
Card
labelResponse
Code Block
borderColorGreen
langxml
titleStatus
Status: 200 OK
Code Block
borderColorRed
langxml
titleJSON
{
  "id":"49d13da3-2acf-4f0b-b667-40fc0197585f",
  "name":"My project rights and roles template",
  "description":"Project rights and roles template description"
}

...

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.



Card
labelHTTP Method
 GET


Card
labelDescription

 Get all the available rights returns array of right resource types with defined rights.


Card
labelRequest


Code Block
borderColorGreen
langxml
titleHeaders
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json



Card
labelResponse

...

Update a particular project rights and roles template
Deck of Cards
idbimUpdateTeamRightsAndRolesTemplate
Card
defaulttrue
labelURL / Resource / JSON Structure
Resource: projectrightsrolestemplates

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

Example: https://api-stage.bimplus.net/v2/bimplus/projectrightsrolestemplates/49d13da3-2acf-4f0b-b667-40fc0197585f

JSON Structure: See Create project rights and roles template

Card
labelHTTP Method
 PUT
Card
labelDescription
 Update a particular project rights and roles template that belongs to a particular team.
Card
labelRequest


Code Block
borderColorGreen
langxml
titleHeadersStatus
AuthorizationStatus: BimPlus200 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json
Ok


Code Block
borderColorRed
langxml
titleJSON
[  {
    "id":"173e7a88-16d9-4d88-92bf-270fff458435",
    "nameresource":"My project rights and roles template 2",
  "description":"Project rights and roles template description 2"
}
Card
labelResponse
Code Block
borderColorGreen
langxml
titleStatus
Status: 200 OK
Code Block
borderColorRed
langxml
titleJSON
{
  "id":"49d13da3-2acf-4f0b-b667-40fc0197585f",
  "name":"My project rights and roles template 2",
  "description":"Project rights and roles template description 2"
}

...

Delete the project rights and roles template

...

idbimDeleteTeamRightsAndRolesTemplate
Card
defaulttrue
labelURL / Resource / JSON Structure
Resource: projectrightsrolestemplates

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

Examplehttps://api-stage.bimplus.net/v2/bimplus/projectrightsrolestemplates/49d13da3-2acf-4f0b-b667-40fc0197585f

Card
labelHTTP Method
 DELETE
Card
labelDescription
 Deletes the specific project rights and roles template.

...

labelRequest
Code Block
borderColorGreen
langxml
titleHeaders
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json

...

labelResponse
Code Block
borderColorGreen
langxml
titleStatus
Status: 200 OK

...

Copy project rights and roles template from source to target project rights and roles template

...

idbimCopyContentRightsAndRolesTemplate
"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"
    ]
  }
]




Anchor
getRoleDetails
getRoleDetails

Get details of the role
Deck of Cards
idbimGetRoleDetails

...

labelUrl / Resource /Json

Resource: projectrightsrolestemplates/<targetprojectrightsrolestemplates_id>/copyfrom

URLhttps://api-stage.bimplus.net/v2/<team_slug>/projectrightsrolestemplates/<targetprojectrightsrolestemplates_id>/copyfrom

Example:https://api-stage.bimplus.net/v2/bimplus/projectsrightsrolestemplates/49d13da3-2acf-4f0b-b667-40fc0197585f/copyfrom

JSON Structure 

...

Name

...

Mandatory / Optional

...

Type

...

Description

...

name

...

will be ignored

...

string

...

Name of the project rights and roles template

...

description

...

will be ignored

...

Description of the project rights and roles template

...

 

Card
labelHttpMethod

PUT

Card
labelDescription

Updates the specified target project rights and roles template with all roles from source project rights and roles template.
When project rights and roles template id is missing will be used internally default project right and roles template (Guid as "482176be-84ab-4d8f-93e4-2c58863d4eae") as a source project right and roles template.

Note:
In case when some roles are already assigned to target project rights and roles template and the same role is present also in source project rights and roles template,
in such case roles will be added to target project rights and roles template.

...

labelRequest
Code Block
borderColorGreen
langxml
titleHeaders
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json
Code Block
borderColorRed
langxml
titleJSON
{
    "id": "482176be-84ab-4d8f-93e4-2c58863d4eae"
}

...

labelResponse

...

borderColorGreen
langxml
titleStatus
Code Block
borderColorRed
langxml
titleJSON
{
  "id":"49d13da3-2acf-4f0b-b667-40fc0197585f",
  "name":"My project rights and roles template",
  "description":"Project rights and roles template description"
}

Rights and Roles

...

Get all the available roles

 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.

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.

Deck of Cards
idbimGetAllRoles


Card
defaulttrue
labelURL / Resource / JSON Structure

Resource: <team_slug>/roles/

roles 

<role_id>

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

Examplehttps://api-stage.bimplus.net/v2/best-companybimplus/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)

rightsandrolestemplatestring (guid)

When query parameter rightsandrolestemplate is defined e.g. "rightsandrolestemplate=482176be-84ab-4d8f-93e4-2c58863d4eae",
only roles which belongs to exact rightsandrolestemplate id are returned.

Card
labelHTTP Method
 GET
Card
labelDescription
Account OwnerProject AdminProject EditorProject ViewerCreate projectxAdmin projectxxDelete projectxxEdit projectxxx
View projectxxxx
Create modelxx
View all modelsxxxx
Card
labelRequest
Code Block
borderColorGreen
langxml
titleHeaders
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json
Card
labelResponse
Code Block
borderColorGreen
langxml
titleStatus
Status: 200 Ok
Code Block
borderColorRed
langxml
titleJSON
[
    {
        "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"
                    }
                ]
            }
        ],
        "projectRightsRolesTemplate": {
            "id": "482176be-84ab-4d8f-93e4-2c58863d4eae",
            "name": "DefaultProjectRightsRolesTemplate",
            "description": "Default template for rights and roles"
        }
    },
    {
        "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"
                    }
                ]
            }
        ],
        "projectRightsRolesTemplate": {
            "id": "482176be-84ab-4d8f-93e4-2c58863d4eae",
            "name": "DefaultProjectRightsRolesTemplate",
            "description": "Default template for rights and roles"
        }
    }
...
]

...

Get all the available rights

...

idbimGetAllRights

...

defaulttrue
labelURL / Resource / JSON Structure

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"

...

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.

...

layer

...

boolean

...

true

...

When query parameter "layer=false" is defined, the API call will returns all right resource types except layer right resource type.

Card
labelHTTP Method
 GET
Card
labelDescription

 Get all the available rights returns array of right resource types with defined rights.

...

labelRequest
Code Block
borderColorGreen
langxml
titleHeaders
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json

...

labelResponse
Code Block
borderColorGreen
langxml
titleStatus
Status: 200 Ok
Code Block
borderColorRed
langxml
titleJSON
[{
    "id":"4e587ea1-5098-45cd-9655-15f90c16dc58",
    "resource":"Layer",
    "rights":{
      "231222ba-7495-f438-cf38-629cf0482364":"building",
      "dd9b9e2c-f4af-576f-4dda-9e122ab13d31":"general objects",
      "92f8a361-5990-0cb0-b257-e13c85f0f7b1":"mep",
      "0047e2ed-3348-a97b-93d2-a6817cc9cb8e":"steel design",
      "8095dfcf-fbdf-3317-b873-a7cbccccb206":"timber design",
      "f7819a2d-1498-2468-b120-fdefedfccf0b":"terrain",
      "903fe394-5e84-5c8d-2760-eeadad3baa35":"reinforcement",
      "44c2ff85-9691-6def-9583-56d8b776c846":"finish",
      "6719f657-ea4a-3016-1bda-0c56c7f113d4":"inventory",
      "52bbc329-dab3-a81c-b548-09c715786a81":"room",
      "4a4da391-b804-b20f-f49a-470bdc68be8f":"structural analysis",
      "7f27fd11-7992-8fb5-3541-9daa4f8196b2":"opening",
      "8ba5ec82-5b93-6192-55b0-b7790f4d0007":"door/window",
      "5c695e85-ea7c-7df4-9fb7-eca7aa1f69fd":"precast",
      "85d0b1a9-11bb-6de1-9cfd-54f85ee11da3":"bridge",
      "d726e8d2-12c6-641d-b19d-37511349dce1":"structural loads",
      "3517d0e2-9814-fc08-b3e7-59d453940efa":"connection"
    },
    "access":["View",
      "Edit"
    ]
  },
  {
    "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"
    ]
  }
]

...

Create a new role

...

idbimCreateNewRole

...

defaulttrue
labelURL / Resource / JSON Structure

...

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

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

...

optional

...

boolean

...

When this flag is true the role is custom role otherwise will role is 'built in' role

...

resources

...

optional

...

JSON Array

...

Array of the right resource type definition objects for which the role is valid

...

JSON Structure of the right resource type definition object

...

Name

...

Mandatory / Optional

...

Type

...

Description

...

resource

...

mandatory

...

string

...

Describe kind of right resource type e.g. Global" or "Layer", etc.

...

rights

...

mandatory

...

JSON Array

...

Array of the strings with right names e.g.: "FreeAttributeView", "RoomModel"

...

Array of the objects with properties id, name, access :

  • id is string (Guid) represent id of right
  • name is string representing name of right e.g. "RoomModel",
  • access is string representing access right of the right e.g. "View"
Card
labelHTTP Method
 POST
Card
labelDescription
 Creates a new role with defined properties and resources to be valid for.

...

labelRequest
Code Block
borderColorGreen
langxml
titleHeaders
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json
Code Block
borderColorRed
langxml
titleJSON
{
  "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"
        }
      ]
    }
  ],
  "projectRightsRolesTemplate":{
    "id":"894072db-e1cb-48f1-a672-999356d66311"
  }
}

...

labelResponse
Code Block
borderColorGreen
langxml
titleStatus
Status: 201 Created
Code Block
borderColorRed
langxml
titleJSON
{
  "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"
        }
      ]
    }
  ],
  "projectRightsRolesTemplate":{
    "id":"894072db-e1cb-48f1-a672-999356d66311",
    "name":"CustomProjectRightsRolesTemplate",
    "description":"Custom template for rights and roles"
  }
}

...

Get details of the role

...

idbimGetRoleDetails
Card
defaulttrue
labelURL / Resource / JSON Structure

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

Card
labelHTTP Method
 GET
Card
labelDescription
 Get details of a specified role.

...

labelRequest
Code Block
borderColorGreen
langxml
titleHeaders
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json

...

labelResponse
Code Block
borderColorGreen
langxml
titleStatus
Status: 200 OK
Code Block
borderColorRed
langxml
titleJSON
{
  "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"
        }
      ]
    }
  ],
  "projectRightsRolesTemplate":{
    "id":"894072db-e1cb-48f1-a672-999356d66311",
    "name":"CustomProjectRightsRolesTemplate",
    "description":"Custom template for rights and roles"
  }
}

/94a60a79-7c81-454b-8158-ffdb9a2bf4d6


Card
labelHTTP Method
 GET


Card
labelDescription
 Get details of a specified role.


Card
labelRequest


Code Block
borderColorGreen
langxml
titleHeaders
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json



Card
labelResponse


Code Block
borderColorGreen
langxml
titleStatus
Status: 200 OK


Code Block
borderColorRed
langxml
titleJSON
{
  "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"
        }
      ]
    }
  ]
}




Anchor
getAllProjectRolesFromRightsAndRolesTemplate
getAllProjectRolesFromRightsAndRolesTemplate

Get all project's roles assigned by right and roles template
Deck of Cards
idbimGetAllProjectRolesFromRightsAndRolesTemplate


Card
defaulttrue
labelURL / Resource / JSON Structure
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.


Card
labelHTTP Method
 GET


Card
labelDescription

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.


Card
labelRequest


Code Block
borderColorGreen
langxml
titleHeaders
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json



Card
labelResponse


Code Block
borderColorGreen
langxml
titleStatus
Status: 201 Created


Code Block
borderColorRed
langxml
titleJSON
[
    {
        "id": "94a60a79-7c81-454b-8158-ffdb9a2bf4d6",
        "name": "TEST1",
        "customRole": true,
        "resources": [

...

Update the role

...

idbimUpdateTheRole

...

defaulttrue
labelURL / Resource / JSON Structure

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

Json structure : See above in Create a new role section.

Card
labelHTTP Method
 PUT
Card
labelDescription
Update the role.

...

labelRequest
Code Block
borderColorGreen
langxml
titleHeaders
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json
Code Block
borderColorRed
langxml
titleJSON
{
  "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"
        }
      ]
    }
  ],
  "projectRightsRolesTemplate":{
    "id":"894072db-e1cb-48f1-a672-999356d66311"
  }
}

...

labelResponse
Code Block
borderColorGreen
langxml
titleStatus
Status: 200 OK
Code Block
titleJSON
{
  "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"
        }
      ]
    }
  ],
  "projectRightsRolesTemplate":{
    "id":"894072db-e1cb-48f1-a672-999356d66311",
    "name":"CustomProjectRightsRolesTemplate",
    "description":"Custom template for rights and roles"
  }
}

...

Delete the role

...

idbimDeleteTheRole
Card
defaulttrue
labelURL / Resource / JSON Structure

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/213becc0-ad48-4cd0-aef2-b922b21bbfd7

Card
labelHTTP Method
 DELETE
Card
labelDescription
 Deletes a specified role.

...

labelRequest
Code Block
borderColorGreen
langxml
titleHeaders
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json

...

labelResponse
Code Block
borderColorGreen
langxml
titleStatus
Status: 200 OK

...

Get all project's roles assigned by right and roles template
Deck of Cards
idbimGetAllProjectRolesFromRightsAndRolesTemplate
Card
defaulttrue
labelURL / Resource / JSON Structure
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.

Card
labelHTTP Method
 GET
Card
labelDescription

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.

Card
labelRequest
Code Block
borderColorGreen
langxml
titleHeaders
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json
Card
labelResponse
Code Block
borderColorGreen
langxml
titleStatus
Status: 201 Created
Code Block
borderColorRed
langxml
titleJSON
[
    {
        "id": "94a60a79-7c81-454b-8158-ffdb9a2bf4d6",
        "name": "TEST1",
        "customRole": true,
        "resources": [
            {
                "id": "4e587ea1-5098-45cd-9655-15f90c16dc58",
                "resource": "Layer",
                "rights": [
                    "RoomModel"
                ],
                "rightsAccess": [
                    {
                        "id": "52bbc3294e587ea1-dab35098-a81c45cd-b5489655-09c715786a8115f90c16dc58",
                        "name"resource": "RoomModelLayer",
                        "accessrights": "Edit"
           [
         }
           "RoomModel"
     ]
            }],
        ],
        "projectRightsRolesTemplaterightsAccess": {[
             "id": "482176be-84ab-4d8f-93e4-2c58863d4eae",
      {
      "name": "DefaultProjectRightsRolesTemplate",
            "description": "Default template for rights and roles""id": "52bbc329-dab3-a81c-b548-09c715786a81",
        }
    },
    {
        "idname": "391fb0fc-43ec-464c-bd18-b5223b32bd14RoomModel",
               "name": "TEST2",
        "customRoleaccess": true,"Edit"
         "resources": [
          }
  {
              ]
  "id": "9dae8bb5-77c1-47a6-a916-d4948583b0b9",
         }
       "resource": "Global", ]
    },
    {
        "rightsid": ["391fb0fc-43ec-464c-bd18-b5223b32bd14",
        "name": "TEST2",
           "AllModelscustomRole": true,
        "resources": [
            "ProjectCreate",{
                    "AllAttributes"
"id": "9dae8bb5-77c1-47a6-a916-d4948583b0b9",
                 ]"resource": "Global",
                "rightsAccessrights": [
                    {
    "AllModels",
                    "id": "cc3416d3-c570-4dc6-aa84-72216d3f58daProjectCreate",
                        "name": "AllModels","AllAttributes"
                        "access": "Edit"],
                    },"rightsAccess": [
                    {
                        "id": "6bbc401bcc3416d3-7cd5c570-46844dc6-a11daa84-e2448befb3c172216d3f58da",
                        "name": "ProjectCreateAllModels",
                        "access": "Edit"
                    },
                    {
                        "id": "99bad6fc6bbc401b-05397cd5-48484684-84afa11d-62b6df31eaa3e2448befb3c1",
                        "name": "AllAttributesProjectCreate",
                        "access": "Edit"
                    },
                    ]{
            }
            ]"id": "99bad6fc-0539-4848-84af-62b6df31eaa3",
        "projectRightsRolesTemplate                "name": {
"AllAttributes",
              "id          "access": "482176be-84ab-4d8f-93e4-2c58863d4eae",
Edit"
              "name": "DefaultProjectRightsRolesTemplate",
      }
                ]
      "description": "Default template for rights and roles"}
        }]
    }
...
]



Anchor
assignProjectRole
assignProjectRole

...

Deck of Cards
idbimassignProjectRole


Card
defaulttrue
labelURL / Resource / JSON Structure
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.



Card
labelHTTP Method
 POST


Card
labelDescription
 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.


Card
labelRequest


Code Block
borderColorGreen
langxml
titleHeaders
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json


Code Block
borderColorRed
langxml
titleJSON
{
  "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": "33078aed9a63fe8e-04734b80-47144c21-beb9af1b-ab989959afdd4344f95df6bc",
    }	"role": "da3c04d7-b593-4017-b6c3-4c9eed7699bb"
  ]}		
}



Card
labelResponse


Code Block
borderColorGreen
langxml
titleStatus
Status: 201 Created


Code Block
borderColorRed
langxml
titleJSON
{
  "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": "33078aed9a63fe8e-04734b80-47144c21-beb9af1b-ab989959afdd4344f95df6bc",
      "name	"role":"BuildingEditor "da3c04d7-b593-4017-b6c3-4c9eed7699bb"
    }
  ]
}



Anchor
getMembersWithRoles
getMembersWithRoles

...

Deck of Cards
idbimGetMembersWithRoles


Card
defaulttrue
labelURL / Resource / JSON Structure

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


Card
labelHTTP Method
 GET


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


Card
labelRequest


Code Block
borderColorGreen
langxml
titleHeaders
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json



Card
labelResponse


Code Block
borderColorGreen
langxml
titleStatus
Status: 200 OK


Code Block
borderColorRed
langxml
titleJSON
[
  {
    "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-ab989959afdd",
        "name":"BuildingEditor"
      }
    ],
    "group": {
  	"id": "9a63fe8e-4b80-4c21-af1b-4344f95df6bc",
        "name	"role":"BuildingEditor "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-2165ecc00cf6",
        "name": "Project_Viewer"
      },
    ],
    "group": {
  	"id": "9a63fe8e-4b80-4c21-af1b-4344f95df6bc",
        "name	"role": "Project_Viewerda3c04d7-b593-4017-b6c3-4c9eed7699bb"
      	},
    ]
  }
]



Anchor
updateProjectRole
updateProjectRole

...

Deck of Cards
idbimUpdateProject


Card
defaulttrue
labelURL / Resource / JSON Structure
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.



Card
labelHTTP Method
 PUT


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


Card
labelRequest


Code Block
borderColorGreen
langxml
titleHeaders
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json


Code Block
borderColorRed
langxml
titleJSON
{
  "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": "72fd33369a63fe8e-7df54b80-410d4c21-a883af1b-98318e6337b64344f95df6bc",
    }	"role": "da3c04d7-b593-4017-b6c3-4c9eed7699bb"
  ]}		
}



Card
labelResponse


Code Block
borderColorGreen
langxml
titleStatus
Status: 200 OK


Code Block
titleJSON
{
  "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"
  }		
}



Anchor
deleteProjectRole
deleteProjectRole

...