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

    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
    resources and right definitions.
    When query parameter is missing, the API call returns only roles which includes resources and rights definitions.

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


    Headers
    Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
    Content-Type: application/json
    
    Status
    Status: 200 Ok
    
    JSON
    [	{
    		"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.

      Headers
      Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
      Content-Type: application/json
      
      Status
      Status: 200 Ok
      
      JSON
      [  {
          "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.
        Headers
        Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
        Content-Type: application/json
        
        Status
        Status: 200 OK
        
        JSON
        {
          "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.

          Headers
          Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
          Content-Type: application/json
          
          Status
          Status: 201 Created
          
          JSON
          [
              {
                  "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)

            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.
             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.
            Headers
            Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
            Content-Type: application/json
            
            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
            Status: 201 Created
            
            JSON
            {
              "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.
              Headers
              Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
              Content-Type: application/json
              
              Status
              Status: 200 OK
              
              JSON
              [
                {
                  "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

                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.
                 PUT
                 Update the project role of a team member. Only the user with "Account Owner" or "Project Owner" role can use this API call.
                Headers
                Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
                Content-Type: application/json
                
                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
                Status: 200 OK
                
                JSON
                {
                  "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
                  Headers
                  Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
                  Content-Type: application/json
                  
                  Status
                  Status: 200 OK
                  
                  • No labels