Пользователь (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,
    "chat_full_limit": int,
    "chat_dlg_mode": int,
    "chat_dlg_limit": int,
    "sites": array<str>,
    "allow_script_crud": bool
  },
  "ext": {
    "ct": date,
    "lwt": date,
    ...
  }
}
Table 1. Поля
Спецификация Описание

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

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

Поле: 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.

Поле: 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.title
Режим: in
Тип: str
По умолчанию: empty

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

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

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

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

Максимально допустимое количество одновременно обслуживаемых чат-сессий пользователя (в состоянии ротации)

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

Режим работы с чат-сессиями в диалоге (задача #421).

  • 0 – не более одной сессии в режиме диалога единовременно,

  • 1 – по отдельному API-запросу из приложения оператора увеличение единовременно обрабатываемых сессий на каждую новую сессию с автоматическим возвратом после завершения обслуживания к одной единовременно обслуживаемой сессии,

  • 2 – несколько сессий в режиме диалога единовременно, предельное количество управляется параметром chat_dlg_limit.

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

Максимально допустимое количество чат-сессий в диалоге у пользователя единовременно. Применяется для chat_dlg_mode = 2.

Поле: 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 токен сессий. При попытке аутентификации, в случае превышения лимита сессий, будет возвращена ошибка превышения лимита веб-сессий.

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

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

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

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

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

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

См. также

Функциональные роли

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

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