PearCMS Docs v2.4
Документация / Панель / Настройка доступа

Настройка доступа

Раздел /s-panel/flags-settings — это центр управления правами по action’ам. Здесь admin выбирает, какой флаг нужен для каждого действия каждого модуля.

Актуально для v2.4 Обновлено 1 июля 2026

Интерфейс настройки #

Заходите в Настройка доступа, выбираете модуль в выпадушке наверху. Открывается список actions, объявленных в FlagsPanel модуля. Для каждого можно выбрать:

  • Доступно всем — без проверки (любой авторизованный)
  • Конкретный флаг из settings__flags — например, a — Создание контента

Сохранение — кнопкой внизу формы; изменения применяются немедленно.

Где это хранится #

Таблица settings__module_flags:

settings__module_flagssql
CREATE TABLE settings__module_flags (
    module        VARCHAR(64)  NOT NULL,
    action_key    VARCHAR(64)  NOT NULL,
    required_flag CHAR(1)      NULL,  -- NULL = доступно всем
    PRIMARY KEY (module, action_key)
);

Пустой required_flag = «не настроено» = разрешено. Любое значение a–z = «нужен этот флаг».

Как работает проверка #

app/Modules/Admin/Services/ModuleFlagsService.phpphp
public function can(string $module, string $key): bool
{
    $flag = $this->flagFor($module, $key);
    if ($flag === null) return true;   // не настроено = разрешено
    return Auth::can($flag);              // иначе проверяем флаг (z всегда true)
}

Это же отрабатывает в мобильном REST: DispatchController при каждом запросе читает требуемый флаг и сверяет с подкачанными в сессию из токена правами.

Типичные сценарии #

«Только редактор баннеров» — выдайте сотруднику флаг a и в /flags-settings для всех action’ов модулей кроме Banner требуйте отличный от a флаг.

«Менеджер службы поддержки» — заведите группу support с флагом s, в /flags-settings для Support/SupportOnline укажите этот же s.

«Только просмотр без правок» — для action’ов create/edit/delete требуйте флаг b, а action view оставьте «доступно всем». Юзеры без b увидят страницу, но не смогут ничего изменить.