Пользователи (users)

Обзор

Производит управление учетными записями пользователей.

В запросах на endpoint конкретного пользователя допускается указывать алиас "current". В этом случае вместо него автоматически применяется идентификатор авторизованного пользователя.

Пароль учетной записи (поле 'pwd') маскируется при выдаче администраторам, и не выдается другим пользователям с ролями, дающими право чтения коллекции.

Запросы

HTTP verb Endpoint Описание

POST

/rest/v1/iam/users

Создание нового пользователя

GET

/rest/v1/iam/users

Получение списка пользователей

GET

/rest/v1/iam/users/<id> /rest/v1/iam/users/current

Получение данных пользователя

PATCH

/rest/v1/iam/users/<id> /rest/v1/iam/users/current

Изменение данных пользователя

DELETE

/rest/v1/iam/users/<id>

Удаление пользователя

LOOKUP

/rest/v1/iam/users

Поиск идентификатора пользователя


Создание нового пользователя

Запрос

Описание полей: user entity

Пример запроса
POST /rest/v1/iam/users HTTP/1.1
Content-Type: application/json; charset=utf-8

{
  "name": "Мария Иванова",
  "login": "mari",
  "pwd": "hjpjdstckjys"
}

Ответ

Описание полей: user entity

Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
  "id": "6a941fb6-016c-bdc2-95ce-50e54938780c",
  "name": "Мария Иванова",
  "login": "mari",
  "pwd": "*****",
  "timezone": "default",
  "opts": {
    "title": "",
    "roles": [],
    "tags": [],
    "comment": "",
    "allow_script_crud": false
  },
  "ext": {
    "ct": "2019-08-23T09:17:23.46Z",
    "lwt": "2019-08-23T09:17:23.46Z"
  }
}

Получение списка пользователей

Запрос

Table 1. Параметры запроса
Имя Тип Описание

filter

object

Фильтр по значениям полей.

mask

str

Список полей для вывода. Доступные поля для выдачи: id, login, name, timezone, opts.roles, ext.lwt, ext.ct.

offset

int

Смещение в списке ресурсов, подлежащих выдаче.

limit

int

Максимальное количество ресурсов в списке.

order

array<object|str>

Порядок сортировки ресурсов в списке.

flat

bool

Преобразование в плоский вид составных полей.

Пример запроса
GET /rest/v1/iam/users?offset=0&limit=2 HTTP/1.1

Ответ

Описание полей: user entity

Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

[
  {
    "id": "6a941fb6-016c-bdc2-95ce-50e54938780c",
    "name": "Мария Иванова",
    "login": "mari",
    "timezone": "default",
    "opts": {
      "roles": []
    },
    "ext": {
      "ct": "2019-08-23T09:17:23.46Z",
      "lwt": "2019-08-23T09:17:23.46Z"
    }
  },
  {
    "id": "e7adf0aa-05b7-8163-948c-3392a9660db9",
    "name": "Петр Букашин",
    "login": "peter",
    "timezone": 3.0,
    "opts": {
      "roles": ["admin"]
    },
    "ext": {
      "ct": "2019-08-21T07:18:33.29Z",
      "lwt": "2019-08-21T07:18:33.29Z"
    }
  }
]

Получение данных пользователя

Особенности

  • Сервер не возвращает действительное значение пароля, скрывая его значением "*****".

Запрос

Table 2. Параметры запроса
Имя Тип Описание

mask

str

Список полей для вывода.

flat

bool

Преобразование в плоский вид составных полей.

Пример запроса
GET /rest/v1/iam/users/6a941fb6-016c-bdc2-95ce-50e54938780c HTTP/1.1

Ответ

Описание полей: user entity

Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
  "id": "6a941fb6-016c-bdc2-95ce-50e54938780c",
  "name": "Мария Иванова",
  "login": "mari",
  "pwd": "*****",
  "timezone": "default",
  "opts": {
    "title": "",
    "roles": ["admin","monitor","scripteditor"],
    "tags": [],
    "comment": "",
    "allow_script_crud": false
  },
  "ext": {
    "ct": "2019-08-23T09:17:23.46Z",
    "lwt": "2019-08-23T09:17:23.46Z"
  }
}

Изменение данных пользователя

Поля запрещенные для изменения: id

Особенности

  • При сохранении пользователя с указанием в поле пароля скрывающего значения "*****" пароль не изменяется.

Запрос

Описание полей: user entity

Пример запроса
PATCH /rest/v1/iam/users/6a941fb6-016c-bdc2-95ce-50e54938780c HTTP/1.1
Content-Type: application/json; charset=utf-8

{
  "opts": {
    "roles": ["admin","monitor","scripteditor"]
  }
}

Ответ

Описание полей: user entity

Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
  "id": "6a941fb6-016c-bdc2-95ce-50e54938780c",
  "name": "Мария Иванова",
  "login": "mari",
  "pwd": "*****",
  "timezone": "default",
  "opts": {
    "title": "",
    "roles": ["admin","monitor","scripteditor"],
    "tags": [],
    "comment": "",
    "allow_script_crud": false
  },
  "ext": {
    "ct": "2019-08-23T09:17:23.46Z",
    "lwt": "2019-09-06T12:46:18.62Z"
  }
}

Удаление пользователя

Запрос

Пример запроса
DELETE /rest/v1/iam/users/6a941fb6-016c-bdc2-95ce-50e54938780c HTTP/1.1

Ответ

Пример ответа
HTTP/1.1 204 No Content

Поиск идентификатора пользователя

Производит поиск ресурса по указанному ключу, возвращает идентификатор(ы) для построения endpoint.

Ключевые поля для поиска: id, login

Запрос

Пример запроса
LOOKUP /rest/v1/iam/users HTTP/1.1
Content-Type: application/json; charset=utf-8

"mari"

Ответ

Пример успешного ответа
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8

[
  "6a941fb6-016c-bdc2-95ce-50e54938780c"
]
Пример неуспешного ответа
HTTP/1.1 404 Not Found
Content-Type: application/json; charset=utf-8

{
  "error_code": 1404,
  "error_message": "Lookup failed"
}