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

Управление доступом

Доступом управляют в зоне Администрирование → Доступ. Экран разбит на три вкладки, которые вместе покрывают весь путь: сначала описываем что можно (роли), потом — кому и где (назначения), а для точечных исключений — отдельные гранты.

0:000:00
Администратор выдаёт точечный грант доступа — он действует немедленно
Вкладка Про что Основной объект
Роли наборы прав арендатора Role
Назначения кто получил роль и в каком scope RoleAssignment
Гранты точечные разрешения на одного принципала PermissionGrant

Доступ всегда выдаёт администратор — самостоятельной автоматической очереди заявок пока нет. Когда пользователю не хватает прав на экран, он видит состояние «Недостаточно прав» с указанием, какое право и в каком scope требуется, и кнопку «Скопировать заявку на доступ». Кнопка кладёт в буфер обмена готовую структурированную заявку (кто, какое право, какой scope и идентификатор запроса) — пользователь передаёт её администратору доступа принятым в организации способом.

Получив заявку, вы выдаёте право здесь — назначением роли (вкладка «Назначения») или точечным грантом (вкладка «Гранты») в нужном scope. Новый доступ действует немедленно: рабочие списки и очереди строятся из разрешений, а не из закешированных ролей.

Роль — это данные арендатора: шаблон копируется и дальше свободно редактируется. Здесь видно, сколько у роли разрешений и активных назначений.

  1. На вкладке «Роли» нажмите «Создать из шаблона».

  2. Выберите шаблон (Study Builder, CRC, Investigator, CRA, Data Manager, Medical Monitor, Medical Coder, Inspector, Tenant Admin). Имя можно оставить пустым — тогда возьмётся имя шаблона.

  3. Роль создастся с набором прав шаблона. Откройте её страницу, чтобы уточнить набор разрешений: они сгруппированы по объектам, права модулей — под своим модулем.

  4. Сохраните изменения.

Назначение связывает принципала × роль × scope × срок. Именно здесь роль превращается в реальный доступ.

  1. Нажмите «Новое назначение», выберите принципала и роль.

  2. Задайте scope — по иерархии, без пропусков сегментов. Нельзя выдать доступ «на субъекта», пропустив центр: путь строится по порядку исследование → центр → субъект. Удобный конструктор scope помогает собрать путь, либо его можно ввести вручную.

  3. При необходимости задайте срок действия («Действует до»). Пусто — значит бессрочно. Все метки времени хранятся в UTC.

  4. Нажмите «Назначить». Действие фиксируется в аудиторском следе (событие core.access.granted).

Гранты — это точечные разрешения на одного принципала, помимо ролей. Их используют для исключений: выдать одному человеку одно право (grant) или, наоборот, точечно запретить (deny). Выберите принципала, чтобы увидеть и изменить его гранты.

  • grant — разрешить. Дать конкретное разрешение в конкретном scope.
  • deny — запретить. Точечный запрет, который всегда побеждает любой grant на пути — «хирургическое исключение, которое не перекроет ни одна роль».

Deny-гранты и делегирование подробно разобраны в разделе SoD и делегирование.

Частый регламент: лабораторные результаты заполняет только вводчик от лаборатории, фарм-учёт — только расслеплённый фармацевт, а остальные видят эти формы «только чтение». В X7 Insight это решается связкой дизайна и доступа:

  1. Дизайнер помечает форму меткой ограничения ввода (свойство формы в конструкторе, например lab). Метка — часть дизайна: версионируется и попадает в дифф поправок.

  2. Платформа автоматически добавляет в каталог право «Ввод в формы с меткой “lab”» (form.entry.lab).

  3. Администратор собирает роль выделенного вводчика — например, «Вводчик от лаборатории»: обычные права ввода (data.enter, data.update, …) плюс form.entry.lab — и назначает её нужным людям на нужном scope.

Теперь запись в помеченную форму требует обоих прав: у координатора без form.entry.lab форма открывается «только чтение» с поясняющим баннером (запросы, SDV и обзор продолжают работать), а вводчик лаборатории заполняет её штатно. Если метка стоит, но право не держит никто, валидатор дизайна предупредит: «заполнить форму будет некому».

Отозвать можно и назначение роли, и отдельный грант — кнопкой «Отозвать». Отзыв не удаляет запись: назначение закрывается (срок ставится «сейчас»), а история сохраняется.

Если доступ ведёт себя не так, как ожидалось («вижу меньше, чем должен» или «этому человеку почему-то доступно X»), не гадайте — используйте инструмент «Проверить доступ» на карточке принципала (Администрирование → Пользователи).

  1. Откройте карточку принципала и выберите «Проверить доступ».

  2. Укажите scope, который хотите проверить.

  3. Система покажет по каждому применимому разрешению итог «разрешено» или «запрещено» и источник решения: из какой роли (роль «…» @ scope) или из какого гранта (грант grant/deny @ scope).

Инструмент воспроизводит ту же логику, что и весь движок доступа: собираются все применимые гранты по префиксам пути, при этом любой deny побеждает, при отсутствии применимых грантов действует запрет по умолчанию (default deny). Если принципал деактивирован — запрещено всё, независимо от источников.