Not logged in - Login

API Example User Admin


NOTE: We do NOT recommend attempting to post user permission groups or office settings. This process is difficult to accomplish through the API. We recommend that you simply post / create the user and then your Org Admin will have to assign permissions.

POST https://securelb.trackerproducts.com/api/users/
Sample format for submit
{
"firstName": "Bob",
"middleName": "",
"lastName": "Smith",
"organizationId": X,
"officeId": XX,
"email": "bob.smith@invalidemail.com",
"mobilePhone": "123-456-7891",
"otherphone": "",
"active": true,
"emailDisable": false,
"groups":[ ],
"personFormData":[ ]
}

X = Org ID found in Settings > Offices XX = Org ID found in Settings > Offices

After your post, you will receive an ID and a GUID in the response. You will need this for POSTing permissions for this new user.
"id": 27667,
"guid": "65439632-0e4f-e811-9ab8-303a64ac4dc3",

GETing Permissions Groups
https://securelb.trackerproducts.com/api/groups


{
"id": 1390,
"name": "Power User",
"description": "Power Users (All except Admin)",
"organizationId": 371,
"organizationName": "Free Org Test",
"hasUsers": true
},


POSTing back User along with Permission Group for that user
https://securelb.trackerproducts.com/api/groups/userperms

We can now set permissions to one of the above groups.

  • Note that the Post method takes an array of user Ids
  • Be certain you are using the id field from the user record, and not the personId field.
  • The request will include all of the user groups returned above with the appropriate group "selected" field given a value of true.
  • If the organization has multiple offices, each office can be set with a different permission group.
  • A user can have no permissions set for an office, but every user must have permissions set for the default office


