Пользователь (user)

Описание

Учетная запись пользователя системы в домене.
Определяет параметры авторизации и границы доступа к функционалу системы через HTTP и WebSocket API. Состав ролей у пользователя определяет уровень доступа к API.

Ограничения

  • Коллекция доступна в любых доменах. Каждый домен может содержать особый набор ролей (opts.roles) для пользователей.

  • Логика работы системы использует домены и принадлежащие им объекты при реализации функционала и определении доступа для отдельных пользователей. Все данные внутри домена по умолчанию замкнуты. Однако учетные записи пользователей доступны администраторам родительского домена. Относится к слою данных.

Поля

Структура сущности
{
  "id": uuid,
  "name": str,
  "login": str,
  "pwd": str,
  "timezone": float | 'default',
  "opts": {
    "title": str,
    "roles": array<str>,
    "tags": array<str>,
    "copy_to_domains": array<str>,
    "comment": str,
    "sites": array<str>,
    "allow_script_crud": bool
  },
  "security": object,
  "ext": {
    "ct": date,
    "lwt": date,
    ...
  }
}
Table 1. Поля
Спецификация Описание

Поле: id
Режим: inout
Тип: uuid
По умолчанию: generated

Идентификатор. Может быть задан при создании, иначе генерируется системой.

Поле: name
Режим: in
Тип: str
По умолчанию: required

Имя пользователя.
Может содержать символы A-Za-z0-9_-.~!. Длина не должна быть более 1000 символов.

Поле: login
Режим: in
Тип: str
По умолчанию: required

Логин пользователя.
Может содержать символы A-Za-z0-9_-.~!. Длина не должна быть более 100 символов.

Поле: pwd
Режим: in
Тип: str
По умолчанию: required

Пароль пользователя.
Может содержать символы A-Za-z0-9_-.~!. Длина не должна быть более 100 символов.

Поле: timezone
Режим: in
Тип: float | "default"
По умолчанию: "default"

Часовой пояс пользователя. От -12 до 12, например 3.5, или "default" для применения часового пояса сервера.

Поле: opts
Режим: in
Тип: object
Составное поле

Поле: opts.roles
Режим: in
Тип: array<str>
По умолчанию: empty

Список ролей пользователя, установленных ему персонально.
Возможные значения доступны через API roles.

Полный набор ролей пользователя определяется также вхождением пользователя в группы.
Весь набор заданных пользователям ролей доступен через API users_caches.

Для учетных записей мастер-домена, которые копируются в другие домены ('copy_to_domains'), может понадобиться задать роли продуктового слоя, установленного в дочернем домене. Такие роли не присутствуют в списке ролей мастер-домена и должны задаваться вручную.

Поле: opts.tags
Режим: in
Тип: array<str>
По умолчанию: empty

Список тегов пользователя.
Применяются для сопоставления с сущностями других классов.
Задаются через запятую в виде произвольных строковых значений.

Поле: opts.copy_to_domains
Режим: in
Тип: array<str>
По умолчанию: empty

Маски доменов.
Поле существует только в мастер-домене.
Wildcards могут включать:

  • * – произвольное количество любых символов.

  • $ – произвольное количество любых символов, кроме точки.

  • ? – произвольный символ, кроме точки).

Примеры:
  • $.domain.ru – любой поддомен первого уровноя относительно domain.ru;

  • $.$.domain.ru – любой поддомен второго уровня относительно domain.ru;

  • domain.$ – домен в любой зоне;

  • *.domain.ru – любой поддомен любого уровня в дереве дочерних доменов domain.ru;

  • a?.domain.ru – любой поддомен первого уровня относительно domain.ru, где имя состоит из двух символов, первый из которых a.

Поле: opts.self_registered
Режим: inout
Тип: bool
По умолчанию: false

Выставляется в 'true' системой при создании в ходе самостоятельной регистрации пользователя.

Поле: opts.info
Режим: inout
Тип: object
По умолчанию: empty

Заполняется системой при автоматической регистрации или обновлении данных во внешней системе при OAuth-авторизации.

Поле: opts.title
Режим: in
Тип: str
По умолчанию: empty

Произвольный заголовок

Поле: opts.comment
Режим: in
Тип: str
По умолчанию: empty

Произвольный комментарий

Поле: opts.sites
Режим: in
Тип: array<str>
По умолчанию: empty

Список сайтов для ограничения доступа к данным. Поле существует только в мастер-домене для пользователей с ролью sitemonitor.

Поле: opts.allow_script_crud
Режим: in
Тип: bool
По умолчанию: false

Признак разрешения выполнения CRUD операций при запуске сценариев от имени пользователя

Поле: opts.web_sess_limit
Режим: in
Тип: int
По умолчанию: 10

Максимальное количество веб-сессий для пользователя. Количество определяется как 1 cookie сессия + n токен сессий. При попытке аутентификации, в случае превышения лимита сессий, будет возвращена ошибка превышения лимита веб-сессий.

Поле: opts.phonenumber
Режим: in
Тип: string
По умолчанию: empty

Телефонный номер пользователя, применяемый к учетной записи sipuser во время горячего связывания с помощью абонентской функции Хот-Деска или из клиентского приложения.
Может содержать символы 0-9 в количестве не более 100.

Поле: opts.pincode
Режим: in
Тип: string
По умолчанию: empty

Пин-код пользователя, применяемый в целях горячего связывания пользователя и учетной записи sipuser с помощью абонентской функции Хот-Деска.
Может содержать символы 0-9 в количестве не более 100.

Поле: security
Режим: inout
Тип: object
Составное поле

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

Поле: ext
Режим: inout
Тип: object
Составное поле

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

Поле: ext.ct
Режим: out
Тип: date
По умолчанию: generated

Время создания объекта

Поле: ext.lwt
Режим: out
Тип: date
По умолчанию: generated

Время последней модификации объекта

Поле: ext.adminPermissions
Режим: in
Тип: array<str>
По умолчанию: empty

Список разделов приложения 'Настройки', доступных учетной записи администратора.
Актуально только для пользователей, имеющих роли, открывающие доступ к приложению Настройки, а также к соответствующим эндпойнтам REST API.
Для учетной записи стандартного администратора (логин 'admin') параметр не применяется, авторизованному под ней пользователю доступны все разделы.
Особое значение '' открывает доступ ко всем разделам: "adminPermissions": [""]
В приложении Настройки можно выбрать конкретные разделы.

См. также

Логические роли

  • mdc и sdc управляют учетными записями.

  • ws производит авторизацию при обработке API запросов.