Перейти к основному содержимому

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
},
]
}
}