A user is a child object of a domain or unit. A user belongs to a domain or unit, and only one domain or unit only. A user can belong to many groups, however. In a way, a group can be seen as one of the parents of a user.
Attributes
Attribute | type | values | default | mandate | comment |
name | string | true | |||
attribute i | false | ||||
status | string | INACTIVE, | ACTIVE | ||
description | string | false | |||
domain | object | true | the domain it belongs to | ||
unit | object | false | The parent unit | ||
groups | coll | false | Associated groups | ||
roles | coll | false | Assigned roles | ||
tokens | coll | false | Assigned tokens | ||
tokenAssignments | coll | ||||
tempPasses | Coll<TempPass> | false | |||
qnas | coll | false | |||
siteStamps | coll | false | |||
images | coll | false | |||
certificates | Coll<UserCertificate> | ||||
lastLogin | date | ||||
radiusAttributes | coll | ||||
failCount | integer | 0 | |||
mustChangePassword | Boolean | False | |||
passwordNeverExpires | Boolean | False | |||
lastChangePassword | date |
UserCertificate attributes
Attribute | type | values | default | mandate | comment |
subjectDn | string | readOnly | |||
serialNumber | integer | readOnly | |||
signature | string | readOnly | |||
issuerDn | string | readOnly | |||
startDate | date | readOnly | |||
expiryDate | date | readOnly | |||
certificatePem | string | readOnly |
/user/create
To create a new user, we must specify the name of the user and its parent: either a domain or a unit. On success, the method always returns the internal user id of the newly created user.
{
"attrs":
{
"domain.id": "parent domain id",
"loginName": "the login name",
"password": "the password",
"email": "the email",
...
}
}
{
"error":0,
"result":{"id":"the id of the newly created user"}
}
/user/search
Examples:
Search users in a domain
Parameters{ "match": [ [domain.id", "=", "domain id 1"], ], "return":["id", "loginName", "email"], "sort":"name", "order":"asc", "max": 20, "offset": 0 }Response{ "error":0, "result": [ { "id":"user id 1", "loginName":"John Smith", "email": "john.smith@acme.com" }, { "id":"user id 2", "loginName":"Alice Smith", "email": "alice.smith@acme.com" }, ... ] }Search users in a unit
Parameters{ "match": [ [unit.id", "=", "unit id 1"], ], "return":["id", "loginName", "email"], "sort":"name", "order":"asc", "max": 20, "offset": 0 }Response{ "error":0, "result": [ { "id":"user id 1", "loginName":"John Smith", "email": "john.smith@acme.com" }, { "id":"user id 3", "loginName":"Bob Smith", "email": "bob.smith@acme.com" }, ... ] }Search users in a group
Parameters{ "match": [ [group.id", "=", "group id 1"], ], "return":["id", "loginName", "email"], "sort":"name", "order":"asc", "max": 20, "offset": 0 }Response{ "error":0, "result": [ { "id":"user id 1", "loginName":"John Smith", "email": "john.smith@acme.com" }, { "id":"user id 3", "loginName":"Bob Smith", "email": "bob.smith@acme.com" }, ... ] }
/user/get
Method:/user/get
Parameters:
{
"match":
[
["id", "=", 2],
],
"return":["name", "id"],
}
Response:
{
"error":0,
"result":
{
"name":"Joe Blog",
"id":"2",
}
}
/user/set
Method:/user/set
Parameters:
{
"id":1,
"attrs":{"email":"john.smith@acme.com"}
}
Response:
{
"error":0
}
/user/delete
Method:/user/delete
Parameters:
{
"id":1
}
Response:
{
"error":0
}
Other methods:
Unit
- moveUnit
Group
- joinGroup(join/unjoin)
/user/joinGroup
Method: /user/joinGroup
Parameters:
{
"user":{"id":1},
"groups:
[
{"id":5},
{"id":6},
{"id":7}
],
"action":"join | unjoin"
}
Response:
{
"error":0
}
Role
- assignRole(assign/unassign)
Token
- assignToken(assign/unassign)
/user/assignToken
Method: /user/assignToken
Assign an existing token
Parameters:
{
"user":{
"id":1,
"domain.id":domainId,
"loginName":loginName
},
"token:{
"id":5,
"product.manufactureCode":mc,
"product.productCode":pc,
"serial":xxx,
},
"credential":{ // optional
"otp":xxxx
},
"autoAssign":true|false,
"action":"assign | unassign",
"isOwner":true | false,
"starts":xxx,
"expires":xxx,
"usageLimit":50,
"status":"active | inactive | disabled",
"pin":"the token pin"
}
Response:
{
"error":0,
"id":tokenAssignmentId
}
/user/resetPassword
Method: /user/assignToken
Assign an existing token
Parameters:
{
"id":"user id",
"attrs":
{
"password":"new password",
"userMustChangePassword":true|false
},
}
Response:
{
"error":0
}
/user/getMessageTemplate
Examples:
Method:/user/getMessageTemplate
Parameters:
{
"user":
{
"domain.name":"xxx"
"loginName":"abc"
},
"templateItemName":"SMTP_OTP"
}
Response:
{
"error":0,
"result":"template in json string"
}
/user/ listProvisioningUrls
Examples:
Method:/user/ listProvisioningUrls
Parameters:
{
"user":
{
"domain.name":"xxx"
"loginName":"abc"
}
}
Response:
{
"error":0,
"result":
{
"total":2,
"rows":
[
"http://provioning.deepnetsecurity.local:8072
",
"http://provioning2.deepnetsecurity.local:8073"
]
}
}
/user/import
This method is a task running in the background
Examples:
Method:/user/import
Parameters:
{
"attrs":
{
"format":"csv or xml",
"data":"...",
"charset":"UTF-8"// optional
}
}
Response:
{
"error":0
}
/user/issueCertificate
Method:/user/issueCertificate
Parameters:
{
"user":
{
"loginName":"xxx",
"domain.Name":"somedomain"
},
"csr":"csr data"
"return":
{
"id", "subjectDn"
}
}
Response:
{
"error":0
}
/user/importCertificate
Method:/user/importCertificate
Parameters:
{
"user":
{
"loginName":"xxx",
"domain.Name":"somedomain"
},
"certificate":
{
"data":"..." //PEM format
},
"return":
{
"id", "subjectDn"
}
}
Response:
{
"error":0
}
/user/deleteCertificate
Method:/user/deleteCertificate
Parameters:
{
"user":
{
"loginName":"xxx",
"domain.Name":"somedomain"
},
"certificate":
{
"id":"cert id"
}
}
Response:
{
"error":0
}
/user/getPolicy
Examples:
Method:/user/getPolicy
Parameters:
{
"user":
{
"loginName":"login name",
"domain.id":domainid
},
"category":
{
"name":"logon"
},
"return":["name", "id","options"]
}
Response:
{
"error":0,
"result":
{
"id":"1",
"name":"System logon policy",
"options":
{
"key":"value",
...
}
}
}