A unit must belong to a domain and one domain only. A unit can contain one or many (child) units, but a unit can only belong to one (parent) unit only. In other words, the relationship between units is one-many.

Attributes

Attribute


type


values


default


mandate


comment


name


string






true




description


string






false
















domain


object






true


the domain that the unit belongs to


parent


object






true


the parent unit


hasChildren


boolean










children


coll










repository


 object









radiusProfile


 object









policies


coll








Assigned policies


radiusProfile


object










radiusAttributes


coll










/unit/create

To create a new unit, we must specify the name of the unit and its parent: either a domain or a unit. On success, the method always returns the internal unit id of the newly created unit.
Parameters:
{
"attrs":{list of attribute value pairs}
}
Response:
{
"error":0,
"result":{"id":the id of the newly created unit}
}
Examples:

  1. Creating a top-level unit without parent.

Method:/unit/create
Parameters:
{
"attrs":
{
"name":"sales",
"description":"sales dept.",
"domain.id":2
}
}
Response: {"error":0, "result":{"id":1}}

  1. Creating a sub-level unit by specifying its parent unit.

Method:/unit/create
Parameters:
{
"attrs":
{
"name":"sales - london",
"description":"sales team in London",
"parent.id":1
}
}
Response: {"error":0, "result":{"id":2}}

/unit/search

Examples:

  1. Search units in the entire domain


Method:/unit/search
Parameters:
{
"match":
[
[domain.id", "=", 1],
[name", "like", "sales%"]
],
"return":["name", "id", "domain.id", "parent.id"],
"sort":"name",
"order":"asc",
"max": 20,
"offset": 0
}
Response:
{
"error":0,
"result":
[
{
"name":"sales",
"id":"1",
"domain.id":1,
"parent.id":null
},
{
"name":"sales - london",
"id":"2",
"domain.id":1,
"parent.id":1
},
{
...
}
]
}


  1. Search top-level units


Method:/unit/search
Parameters:
{
"match":
[
[domain.id", "=", 1]
[parent.id", "=", null]
],
"return":["name", "id"],
"sort":"name",
"order":"asc",
"max": 20,
"offset": 0
}
Response:
{
"error":0,
"result":
[
{
"name":"sales",
"id":1,
},
{
...
}
]
}


  1. Searchchild units of a specific unit


Method:/unit/search
Parameters:
{
"match":
[
[domain.id", "=", 1],
[parent.id", "=", 2]
],
"return":["name", "id"],
"sort":"name",
"order":"asc",
"max": 20,
"offset": 0
}
Response:
{
"error":0,
"result":
[
{
"name":"sales - london",
"id":2,
},
{
...
}
]
}


/unit/get


Method:/unit/get
Parameters:
{
"match":
[
["id", "=", 2],
],
"return":["name", "id", "domain.id","parent.id"],
}
Response:
{
"error":0,
"result":
{
"name":"sales - london",
"id":"2",
"domain.id":1,
"parent.id":1
}
}


/unit/set

Method:/unit/set
Parameters:
{
"id":1,
"attrs":{"description":"new description"}
}
Response:
{
"error":0
}

/unit/delete

Method:/unit/delete
Parameters:
{
"id":1
}
Response:
{
"error":0
}

/unit/addUsers


Method:/unit/addUsers
Parameters:
{
"id":unit_id,
"users":
[
{id:uid1},
{id:uid2}
]
}
Response:
{
"error":0
}


/unit/deployTokens

Method:/unit/deployTokens
Parameters:
{
"attrs":
{
"unit.id":unit_id,
"product.id":product_id
}
}
Response:
{
"error":0
}


Other Methods:

  1. applyPolicy(apply/unapply)


  • No labels