You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 35 Next »


Rights and Roles Service


Rights and Roles Service


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)

    rightsandrolestemplate string (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.


     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": "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

      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.

      layer

      boolean

      true

      When query parameter "layer=false" is defined, the API call will returns all right resource types except layer 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":"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
        Resource: <team_slug>/roles 

        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

        projectRightsRolesTemplate mandatory JSON object The object contains id of rights and roles template guid.

        JSON Structure of the right resource type definition object

        Name

        Mandatory / Optional

        Type

        Description

        id optional string(Guid) Id of the right resource type

        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"

        rightsAccess mandatory JSON Array

        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"
         POST
         Creates a new role with defined properties and resources to be valid for.
        Headers
        Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
        Content-Type: application/json
        
        JSON
        {
          "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"
          }
        }
        Status
        Status: 201 Created
        
        JSON
        {
          "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

          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

           GET
           Get details of a specified role.
          Headers
          Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
          Content-Type: application/json
          
          Status
          Status: 200 OK
          
          JSON
          {
            "name":"Test",
            "customRole":true,
            "resources":[{
                "id":"52bbc329-dab3-a81c-b548-09c715786a81",
                "resource":"UserRightLayer",
                "rights":["Room"
                ],
                "rightsAccess":[{
                    "id":"4e587ea1-5098-45cd-9655-15f90c16dc58",
                    "name":"Room",
                    "access":"View"
                  }
                ]
              }
            ]
          }
          
          

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

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


             PUT
            Update the role.
            Headers
            Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
            Content-Type: application/json
            
            JSON
            {
              "name":"Test",
              "customRole":true,
              "resources":[{
                  "id":"52bbc329-dab3-a81c-b548-09c715786a81",
                  "resource":"UserRightLayer",
                  "rights":["Room"
                  ],
                  "rightsAccess":[{
                      "id":"4e587ea1-5098-45cd-9655-15f90c16dc58",
                      "name":"Room",
                      "access":"View"
                    }
                  ]
                }
              ]
            }
            Status
            Status: 200 OK
            
            JSON
            {
              "name":"Test",
              "customRole":true,
              "resources":[{
                  "id":"52bbc329-dab3-a81c-b548-09c715786a81",
                  "resource":"UserRightLayer",
                  "rights":["Room"
                  ],
                  "rightsAccess":[{
                      "id":"4e587ea1-5098-45cd-9655-15f90c16dc58",
                      "name":"Room",
                      "access":"View"
                    }
                  ]
                }
              ]
            }

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

               DELETE
               Deletes a specified role.
              Headers
              Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
              Content-Type: application/json
              
              Status
              Status: 200 OK
              

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

                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)

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

                  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"
                        },
                      {
                        "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
                      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

                      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

                       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": "bf5b2382-1d14-b8df-8454-947f83b45c25"
                        },
                        "role": {
                          "id": "f11d32e2-30b7-4f81-8a74-2165ecc00cf6"
                      }
                      Status
                      Status: 200 OK
                      
                      JSON
                      {
                        "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   
                        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