{"UserIds":[27668,27667],
"OfficeToGroups":[{
"officeId":602,
"officeName":"Default Office",
"groups":
[
{
"id":1390,
"name":"Power User",
"description":"Power Users (All except Admin)",
"organizationId":371,
"organizationName":"Free Org Test",
"hasUsers":true,
"route":"groups",
"reqParams":null,
"restangularized":true,
"fromServer":true,
"parentResource":null,
"restangularCollection":false,
"selected":false,
"selectAll":false
},

Retrieving user data for a single user
GET
https://securelb.trackerproducts.com/api/users/1
X = id - NOTE This is the id of the user record, not the PersonId which is a property in the user record.
This will return the user record with an id of 1, which will look like the following:
{
"id": 1,
"guid": "adf879d3-bc5b-e511-a0e6-06e9f5d49c4d",
"email": "jsparrow@trackerproducts.com",
"mobilePhone": "088-346-9605",
"otherPhone": "088-346-9605",
"isAdmin": true,
"hasReservedLicense": true,
"firstName": "Jack",
"middleName": "3176D103FF",
"lastName": "Sparrow",
"name": "Jack 3176D103FF Sparrow",
"personId": 1,
"organizationId": 1,
"organizationName": null,
"officeId": 1,
"photoId": 1,
"photoUrl": null,
"createdDate": "2015-06-26T15:31:01.2524727+00:00",
"lastLoginDate": "2018-07-25T11:29:47.8147558+00:00",
"loginCount": 2775,
"active": true,
"note": null,
"dateFormat": "mediumDate",
"dateTimeFormat": "medium",
"jwtToken": "eyJ0eXAiOi.............",
"isOrgAdmin": true,
"isGoogleAuthenticatorEnabled": false,
"googleAuthenticatorSecretKey": null,
"emailDisable": true,
"groups": [

],
"userGroups": [

],
"personFormData": null
}

If you would like to see permission groups as part of the return data, groups=true is added to the request:
https://securelb.trackerproducts.com/api/users/1?groups=true


Retrieving a list of users
GET
https://securelb.trackerproducts.com/api/users/search
Here is an example of the search request body:
{
"page": 0,
"count": 100,
"searchString": "User",
"orderBy": "OfficeName",
"orderByAsc": true,
"officeId": 0,
"onlyActiveUsers": true
}
In the above example we are returning all of the active users in the organization.


Example how to search for a user using email:


https://securelb.trackerproducts.com/api/users/search


Here is the body of my search:
{
"page": 0,
"count": 100,
"searchString": "someemail@someemail.com",
"orderBy": "MobilePhone",
"orderByAsc": true,
"officeId": 0,
"onlyActiveUsers": true
}


User Typeahead search
Another search option is to use the typeahead search endpoint: http://securelb.trackerproducts.com/api/users/typeahead?search=mike


This endpoint will search the following fields:
- First Name
- Middle Name
- Last Name
- Email
- Alias (this property is a part of the person record associated with a user)


Here is an example of using this endpoint:
http://securelb.trackerproducts.com/api/users/typeahead?search=mike


will return an array of users along with a count of the users returned by the query in the following format:
{
"users": [
{
"id": 17663,
"text": " Mike Singleton (msingleton@trackerproducts.com)"
}
],
"usersCount": 1
}


Here is an example of searching by email address:
http://securelb.trackerproducts.com/api/users/typeahead?search=tracker


which returns the following:
{
"users": [
{
"id": 1,
"text": " Jack 3176D103FF Sparrow (jsparrow@trackerproducts.com)"
},
{
"id": 17663,
"text": " Mike Singleton (msingleton@trackerproducts.com)"
},
{
"id": 17664,
"text": " Victor Frankenstein (1msingleton@trackerproducts.com)"
}
],
"usersCount": 3
}
Other User Controller Endpoints



Get User By UserId
GET https://securelb.trackerproducts.com/api/users/####
where #### is the userId

Get Current User
GET https://securelb.trackerproducts.com/api/users/currentUser

Get User Without JwtToken
For users integrating with the API, it is sometimes beneficial to get user data without the jwtToken:
https://securelb.trackerproducts.com/api/users/getUserWithoutJwtToken/####
where #### is the userId
If you would like to see permission groups as part of the return data, groups=true is added to the request:
GET https://securelb.trackerproducts.com/api/users/getUserWithoutJwtToken/####?groups=true
Here is the return data from this request:
{
"id": 17663,
"guid": "bf54d419-d50d-e811-9ab0-303a64ac4dc3",
"email": "msingleton@trackerproducts.com",
"mobilePhone": "222-2222",
"otherPhone": "",
"isAdmin": false,
"hasReservedLicense": false,
"firstName": "Mike",
"middleName": "",
"lastName": "Singleton",
"name": "Mike Singleton",
"personId": 1634850,
"organizationId": 1,
"organizationName": "Tracker Products",
"officeId": 1,
"photoId": 17663,
"photoUrl": null,
"createdDate": "2018-02-09T20:09:15.7175598+00:00",
"lastLoginDate": "2018-11-27T18:12:54.1948624+00:00",
"loginCount": 347,
"active": true,
"note": null,
"dateFormat": "longDate",
"dateTimeFormat": "medium",
"jwtToken": "",
"isOrgAdmin": false,
"isGoogleAuthenticatorEnabled": false,
"googleAuthenticatorSecretKey": null,
"emailDisable": false,
"groups": [
"SAFE Digital Forensics Tracking-445 Office: Power User",
"SAFE Digital Forensics Tracking-SAFE Digital Forensics Tracking - Honk Kong: Power User",
"SAFE Digital Forensics Tracking-SAFE Digital Forensics Tracking - London: Power User",
"SAFE Digital Forensics Tracking-SAFE Digital Forensics Tracking - New York: Power User",
"SAFE Digital Forensics Tracking-SAFE Digital Forensics Tracking - Vegas:\ Power User",
"Smns (Assets)-506 Office: Power User",
"Smns (Assets)-507 Office: Power User",
"Smns (Assets)-509 Office: Power User",
"Smns (Assets)-EUC Windows: Power User",
"Tracker Products-1 Office: Basic User",
"Tracker Products-231 Office: Basic User"
],
"userGroups": [
{
"id": 16,
"text": "Sessions User 2 Group"
}
],
"personFormData": null,
"languageTemplateId": null
}