Skip to main content
Доступ к разделам панели управления в онлайн-школе регулируется системой RBAC (Role-Based Access Control — управление доступом на основе ролей). Вместо жёстких ролей платформа оперирует правами (permissions) — маленькими разрешениями вроде «управлять курсами» или «просматривать баланс». Роль сотрудника — это просто набор выданных ему прав.

Как работает RBAC

При каждом заходе на защищённую страницу система сравнивает запрошенные правом страницы разрешения с выданными пользователю. Выданные права складываются из двух источников — прав самого пользователя и прав его роли в организации (combinedPermissions):
Проверка проходит по принципу «достаточно любого из требуемых прав» (canAny): если у пользователя есть хотя бы одно из перечисленных для страницы прав — доступ открыт.
Если право задано вложенным массивом (canEvery), то для доступа нужны все права из этого массива. Так реализуются комбинированные условия. Обычно же в требованиях страницы перечислены альтернативы — хватает любого одного права.

Защита на уровне маршрутов

Каждый защищённый маршрут в конфигурации роутера объявляет поле auth со списком нужных прав. Например, раздел управления курсами доступен обладателям любого из трёх прав:
Обёртка Middleware.Auth проверяет права перед показом страницы: авторизованному пользователю без нужного права показывается экран запрета, а неавторизованного перенаправляет на страницу входа.

Защита отдельных элементов интерфейса

Отдельные кнопки и блоки внутри страницы тоже можно скрывать по правам с помощью компонента Rbac.Permission — например, кнопки удаления менеджера видны только тем, у кого есть право SellerManage:

Полный список прав

Права сгруппированы по модулям. Ниже — все права из перечисления Permission, сгруппированные так же, как они отображаются в интерфейсе (byModule).

Управление школой (School)

Управление организацией (Seller)

Управление курсами (Course)

Управление продуктами (Product)

Управление заданиями и практикой (Task)

Управление персоналом (Staff)

Модуль «Персонал» отображается только на корпоративных площадках (IS_CORPORATE). В обычной онлайн-школе эти права не показываются.
Помимо перечисленных, в перечислении Permission есть служебные и платформенные права (UserIsAdmin, AdminSellerVerify, AdminCoursePublish, TournamentCreateOfficial и др.). Они относятся к администрированию всей платформы-маркетплейса и не настраиваются в панели отдельной школы.

Экран запрета доступа

Если сотрудник открывает раздел, на который у него нет прав, вместо страницы показывается экран запрета (Rbac/Forbidden). Он объясняет, что доступ ограничен, и перечисляет, какие права требуются. Экран запрета доступа с перечнем требуемых прав На экране отображается:
  • значок замка и заголовок «Недостаточно прав»;
  • пояснение об условиях получения доступа;
  • список требуемых прав в виде чипов (required);
  • кнопка «Обновить страницу» — на случай, если права были только что выданы и нужно перечитать сессию.
Если вы только что выдали сотруднику право, а он всё ещё видит экран запрета — попросите его нажать «Обновить страницу» или перезайти. Права подтягиваются в сессию при загрузке.

Настройка прав команды

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

Добавление менеджера

1

Откройте раздел менеджеров

Перейдите в «Мои менеджеры» (/manage/school/managers) для сотрудников с доступом ко всей школе или в «Менеджеры продукта» (/manage/school/product-managers) для доступа к одному курсу.
2

Найдите пользователя

Через поиск по пользователям выберите человека, которого добавляете в команду. Для менеджера продукта дополнительно выберите курс. Если пользователь уже является менеджером, система предупредит об этом и предложит перейти к редактированию.
3

Отметьте права

В блоке «Выберите права пользователя» права сгруппированы по модулям (Школа, Организация, Курсы и т.д.). Отметьте галочками нужные разрешения. У каждого права есть название и краткое описание.
4

Сохраните

Нажмите «Добавить менеджера». Сотрудник получит выбранный набор прав.
Форма добавления менеджера с чекбоксами прав по модулям

Изменение прав существующего сотрудника

Откройте карточку менеджера (/manage/school/managers/:page/:managerId/permissions) — на странице «Настройки менеджера» можно изменить набор прав, временно деактивировать сотрудника (переключатель активности) или удалить его из команды. Действия деактивации и удаления доступны только тем, у кого есть право SellerManage, и недоступны для самого себя.

Пользователи школы

Учеников и их доступы к курсам вы заводите в отдельном разделе «Пользователи школы» (/manage/school/users). Здесь создаются учётные записи учеников, отправляются приглашения и выдаются доступы к курсам — это работа с учащимися, а не с правами сотрудников команды.
Раздел «Пользователи школы» управляет учениками и их доступами к курсам, а раздел «Мои менеджеры» — правами сотрудников на управление школой. Не путайте: выдача ученику доступа к курсу не даёт ему никаких управленческих прав.

Права сотрудников платформы (админ-раздел)

Для площадок-маркетплейсов существует отдельный административный раздел /admin/users, где супер-администратор (право UserIsAdmin) назначает пользователям платформенные права из полного списка (userManage). Этот раздел управляет доступом на уровне всей площадки и к настройкам отдельной школы не относится.