User Management Service


User Management Service


This API handles invitation of new user to Bimplus.

There will be two modes of invitations:

  1. To a team
  2. To a team and one or multiple projects

Both will be handled with the same API.

Any team member can invite user to a team, but to invite to a project, he has to have project admin rights. 

The invitation will not create new user in Bimplus. The user will be created only after he accepts the invitation.

Create and Send invitation to new user
     Resource: <teamslug>/invitations 

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

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

    JSON Structure:

    Name

    Mandatory / Optional

    Type

    Description

    email

    mandatory

    string

    Email of the new user

    invitationText optional string Message text for an invited user
    projects optional object List of objects which contains project id, role id, group id and role id of group where the new user is invited to.
    Property in the request is optional. If not present, it means that the invitation is just to the team.

    status

    optional

    will be ignored

    The status of the account (Active / Disabled)

    sender

    optional

    string

    The sender must have a valid Bimplus account and must be member of the team

    team optional string Team for which the invitation is valid
    teamRole optional string Team role is optional. If missing default is team member role
    status optional string Invitation status
    validTo optional date Date the invitation is valid to
    created optional

    date

    Creation date of the invitation

    changed optional date Recent modification date of the invitation
    counter optional string Home phone number of the user


    JSON Structure of the projects object 

    Name

    Mandatory / Optional

    Type

    Description

    projectId

    mandatory

    string (guid)

    The id of the project where the new user is invited to.

    roleId

    mandatory

    string (guid)

    The role id for new user.

    group

    optional

    Object

    Object which contains pairs of group's id and group's role where the new user is invited to.

     POST
     Creates and sends a new invitation to the new user.
    Headers
    Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
    Content-Type: application/json
    
    JSON
    {
    	"email": "newuser@allplan.com",
    	"invitationText": "Some text",
    	"projects": [{
    			"projectId": "e3921c6a-6329-441a-a715-e6c818e05043",
    			"roleId": "2baca0e4-2eee-4f7c-bc56-22ed54a1859c",
    			"group": {
    				"id": "51edc181-b228-4f9e-aa3d-0a30f64695b4",
    				"role": "da3c04d7-b593-4017-b6c3-4c9eed7699bb"
    			}
    		}
    	]
    }
    Status
    Status: 201 Created
    
    JSON
    {
    	"id": "55896fad-187e-47da-bdb6-b441607e3de3",
    	"email": "newuser@allplan.com",
    	"sender": {
    		"id": "b664c6d9-d8ab-4257-88b0-d38588d979dc",
    		"email": "testadmin@allplan.com",
    		"firstname": "Test",
    		"lastname": "Admin"
    	},
    	"team": {
    		"id": "d7a504fe-b2ef-4847-bf79-d3733d93e478",
    		"slug": "testteam",
    		"name": "Test Team"
    	},
    	"teamRole": "d9946cc8-8bd0-4eae-aeb1-d27b310741d7",
    	"invitationText": "Some text",
    	"created": "2016-12-01T07:51:20.843",
    	"changed": "2016-12-01T07:51:20.843",
    	"validTo": "2016-12-08T07:51:20.843",
    	"projects": [{
    			"projectId": "e3921c6a-6329-441a-a715-e6c818e05043",
    			"roleId": "2baca0e4-2eee-4f7c-bc56-22ed54a1859c",
    			"group": {
    				"id": "51edc181-b228-4f9e-aa3d-0a30f64695b4",
    				"role": "da3c04d7-b593-4017-b6c3-4c9eed7699bb"
    			}
    		}
    	]
    }
    

    Get information about the invitation
      Resource: <teamslug>/invitations/<invitation_id> 

      URLhttps://api-stage.bimplus.net/v2/<teamslug>/invitations/<invitation_id> 

      Examplehttps://api-stage.bimplus.net/v2/bimplus/invitations/55896fad-187e-47da-bdb6-b441607e3de3

       GET
       Get information about a specified invitation.
      Headers
      Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
      Content-Type: application/json
      
      Status
      Status: 200 OK
      
      JSON
       {
       	"id": "55896fad-187e-47da-bdb6-b441607e3de3",
       	"email": "newuser@allplan.com",
       	"sender": {
       		"id": "b664c6d9-d8ab-4257-88b0-d38588d979dc",
       		"email": "testadmin@allplan.com",
       		"firstname": "Test",
       		"lastname": "Admin"
       	},
       	"team": {
       		"id": "d7a504fe-b2ef-4847-bf79-d3733d93e478",
       		"slug": "testteam",
       		"name": "Test Team"
       	},
       	"invitationText": "Some text",
       	"created": "2016-12-01T07:51:20.843",
       	"changed": "2016-12-01T07:51:20.843",
       	"validTo": "2016-12-08T07:51:20.843",
       	"projects": [{
       			"projectId": "e3921c6a-6329-441a-a715-e6c818e05043",
       			"roleId": "2baca0e4-2eee-4f7c-bc56-22ed54a1859c",
       			"group": {
       				"id": "51edc181-b228-4f9e-aa3d-0a30f64695b4",
       				"role": "da3c04d7-b593-4017-b6c3-4c9eed7699bb"
       			}
       		}
       	]
       }

      Update and Resend invitation to the new user
         Resource: <teamslug>/invitations/<invitation_id>

        URLhttps://api-stage.bimplus.net/v2/ <teamslug>/invitations/<invitation_id>

        Examplehttps://api-stage.bimplus.net/v2/bimplus/invitations/55896fad-187e-47da-bdb6-b441607e3de3

        JSON Structure:

        Name

        Mandatory / Optional

        Type

        Description

        email

        mandatory

        string

        Email of the new user

        invitationText mandatory string Message text for an invited user
        projects optional object List of objects which contains of project id role id, group id, role id of group where the new user is invited to.
        Property in the request is optional. If not present, it means that the invitation is just to the team.

        status

        optional

        will be ignored

        The status of the account (Active / Disabled)

        sender

        optional

        string

        The sender must have a valid Bimplus account and must be member of the team

        team optional string Team for which the invitation is valid
        teamRole optional string Team role is optional. If missing default is team member role
        status optional string Invitation status
        validTo optional date Date the invitation is valid to
        created optional

        date

        Creation date of the invitation

        changed optional date Recent modification date of the invitation
        counter optional string Home phone number of the user

        JSON Structure of the projects object 

        Name

        Mandatory / Optional

        Type

        Description

        projectId

        mandatory

        string (guid)

        The id of the project where the new user is invited to.

        roleId

        mandatory

        string (guid)

        The role id for new user.

        group

        optional

        Object

        Object which contains pairs of group's id and group's role where the new user is invited to.


         PUT
         Update invitation information to the new user. Only the Sender is able to Update and Resend the invitation to the new user.
        The invitation might change the invitation text and projects.
        Headers
        Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
        Content-Type: application/json
        
        JSON
        {
        	"invitationText": "Some text",
        	"projects": [{
        			"projectId": "e3921c6a-6329-441a-a715-e6c818e05043",
        			"roleId": "2baca0e4-2eee-4f7c-bc56-22ed54a1859c",
        			"group": {
        				"id": "51edc181-b228-4f9e-aa3d-0a30f64695b4",
        				"role": "da3c04d7-b593-4017-b6c3-4c9eed7699bb"
        			}
        		}
        	]
        }
        Status
        Status: 200 OK
        
        JSON
         {
          "id":"55896fad-187e-47da-bdb6-b441607e3de3",
          "email":"newuser@allplan.com",
          "sender":{
            "id":"b664c6d9-d8ab-4257-88b0-d38588d979dc",
            "email":"testadmin@allplan.com",
            "firstname":"Test",
            "lastname":"Admin"
          },
          "team":{
            "id":"d7a504fe-b2ef-4847-bf79-d3733d93e478",
            "slug":"testteam",
            "name":"Test Team"
          },
          "invitationText":"Some text",
          "created":"2016-12-01T07:51:20.843",
          "changed":"2016-12-01T07:51:20.843",
          "validTo":"2016-12-08T07:51:20.843",
          "projects":[{
              "projectId":"e3921c6a-6329-441a-a715-e6c818e05043",
              "roleId":"2baca0e4-2eee-4f7c-bc56-22ed54a1859c",
        	  "group": {
        			"id": "51edc181-b228-4f9e-aa3d-0a30f64695b4",
        			"role": "da3c04d7-b593-4017-b6c3-4c9eed7699bb"
        		}
            }
          ]
        }
        Cancel invitation
          Resource: <teamslug>/invitations/<invitation_id>

          URLhttps://api-stage.bimplus.net/v2/users/<teamslug>/invitations/<invitation_id>

          Examplehttps://api-stage.bimplus.net/v2/bimplus/invitations/55896fad-187e-47da-bdb6-b441607e3de3

           DELETE
           Delete a specified invitation for new user. Please remember that only the Sender is able to delete the invitation 
          Headers
          Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
          Content-Type: application/json
          
          Status
          Status: 200 OK
          
          Accept invitation
            Resource: <teamslug>/invitations/<invitation_id>/accept

            URLhttps://api-stage.bimplus.net/v2/users/<teamslug>/invitations/<invitation_id>/accept

            Examplehttps://api-stage.bimplus.net/v2/bimplus/invitations/55896fad-187e-47da-bdb6-b441607e3de3/accept

             PUT
             Since this api call will create new user in Bimplus, the request and response json shall be identical with “create user” api call.
            Headers
            Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
            Content-Type: application/json
            
            JSON
            {
             "email" : "newuser@allplan.com",
             "password" : "test"
            }
            
            Status
            Status: 201 Created
            
            JSON
            {
                "teams": [],
                "id": "b8615afc-99cc-4bcd-b0ca-ff0593ce15c6",
                "email": "newuser@allplan.com",
                "status": "Active",
                "firstname": "",
                "lastname": "",
                "company": "",
                "displayname": "",
                "info": "",
                "gender": "",
                "phoneWork": "",
                "phoneHome": "",
                "fax": "",
                "mobile": "",
                "birthDate": "",
                "address": {
                    "street": "",
                    "streetNr": "",
                    "zip": "",
                    "city": "",
                    "country": ""
                },
                "preferedLanguage": ""
            }
            

            Get all pending invitations
               GET
               Get information about all pending invitations. Response returns list of all ( pending ) invitations.
              Headers
              Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
              Content-Type: application/json
              
              Status
              Status: 200 OK
              
              JSON
              [{
              		"id": "55896fad-187e-47da-bdb6-b441607e3de3",
              		"email": "newuser@allplan.com",
              		"sender": {
              			"id": "b664c6d9-d8ab-4257-88b0-d38588d979dc",
              			"email": "testadmin@allplan.com",
              			"firstname": "Test",
              			"lastname": "Admin"
              		},
              		"team": {
              			"id": "d7a504fe-b2ef-4847-bf79-d3733d93e478",
              			"slug": "testteam",
              			"name": "Test Team"
              		},
              		"invitationText": "Some text",
              		"created": "2016-12-01T07:51:20.843",
              		"changed": "2016-12-01T07:51:20.843",
              		"validTo": "2016-12-08T07:51:20.843",
              		"projects": [{
              				"projectId": "e3921c6a-6329-441a-a715-e6c818e05043",
              				"roleId": "2baca0e4-2eee-4f7c-bc56-22ed54a1859c",
              				"group": {
              					"id": "51edc181-b228-4f9e-aa3d-0a30f64695b4",
              					"role": "da3c04d7-b593-4017-b6c3-4c9eed7699bb"
              				}
              			}
              		]
              	}
              ]