Перейти к содержанию

Пользователи и группы — Администрирование

Обзор

Домен users-and-groups настраивает: - жизненный цикл пользователя (создание, профиль, увольнение, восстановление, экспорт); - структуру и типы групп, вложенность и доменные ограничения; - организационную структуру (подразделения, должности, связи с группами); - рабочие места групп (UserGroupSettings) и дефолты для новых пользователей; - роль-модель (roles / rolePowers / roleUser).

Домен использует все три механизма администрирования: 1. автоадминка (dbadmin) для конфигурационных таблиц; 2. EntityEditor (JSON-схемы) для ролей/типов/настроек; 3. специализированные Admin API контроллеры для операций, где CRUD-формы недостаточно.

Техническая реализация runtime и сервисной логики описана в docs/domains/users-and-groups/backend.md. В этом документе фокус только на настройках и диагностике мисконфигураций.

Механизмы администрирования

Автоадминка (dbadmin)

Alias формы Название Таблица БД Полей Секций Deps
users Пользователи dbo.Users 150 4 см. AdminFormSectionColumnsDeps
groups Группы dbo.Groups 10 1 см. AdminFormSectionColumnsDeps
workplaces Рабочие места dbo.UserGroupSettings 45 5 см. AdminFormSectionColumnsDeps
users-new-default-settings Настройки по умолчанию¹ dbo.UsersNewDefaultSettings 38 5 см. AdminFormSectionColumnsDeps
org-structure Орг.структура dbo.OrgStructureUnit 19 2 см. AdminFormSectionColumnsDeps
org-structure-type Типы орг.структуры dbo.OrgStructureType 8 1 см. AdminFormSectionColumnsDeps
org-structure-appointment Должности dbo.OrgStructureAppointment 4 1 см. AdminFormSectionColumnsDeps
rooms Список комнат dbo.Rooms 3 1
group-parents Состав группы dbo.GroupParents 4 1
group-domain-access Доступ к доменам dbo.GroupDomainAccess 6 1
group-users-membership История членства dbo.GroupUsersMembership 5 1
special-permissions Специальные права dbo.GroupSpecialPermissions 4 1
user-info-ext-values Расширенные свойства пользователя dbo.UserInfoExtValues 7 1
add-user Создать пользователя dbo.SummaryCategories 5 1

¹ Форма users-new-default-settings заменена на кастомную: позволяет выбирать группы пользователей в поле «Применить к группам» и массово применять настройки в трёх режимах (Notifications / Settings / All). Кнопка «Применить» неактивна без выбранной группы.

EntityEditor

Схема JSON Таблица Handler/контур
roles.json dbo.Roles EntityModel + api/admin/entityModel
rolePowers.json (связи полномочий ролей) EntityModel + api/admin/entityModel
roleUser.json (связи ролей и пользователей) EntityModel + api/admin/entityModel
groupType.json dbo.GroupTypes EntityModel + api/admin/entityModel
userSettings.json dbo.UserSettings EntityModel + api/admin/entityModel
userInfoExt.json (расширенные свойства пользователя) EntityModel + api/admin/entityModel

Admin API контроллеры

Контроллер Маршрут Методы (укрупненно) Назначение
UserManageController /api/admin/users POST, GET, POST /{id}/fire, POST /{id}/unfire, POST /{id}/sync-with-ad создание/удаление/увольнение, перенос задач, синхронизация
UsersExportController /api/admin/users/export POST /excel выгрузка пользователей
UsersProfilesController /api/admin/users/{userId}/profile POST обновление профиля
UserAssistantsSettingsController /api/admin/userassistants/settngs GET, POST /save настройки заместителей
UserNewDefaultSettingsController /api/admin/users/default GET/POST notifications, GET/POST settings дефолты новых пользователей
GroupsController /api/admin/groups/ GET/POST, update, delete, membership операции CRUD групп, состав, иерархия, AD sync
UserGroupSettingsController /api/admin/user-group-settings my-tasks-config, user-ui-settings, includes, reset управление РМГ (UserGroupSettings)
GroupOnEntityPermissionsController /api/admin/permissions actions, get/set permissions, tsql-access-function матрица прав групп по сущностям
EntityAccessController /api/admin/entity-access get/save, subcategory, allowedValueGroups тонкая матрица доступов
OrgStructureController /api/admin/org-structure/ дерево, CRUD оргюнитов, связи с группами, sync оргструктура и привязки

