13.5.6 Пользователь
Методы
user-create
Метод создания локальных пользователей внутри провайдера аутентификации local.
Запрос:
{
"jsonrpc": "2.0",
"method": "user-create",
"params": {
"username": "vdi-admin-test",
"password": "N1CUnkL67oeYw9mhR6jJ"
},
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585"
}
Успешный ответ:
{
"jsonrpc": "2.0",
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585",
"result": {
"code": 1,
"message": "Created"
}
}
user-delete
Метод деактивации пользователей для любого из провайдеров аутентификации.
Запрос:
{
"jsonrpc": "2.0",
"method": "user-delete",
"params": {
"username": "vdi-admin-test",
"provider": "local"
},
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585"
}
Успешный ответ:
{
"jsonrpc": "2.0",
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585",
"result": {
"code": 1,
"message": "Deleted"
}
}
user-set
Метод загрузки метаданных пользователя в виде JSON. Не указывая username и provider можно вызвать метод без привилегии, тогда метод будет изменять data для пользователя, который вызвал метод. Имея привилегию можно установить data любому пользователю.
Запрос:
{
"jsonrpc": "2.0",
"method": "user-set",
"params": {
"username": "vdi-admin-test",
"provider": "local",
"data": {
"test_field": 1,
"test_field2": "test",
}
},
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585"
}
Успешный ответ:
{
"jsonrpc": "2.0",
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585",
"result": {
"code": 1,
"message": "Updated"
}
}
user-get
Метод получения информации о пользователе. Не указывая params, можно вызвать метод без привилегии, тогда будет предоставлена информация о владельце токена аутентификации. Имея привилегию, можно запросить информацию о любом пользователе.
Запрос:
{
"jsonrpc": "2.0",
"method": "user-get",
"params": {
"username": "vdi-admin-test",
"provider": "local"
},
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585"
}
Успешный ответ:
{
"jsonrpc": "2.0",
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585",
"result": {
"code": 1,
"data": {
"data": {},
"created_ts": 1733252645,
"provider": "local",
"username": "vdi-admin-test",
"sso_username": "IcyExecutioner173153",
"twofa": {
"email": "artem.shirma@vstack.com",
"last_code_sent_ts": 1756303408,
"verified": false
},
}
}
}
user-list
Метод получения информации о всех пользователях в виде списка.
self_roles—true, если у пользователя есть хотя бы одна роль (без учета группActive Directory).
Запрос:
{
"jsonrpc": "2.0",
"method": "user-list",
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585"
}
Успешный ответ:
{
"jsonrpc": "2.0",
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585",
"result": {
"code": 1,
"data": [
{
"created_ts": 1733329958,
"provider": "local",
"username": "test-user-0",
"sso_username": "IcyExecutioner173153",
"self_roles": true,
"roles": {
"2": [
{}, // Роль назначена без атрибутиов
{
"vspace_id": 1
},
{
"vspace_id": 25
}
]
}
},
{
"created_ts": 1734429054,
"provider": "ad",
"username": "dd39910a-c7ab-4e9b-9948-b008043d8207",
"sso_username": "MadChampioness456522",
"self_roles": true,
"roles": {
"4": [
{}, // Роль назначена без атрибутиов
{
"vspace_id": 1,
"desktop_id": 245
},
{
"vspace_id": 25
}
],
"3": [
{} // Роль назначена без атрибутиов
]
}
}
]
}
}
user-set-password
Метод смены пароля для пользователя провайдера local. Не указывая username, можно вызвать метод без привилегии, тогда будет изменен пароль владельца токена аутентификации. Имея привилегию, можно менять пароль других пользователей.
Запрос:
{
"jsonrpc": "2.0",
"method": "user-set-password",
"params": {
"username": "test-user-0",
"password": "qwertyuiopqwertyuiop"
},
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585"
}
Успешный ответ:
{
"jsonrpc": "2.0",
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585",
"result": {
"code": 1,
"message": "Password changed"
}
}
user-roles
Метод получения назначенных пользователю ролей. При наличии привилегии возможно запросить список для любого пользователя указав username и provider, без указания будет выведен список для пользователя токена (даже если привилегия отсутствует).
При наследовании пользователем роли от группы Active Directory в объект роли будет добавлено поле group_id.
Запрос:
{
"jsonrpc": "2.0",
"method": "user-roles",
"params": {
"username": "dd39910a-c7ab-4e9b-9948-b008043d8207",
"provider": "ad"
},
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585"
}
Успешный ответ:
{
"jsonrpc": "2.0",
"id": "cbf4478c-84b5-45ac-97cd-0390d7190585",
"result": {
"code": 1,
"data": [
{
// 'group_id' — Идентификатор группы, поле присутствует если роль наследована от группы в Active Directory
"group_id": "8cf05593-d92e-47a2-971f-6ead5ccb59bb",
// 'attrs' — атрибуты роли, список аттрибутов которые поддерживает роль в 'role-list'
"attrs": {
// 'vspace_id' — роль доступна только в рамках vspace c id = 1
"vspace_id": 1
},
"id": 1,
"name": "vSpace Admin",
// `granted_ts` — время, когда роль была назначена
"granted_ts": 1744213700
},
{
"attrs": {
// 'vspace_id' — роль доступна только в рамках vspace c id = 1
"vspace_id": 1
},
"created_ts": 1744213890,
"creator_provider": "local",
"creator_username": "test_user",
"id": 10000,
"modified_ts": 1744215225,
"name": "Custom Role",
"granted_ts": 1744213700
},
]
}
}