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

Compare with Current View Page History

« Previous Version 30 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

        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":["RoomModel"
              ],
              "rightsAccess":[{
                  "id":"52bbc329-dab3-a81c-b548-09c715786a81",
                  "name":"RoomModel",
                  "access":"Edit"
                }
              ]
            }
          ]
        }
        Status
        Status: 201 Created
        
        JSON
        {
          "name":"Test",
          "customRole":true,
          "resources":[{
              "id":"4e587ea1-5098-45cd-9655-15f90c16dc58",
              "resource":"Layer",
              "rights":["RoomModel"
              ],
              "rightsAccess":[{
                  "id":"52bbc329-dab3-a81c-b548-09c715786a81",
                  "name":"RoomModel",
                  "access":"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/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
              

              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