Ключевые настройки

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

Где настраивается: - автоадминка → форма add-user; - Admin API → POST /api/admin/users; - defaults → UserNewDefaultSettingsController.

Таблицы: - dbo.Users; - dbo.UsersNewDefaultSettings; - связанные настройки в dbo.UserSettings.

Что контролируется: - обязательный набор атрибутов карточки пользователя; - применение дефолтов уведомлений/интерфейса; - первичные связи с группой/оргструктурой.

Критичные зависимости: - дефолты читаются из users-new-default-settings и API /api/admin/users/default/*; - после создания часто требуется отдельная настройка ролей (roleUser) и расширенных свойств (userInfoExt).

SQL-диагностика:

select top (50) *
from dbo.Users;

select top (50) *
from dbo.UsersNewDefaultSettings;

2. Профиль пользователя

Где настраивается: - автоадминка → users, user-info-ext-values; - EntityEditor → userInfoExt.json; - Admin API → POST /api/admin/users/{userId}/profile.

Таблицы: - dbo.Users; - dbo.UserInfoExtValues; - dbo.UserSettings.

Что контролируется: - ФИО и контактные поля; - доп. атрибуты карточки (в т.ч. кастомные); - профильные/персональные параметры UI.

Критичные зависимости: - набор отображаемых полей зависит от конфигурации схемы EntityEditor; - при массовом обновлении через формы и API важна согласованность типов и required-логики.

SQL-диагностика:

select top (100) *
from dbo.UserInfoExtValues;

select top (100) *
from dbo.UserSettings;

3. Увольнение пользователя (fire)

Где настраивается: - Admin API → POST /api/admin/users/{userId}/fire; - Admin API → POST /api/admin/users/{userId}/firenow; - Admin API → POST /api/admin/users/{userId}/unfire.

Таблицы/контур: - dbo.Users; - история членства: dbo.GroupUsersMembership; - сопутствующие таблицы задач/подписок (по сценарию переназначения).

Что контролируется: - queued/sync увольнение; - переназначение задач; - восстановление пользователя.

Критичные зависимости: - увольнение и удаление пользователя — разные операции; - при fire важно корректно задать правила по задачам и группам.

SQL-диагностика:

select top (100) *
from dbo.GroupUsersMembership;

select top (100) *
from dbo.Users;

4. Группы и иерархия

Где настраивается: - автоадминка → groups, group-parents; - EntityEditor → groupType.json; - Admin API → /api/admin/groups/*.

Таблицы: - dbo.Groups; - dbo.GroupParents; - dbo.GroupTypes.

Что контролируется: - свойства группы; - тип группы (поведение в интерфейсе/получателях); - вложенность и наследование прав.

Критичные зависимости: - вложенные группы расширяют effective-permissions; - невалидная иерархия приводит к избыточному или недостаточному доступу.

SQL-диагностика:

select top (100) *
from dbo.Groups;

select top (100) *
from dbo.GroupParents;

5. Рабочие места группы (UserGroupSettings)

Где настраивается: - автоадминка → workplaces; - Admin API → /api/admin/user-group-settings/*.

Таблица: - dbo.UserGroupSettings (45 полей, 5 секций).

Что контролируется: - UI/UX для группы; - my-tasks-config и user-ui-settings; - includes (CSS/JS) и chat-subcategories.

Критичные зависимости: - группа может переопределять пользовательские настройки; - конфликт РМГ при членстве в нескольких группах влияет на итоговый UI.

SQL-диагностика:

select top (100) *
from dbo.UserGroupSettings;

select count(*) as Cnt
from dbo.UserGroupSettings;

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

Где настраивается: - автоадминка → users-new-default-settings; - Admin API → /api/admin/users/default/notifications и /settings.

Таблица: - dbo.UsersNewDefaultSettings.

Что контролируется: - стартовые уведомления; - стартовые пользовательские settings; - поведение при восстановлении уволенного пользователя.

Критичные зависимости: - изменения не мигрируют автоматически старых пользователей; - несогласованные дефолты создают дрейф конфигурации между «старыми» и «новыми» пользователями.

SQL-диагностика:

select top (100) *
from dbo.UsersNewDefaultSettings;

7. Оргструктура и должности

Выделено в отдельный домен: domains/org-structure/ — полная документация по слоям (business, admin, backend, database, data-flow, frontend, sync, ext-param-integration).

Где настраивается: - автоадминка → org-structure, org-structure-type, org-structure-appointment; - Admin API → /api/admin/org-structure/*.

Таблицы: - dbo.OrgStructureUnit; - dbo.OrgStructureType; - dbo.OrgStructureAppointment.

Что контролируется: - дерево подразделений; - типизация узлов; - должности и связи с группами; - sync group-membership из оргструктуры.

Критичные зависимости: - ошибки связей unit↔group влияют на членство пользователей; - смена типа/родителя узла может менять доступность потомков в UI.

SQL-диагностика:

select top (100) *
from dbo.OrgStructureUnit;

select top (100) *
from dbo.OrgStructureType;

select top (100) *
from dbo.OrgStructureAppointment;

8. Роли (roles / powers / users)

Где настраивается: - EntityEditor → roles.json, rolePowers.json, roleUser.json; - дополнительная проверка через API прав (/api/admin/permissions, /api/admin/entity-access).

Таблицы/контур: - dbo.Roles; - таблицы связей ролей и полномочий; - таблицы связей ролей и пользователей.

Что контролируется: - справочник ролей; - набор полномочий роли; - назначение ролей пользователям.

Критичные зависимости: - назначение роли без набора powers не дает ожидаемого эффекта; - роль может конфликтовать/дополняться групповыми правами.

SQL-диагностика:

select top (100) *
from dbo.Roles;

9. Доступ к доменам

Где настраивается: - автоадминка → group-domain-access; - групповой контур API (/api/admin/groups/domains).

Таблица: - dbo.GroupDomainAccess.

Что контролируется: - привязка групп к доменам (в т.ч. AD/LDAP-контур); - разрешенная область аутентификации/синхронизации.

Критичные зависимости: - некорректный domain mapping ломает ожидания по входу/синхронизации; - требуется проверка настроек синхропрофилей.

SQL-диагностика:

select top (100) *
from dbo.GroupDomainAccess;

10. Специальные права

Где настраивается: - автоадминка → special-permissions; - API прав → /api/admin/permissions.

Таблица: - dbo.GroupSpecialPermissions.

Что контролируется: - точечные special-actions для групп; - исключения из стандартной ролевой модели.

Критичные зависимости: - спецправо может обходить базовые ожидания UI/доступа; - проверять в связке с membership группы и entity-access.

SQL-диагностика:

select top (100) *
from dbo.GroupSpecialPermissions;

11. Синхронизация с AD/LDAP

Где настраивается: - GroupsController: /api/admin/groups/ad/sync-all-groups, /domains; - UserManageController: /api/admin/users/{userId}/sync-with-ad; - профильные настройки групп/пользователей в админ-формах.

Контур данных: - групповые и пользовательские записи; - доменные привязки; - sync-профили интеграции.

Что контролируется: - наполнение пользователей/групп из внешнего каталога; - согласованность membership в локальной БД.

Критичные зависимости: - без корректной конфигурации домена и профиля синхронизация частично успешна; - после sync требуется сверка фактического состава групп.

SQL-диагностика:

select top (100) *
from dbo.Groups;

select top (100) *
from dbo.GroupUsersMembership;

12. Комнаты (Rooms)

Где настраивается: - автоадминка → rooms.

Таблица: - dbo.Rooms.

Что контролируется: - справочник переговорных/комнат; - использование в календарных и бронировочных сценариях.

Критичные зависимости: - дубликаты/неактивные записи приводят к ошибкам выбора комнаты в UI.

SQL-диагностика:

select top (100) *
from dbo.Rooms;

13. Рабочие места групп — детальная настройка

Базовая архитектура и таблицы описаны в разделе 5. Здесь — полный набор параметров и правила их взаимодействия.

Приоритет: каждое рабочее место имеет целочисленный приоритет. При членстве пользователя в нескольких группах с разными настройками применяется рабочее место с наибольшим приоритетом. Личные настройки пользователя (профиль → вкладка «Вид» → блок «Стартовая страница») имеют наивысший приоритет.

Стартовая страница

Тип Описание Поле «Значение»
Портал Открывается портальная страница Номер портала
Лента Лента задач и комментариев
Ссылка Открывается указанная страница (только HTTPS; во фрейме с сохранением меню) URL

Основная панель — 7 элементов

Каждый элемент: Показывать / Не показывать / Не задано (наследуется от более приоритетного РМ). Управляет иконкой на основной панели и вкладкой в общем поиске.

Элемент При скрытии
Кнопка создания Скрыта кнопка «Создать»
Календарь Скрыта вкладка календаря в поиске
Лента Скрыта вкладка ленты в поиске
Сотрудники Скрыта вкладка сотрудников в поиске, результаты по профилям отсутствуют
Поиск Скрыта иконка поиска
Выбор языка Скрыт переключатель языка
Чаты Скрыта иконка чатов

Панель навигации

Параметр Значения
Положение Сверху / Справа / Слева
Цвет 15 вариантов: Нет / Бренд / Белый / Чёрный / Всегда белый / Всегда чёрный / Красный / Розовый / Фиолетовый / Синий / Голубой / Зелёный / Жёлтый / Оранжевый / Серый
Отображать всегда Принудительно показывает панель навигации

⚠️ Настройки положения, цвета и «Отображать всегда» применяются только для новых пользователей. Для существующих — использовать кнопки «Сбросить Положение», «Сбросить Цвет», «Сбросить Отображать всегда» после сохранения РМ.

Боковое меню — 6 блоков

Каждый блок: Показывать / Не показывать / Не задано.

Блок Спецправо с высшим приоритетом
Категории «Не видеть блок Категории в левом меню»
Избранное
Отчёты «Не видеть блок Отчеты в левом меню»
Почта «Не видеть блок Почта в левом меню»
Пространства
Лента корп. сети

⚠️ Специальные права группы имеют высший приоритет над настройками РМ для блоков Категории, Почта, Отчёты.

Критичный эффект скрытия Избранного и Категорий: - Избранное скрыто, Категории доступны → заголовок «Избранное» заменяется на «Категории», кнопка добавления избранного недоступна; - Скрыты оба блока → остаются только блоки ссылок РМ, заголовок «Избранное», кнопка добавления отсутствует; - Если в РМ не настроено ссылок → только папка «Мои задачи».

Просмотр задачи

Снизу справа / Во всплывающем окне. ⚠️ Только для новых пользователей; для существующих — кнопка «Сбросить Просмотр задачи».

Функции Диска

Один флаг управляет: пунктом «Диск» в меню сервисов, пунктом «Диск» в меню «Файлы» карточки задачи, и действиями с ДП «Файл», связанными с Диском.

Приоритет режима редактирования

Включает инлайн-редактирование в табличном представлении (double-click → редактирование ячейки). Пользователь может переключить режим для отдельной категории через панель инструментов табличного вида. Точечное управление — опция «Приоритетный режим таблицы» в настройках таблицы БИ.

Разрешить кастомизировать UI

При отключении блокируется 7 настроек интерфейса: положение/цвет шапки, формат дат, режим комментариев, блочные сообщения, режим задач, отображение имён. Остаётся только выбор темы. ⚠️ Только для новых пользователей; для существующих — кнопка «Сбросить UI-настройки».

Персональное меню

Видимость пункта «Табель трудозатрат»: Не задано / Показывать / Не показывать.

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

Каждая вкладка: Не задано / Показывать / Не показывать. Вкладки: Заказчик, Исполнитель, Комментарии, Календарь, Журнал, Трудозатраты, Отчёт.

Настройки интерфейса

Детальный контроль — какие опции настроек интерфейса видны пользователю. При отключении всех — пункт «Настройки интерфейса» скрывается из персонального меню.

Мои задачи в избранном

Детальный контроль содержимого блока «Мои задачи». При отключении всех — блок скрывается.

JS/CSS вставки

Групповые JS/CSS-вставки применяются ко всей площадке включая навигацию. При нескольких рабочих местах применяются вставки РМ с наибольшим приоритетом.

Дополнительные категории чатов

Добавляет вкладки в разделе чатов для конкретных категорий. Располагаются после стандартных системных разделов.

Удаление РМ

Запрещено для групп с настроенными рабочими местами. Сначала удалить РМ, потом группу.

Форма автоадминки favourites (таблица dbo.UserLinks) описана в ../spaces/admin.md — там же конфигурация SPA-страницы /administration/favorites-groups. Здесь — административные правила и типы ссылок.

Общие правила: - Один набор избранного на группу; пользователь в нескольких группах видит все наборы; - Папки с одинаковым именем из разных групп объединяются (без дублирования ссылок); - Допускается только 1 уровень вложенности — папки + ссылки в них; - Пустые папки не отображаются в UI.

Блок кнопок

Максимум 4 кнопки. Типы объектов — те же, что у блока ссылок.

Приоритет иконок: имя иконки из spa/content-icons → иконка аватара категории → стандартная.

Блок ссылок — 14 типов

Тип Параметры
Категория ID категории + представление: Лента, Таблица, Календарь, Сводка, Ганта, Переписка, Иерархия, Канбан, Чаты, Канал, Ресурсы, Галерея, Соц. сети (14 представлений)
Раздел ID раздела + те же 14 представлений
Новая задача ID категории → карточка создания задачи
Отчёт ID отчёта
Сводный раздел ID сводного раздела
Портал ID портала
Ссылка Произвольный URL
Смарт-отбор ID категории (с преднастроенными смарт-выражениями)
Пространство Главная страница / конкретное пространство / страница пространства
Диск Главная страница / папка диска
Календарь Мой календарь / Мои события / Календарь другого пользователя
Чат Раздел чатов / конкретный чат

Специальный тип «Все разделы»: linkedObjectId = null — показывает полный каталог разделов внутри блока Избранного. Позволяет разместить каталог выше личного избранного без перехода в пункт «Категории». После добавления стандартный блок «Категории» можно скрыть в РМ.

Имя группы избранного

Все созданные ссылки оборачиваются в именованную папку под «Мои задачи». Задаётся через меню действий группы избранного. Локализация названия папки — 10 языков (ru/en/fr/de/zh/da/ja/es/it/uz).

Кастомные счётчики

Таблица UserLinksCustomCounters: поля allTasksCount, newTasksCount, overdueTasksCount. Заполняются вручную (смарт-выражение/расписание). При значении 0 счётчик не отображается.

Доступ из UI

Администратор может перейти к настройке избранного через ПКМ на блок кнопок в пользовательском интерфейсе.

⚠️ При добавлении ссылки на категорию право «Просмотр всех задач» должно быть и у группы, и у настраивающего администратора.

15. Синхронизация AD/LDAP — параметры профиля

Техническая реализация синхронизации (архитектура, классы, точки входа, SID-линковка, фильтры, инвалидация токенов) описана в ../auth/ad-sync-technical-reference.md — 387 строк. Здесь — административные параметры профиля синхронизации.

⚠️ КРИТИЧНО: для каждого сервиса AD/LDAP — только одна активная настройка синхронизации.

Флаги синхронизации (10+ параметров)

Параметр Назначение
Синхронизация с AD Включает синхронизацию по расписанию ADSyncJob
Данные пользователей Синхронизация данных пользователей по маппингу
Названия групп Синхронизация названий групп
Создание новых групп Автосоздание групп из AD
Членство пользователей Синхронизация состава групп
Вложенность групп Синхронизация связей групп
Создавать пользователей из AD Автосоздание новых пользователей
Создавать по расписанию Автосоздание по ADSyncJob (требует указания OU)

⚠️ Создание по расписанию возможно только при указании орг. единиц в «Организационные единицы для синхронизации из AD». Без OU — проверяются пользователи по всей оргструктуре.

Формат логинов и оргструктура

Параметр Описание
Логины в формате Domain\Nick Необходим при нескольких доменах с совпадающими никами
Только орг. единиц из AD Вкл: затираются только AD-единицы, ручные сохраняются. Выкл: все орг. единицы перезаписываются

LDAP-фильтры

Параметр Ограничение
AD фильтр пользователей Синтаксис LDAP-фильтров; макс. 1000 символов
AD фильтр групп Синтаксис LDAP-фильтров

Пример фильтра пользователей: (|(company=1Forma)(city=Moscow))

Защита от массовых обновлений

Максимально допустимое количество обновлений — при превышении синхронизация не выполняется. Можно запустить вручную.

Маппинг полей

Встроенные поля уже вшиты. Кастомные добавляются вручную.

⚠️ Имена атрибутов AD регистрозависимые: displaynameDisplayName.

Пример маппинга: Компания=company, Отдел=department, Имя=givenName, Псевдоним=displayName, E-mail=mail.

Аватар: атрибут AD = thumbnailPhoto.

Часовой пояс: требуется отдельное поле в AD специального формата (см. TimeZones.txt); привязать в настройках маппинга.

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

Оптимизация

Кастомная настройка LDAP_AdGlobalCatalogHosts (sys_user) — для ускорения загрузки дерева AD при медленном Global Catalog.

16. Типы групп

Полное описание в бизнес-слое: business.md. Здесь — административные параметры.

Тип Назначение
Организационная Отображается в профилях и меню «Контакты»
Служебная Скрыта от пользователей, для администрирования
Индивидуальная Аналог служебной, состоит из одного пользователя
Auto managed membership Служебная для миграции; нельзя редактировать состав, удалить, связать с орг.единицей

Системные служебные группы: Administrators, Users, External — нельзя удалять и переименовывать.

Настраиваемые свойства типа: - Можно добавлять в адресаты - Отображать в карточке пользователя - Отображать в дереве сотрудников - Разрешить ставить отсутствие членам своей группы - Не копировать членство при копировании прав пользователя

17. Связи групп

Связи расширяют сферу поиска контактов и доступа к календарям. Пользователь видит во вкладке «Сотрудники» членов своих неслужебных групп + членов связанных групп.

⚠️ Связываемая группа должна быть организационной.

Администраторы и пользователи с ролью «HR-менеджер» видят всех пользователей.

18. Импорт пользователей из Excel

Минимальный набор полей:

Поле Excel Столбец Users Обязательность
Логин Nick Да
Отображаемое имя DisplayName Да
Полное имя (ФИО) FullName Да
Фамилия LastName Да
Имя FirstName Да
Телефон Phone Да (формат: 7xxxxxxxxxx)
Отчество MiddleName Нет
Дата рождения BirthDate Зависит от настроек
Почта Email Зависит от настроек

Полный список импортируемых полей — таблица Users.

Процедура: импорт через SQL Server Import Data Wizard → вставка из временной таблицы в Users. После импорта требуется генерация временных паролей и добавление в группы.

19. Обновление имён

Кнопка «Обновить имена» в интерфейсе администрирования — применяется после изменения настроек отображения имён (форматов, полей) для применения ко всем пользователям.

20. Журнал событий пользователя

Вкладка «Журнал» в карточке пользователя. Фиксируются: - Вход в систему и выход; - Изменение пароля; - Изменение профиля; - Изменение расширенных свойств; - Изменение персональных настроек отображения.

Каждая запись: дата/время, текст события, User Agent. ⚠️ Пустой User Agent — браузер не распознан или мобильное приложение без идентификатора.

По умолчанию отображается ограниченный период. Фильтр по дате — в поле над таблицей.

21. Права группы на группу

Полное описание и администрирование: ../permissions/admin.md. Бизнес-правила: business.md.

5 типов прав: перевоплощение, просмотр журналов, просмотр календарных событий, просмотр профилей, установка фото пользователя.

22. Профиль пользователя — поля карточки

Бизнес-логика полей и вкладок: business.md. Здесь — административный справочник полей.

Блок «Личное»: Логин, Пароль, ФИО, Псевдонимы (рус/англ), Язык интерфейса, Пол, Декретный отпуск, «О себе».

Блок «Рабочее»: Орг.единицы (должности, одна основная), Дата «В компании с».

Блок «География»: Часовой пояс, Страна, Город, Комната, Геолокация.

Блок «Контакты»: Мобильный (с верификацией по SMS), Рабочие телефоны (до 3), Дополнительный, Факс, IP-телефония, E-mail, Внешний e-mail, Внешнее имя, Telegram ID и ник, Facebook, WhatsApp.

Блок «Прочее»: SID (из AD), Провайдер аутентификации, Заметки, Домен пользователя, 1С GUID.

Кастомные поля: через ключ userProfileInfoExtsJobTitle, Zoom и др.

Флаги доступа к редактированию профиля: Может редактировать аватар/пароль/Личное/Рабочее/География/Контакты, Разрешить кастомизировать UI, Разрешить менять режим отображения имён, Требовать акцепта всех своих задач, Доступ к почте.

Ключевой признак «Сотрудник компании» (IsEmployee): определяет разделение на сотрудников (полный доступ) и внешних пользователей (ограниченный доступ). Настраивается в карточке пользователя.

Типичные ошибки настройки

Симптом Вероятная причина Где проверить SQL-диагностика
Новый пользователь создается без ожидаемых стартовых параметров Неактуальны users-new-default-settings форма users-new-default-settings, API /api/admin/users/default/* select top (50) * from dbo.UsersNewDefaultSettings;
Пользователь не видит часть интерфейса после входа Конфликт/ошибка в UserGroupSettings форма workplaces, API /api/admin/user-group-settings/* select top (50) * from dbo.UserGroupSettings;
После добавления в группу права не применяются Ошибка в типе группы/вложенности формы groups, group-parents, groupType.json select top (100) * from dbo.GroupParents;
Пользователь получил «лишние» права Нежелательное наследование через вложенные группы group-parents, API /api/admin/groups/{id}/users select top (100) * from dbo.GroupParents;
Увольнение не дало ожидаемого эффекта по задачам Неверные параметры fire / не проверен перенос UserManageController (fire, firenow, move-tasks) select top (100) * from dbo.GroupUsersMembership;
Восстановленный пользователь «не как новый» Дефолты изменились после изначального создания users-new-default-settings, /api/admin/users/default/settings select top (50) * from dbo.UsersNewDefaultSettings;
Оргструктура отображается, но состав групп не совпадает Не выполнен syncgroups или некорректные связи unit↔group /api/admin/org-structure/syncgroups, link-with-group select top (100) * from dbo.OrgStructureUnit;
Пользователь не видит карточку коллег в оргструктуре Спецправа ограничивают просмотр special-permissions, проверки в OrgStructureController select top (100) * from dbo.GroupSpecialPermissions;
Роль назначена, но полномочия не работают Не заполнены rolePowers или некорректная привязка roleUser EntityEditor rolePowers.json, roleUser.json select top (100) * from dbo.Roles;
AD sync групп проходит частично Неверные доменные/профильные настройки /api/admin/groups/domains, /ad/sync-all-groups select top (100) * from dbo.GroupDomainAccess;
Матрица прав на сущность не применяет изменения Изменения внесены не в тот entityType/entityId /api/admin/permissions/*, /api/admin/entity-access/* select top (100) * from dbo.Groups;
Комната не появляется в выборе бронирования Запись есть в Rooms, но справочник заполнен некорректно форма rooms select top (100) * from dbo.Rooms;

Минимальный SQL-чеклист L2/L3

select 'Users' as [table_name], count(*) as [cnt] from dbo.Users
union all
select 'Groups', count(*) from dbo.Groups
union all
select 'UserGroupSettings', count(*) from dbo.UserGroupSettings
union all
select 'UsersNewDefaultSettings', count(*) from dbo.UsersNewDefaultSettings
union all
select 'OrgStructureUnit', count(*) from dbo.OrgStructureUnit
union all
select 'GroupParents', count(*) from dbo.GroupParents
union all
select 'GroupDomainAccess', count(*) from dbo.GroupDomainAccess
union all
select 'GroupSpecialPermissions', count(*) from dbo.GroupSpecialPermissions
union all
select 'UserInfoExtValues', count(*) from dbo.UserInfoExtValues
union all
select 'Rooms', count(*) from dbo.Rooms;

select
    c.table_schema,
    c.table_name,
    c.column_name,
    c.data_type
from information_schema.columns c
where c.table_schema = 'dbo' and
      c.table_name in (
          'Users',
          'Groups',
          'UserGroupSettings',
          'UsersNewDefaultSettings',
          'OrgStructureUnit',
          'OrgStructureType',
          'OrgStructureAppointment',
          'GroupParents',
          'GroupDomainAccess',
          'GroupUsersMembership',
          'GroupSpecialPermissions',
          'UserInfoExtValues',
          'Rooms'
      )
order by
    c.table_name,
    c.ordinal_position;

Лицензии пользователей

Страница AdminSPA «Пользователи → Лицензии» предоставляет администратору управление лицензиями пользователей.

Управляемые типы лицензий: - Почтовый клиент - CRM - Клиентская зона - Первая Форма (индивидуальная) - Первая Форма (конкурентная)

Фильтрация и сортировка: - Фильтры: по типу лицензии, наличию/отсутствию лицензии, статусу увольнения (включая уволенных) - Сортировка: по логину, ФИО, типу лицензии, идентификатору пользователя, email - Поддержка пагинации (Skip/Take) и полного сброса через флаг GetAll

Операции с лицензиями: - Выдать (grant) — выдаёт пользователю лицензию указанного типа - Отозвать (revoke) — отзывает лицензию; операция идемпотентна (если лицензии не было, состояние не меняется) - Сменить тип (change) — атомарно меняет тип лицензии: снимает старую и выдаёт новую в одной транзакции, без промежуточного состояния «без лицензии» - Массовые операции (bulk) — Grant / Revoke / Change над списком пользователей

Сводные счётчики: Endpoint /api/admin/users/licenses/counters возвращает для каждого управляемого типа лицензии количество приобретённых и использованных. Используется для обновления заголовка страницы.

Источник данных: таблица dbo.UserClientAccessLicense.

Связанные документы

  • docs/domains/users-and-groups/backend.md — backend-архитектура и сервисы домена
  • docs/domains/users-and-groups/data-flow.md — E2E-диагностика и failure points
  • docs/platform/backend/admin-architecture.md — общая архитектура механизмов администрирования
  • docs/reference/database/dbadmin-forms-map.md — карта форм автоадминки и EntityEditor
  • docs/guides/admin-md-template.md — шаблон этого документа