Управление доступом
Доступом управляют в зоне Администрирование → Доступ. Экран разбит на три вкладки, которые вместе покрывают весь путь: сначала описываем что можно (роли), потом — кому и где (назначения), а для точечных исключений — отдельные гранты.
| Вкладка | Про что | Основной объект |
|---|---|---|
| Роли | наборы прав арендатора | Role |
| Назначения | кто получил роль и в каком scope | RoleAssignment |
| Гранты | точечные разрешения на одного принципала | PermissionGrant |
Заявки на доступ
Заголовок раздела «Заявки на доступ»Доступ всегда выдаёт администратор — самостоятельной автоматической очереди заявок пока нет. Когда пользователю не хватает прав на экран, он видит состояние «Недостаточно прав» с указанием, какое право и в каком scope требуется, и кнопку «Скопировать заявку на доступ». Кнопка кладёт в буфер обмена готовую структурированную заявку (кто, какое право, какой scope и идентификатор запроса) — пользователь передаёт её администратору доступа принятым в организации способом.
Получив заявку, вы выдаёте право здесь — назначением роли (вкладка «Назначения») или точечным грантом (вкладка «Гранты») в нужном scope. Новый доступ действует немедленно: рабочие списки и очереди строятся из разрешений, а не из закешированных ролей.
Вкладка «Роли»
Заголовок раздела «Вкладка «Роли»»Роль — это данные арендатора: шаблон копируется и дальше свободно редактируется. Здесь видно, сколько у роли разрешений и активных назначений.
Создать роль из шаблона
Заголовок раздела «Создать роль из шаблона»-
На вкладке «Роли» нажмите «Создать из шаблона».
-
Выберите шаблон (Study Builder, CRC, Investigator, CRA, Data Manager, Medical Monitor, Medical Coder, Inspector, Tenant Admin). Имя можно оставить пустым — тогда возьмётся имя шаблона.
-
Роль создастся с набором прав шаблона. Откройте её страницу, чтобы уточнить набор разрешений: они сгруппированы по объектам, права модулей — под своим модулем.
-
Сохраните изменения.
Вкладка «Назначения»
Заголовок раздела «Вкладка «Назначения»»Назначение связывает принципала × роль × scope × срок. Именно здесь роль превращается в реальный доступ.
-
Нажмите «Новое назначение», выберите принципала и роль.
-
Задайте scope — по иерархии, без пропусков сегментов. Нельзя выдать доступ «на субъекта», пропустив центр: путь строится по порядку исследование → центр → субъект. Удобный конструктор scope помогает собрать путь, либо его можно ввести вручную.
-
При необходимости задайте срок действия («Действует до»). Пусто — значит бессрочно. Все метки времени хранятся в UTC.
-
Нажмите «Назначить». Действие фиксируется в аудиторском следе (событие
core.access.granted).
Вкладка «Гранты»
Заголовок раздела «Вкладка «Гранты»»Гранты — это точечные разрешения на одного принципала, помимо ролей. Их используют для
исключений: выдать одному человеку одно право (grant) или, наоборот, точечно запретить
(deny). Выберите принципала, чтобы увидеть и изменить его гранты.
- grant — разрешить. Дать конкретное разрешение в конкретном scope.
- deny — запретить. Точечный запрет, который всегда побеждает любой grant на пути — «хирургическое исключение, которое не перекроет ни одна роль».
Deny-гранты и делегирование подробно разобраны в разделе SoD и делегирование.
Ограничение ввода отдельной формы
Заголовок раздела «Ограничение ввода отдельной формы»Частый регламент: лабораторные результаты заполняет только вводчик от лаборатории, фарм-учёт — только расслеплённый фармацевт, а остальные видят эти формы «только чтение». В X7 Insight это решается связкой дизайна и доступа:
-
Дизайнер помечает форму меткой ограничения ввода (свойство формы в конструкторе, например
lab). Метка — часть дизайна: версионируется и попадает в дифф поправок. -
Платформа автоматически добавляет в каталог право «Ввод в формы с меткой “lab”» (
form.entry.lab). -
Администратор собирает роль выделенного вводчика — например, «Вводчик от лаборатории»: обычные права ввода (
data.enter,data.update, …) плюсform.entry.lab— и назначает её нужным людям на нужном scope.
Теперь запись в помеченную форму требует обоих прав: у координатора без
form.entry.lab форма открывается «только чтение» с поясняющим баннером (запросы, SDV и
обзор продолжают работать), а вводчик лаборатории заполняет её штатно. Если метка стоит,
но право не держит никто, валидатор дизайна предупредит: «заполнить форму будет некому».
Отзыв доступа и каскад
Заголовок раздела «Отзыв доступа и каскад»Отозвать можно и назначение роли, и отдельный грант — кнопкой «Отозвать». Отзыв не удаляет запись: назначение закрывается (срок ставится «сейчас»), а история сохраняется.
Почему у человека есть или нет доступа
Заголовок раздела «Почему у человека есть или нет доступа»Если доступ ведёт себя не так, как ожидалось («вижу меньше, чем должен» или «этому человеку почему-то доступно X»), не гадайте — используйте инструмент «Проверить доступ» на карточке принципала (Администрирование → Пользователи).
-
Откройте карточку принципала и выберите «Проверить доступ».
-
Укажите scope, который хотите проверить.
-
Система покажет по каждому применимому разрешению итог «разрешено» или «запрещено» и источник решения: из какой роли (
роль «…» @ scope) или из какого гранта (грант grant/deny @ scope).
Инструмент воспроизводит ту же логику, что и весь движок доступа: собираются все применимые гранты по префиксам пути, при этом любой deny побеждает, при отсутствии применимых грантов действует запрет по умолчанию (default deny). Если принципал деактивирован — запрещено всё, независимо от источников.