Одиночный режим приложения

Содержание...

Любое приложение в бекенде Webasyst может использоваться в одиночном режиме. Когда включён такой режим, весь интерфейс бекенда для пользователя состоит целиком из интерфейса только одного этого приложения. Никакие другие приложения пользователю недоступны — он не видит ни возможности воспользоваться ими, ни информации о том, что они вообще установлены в данном аккаунте.

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

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

PHP-функция wa_header() и хелперы для шаблонов Smarty {$wa->header()} и {wa_header} возвращают только служебное содержимое, невидимое для пользователей, — системный JavaScript-код. Главное меню бекенда не отображается.

Разработчик каждого приложения и плагина должен убедиться в том, что его интерфейс корректно отображается в одиночном режиме.

Для чего нужен одиночный режим

С помощью одиночного режима удобно настроить специальный уровень доступа сотрудникам, которые не должны отвлекаться ни на что другое, кроме того приложения, с которым они должны работать, например, администратору-секретарю, принимающему посетителей, продавцу-кассиру, хостес в гостинице или ресторане и т. п.

По мере того, как пользователь будет осваиваться в единственном доступном ему приложении, со временем можно при необходимости включить ему обычный доступ к остальным возможностям Webasyst: дашборду, «Инсталлеру» и другим приложениям.

Как включить одиночный режим

Выберите, для кого из сотрудников и для каких приложений должен работать этот режим.

  • Одно приложение для всех

    Если все, включая администратора, должны использовать только одно приложение, то в файле wa-config/config.php установите флаг в параметре single_app_mode и укажите ID этого приложения в параметре single_app_id.

    Все остальные приложения всем сотрудникам будут недоступны.

    Пример для приложения Shop-Script

    <?php
    
    return [
        ...
        'single_app_mode' => true,
        'single_app_id' => 'shop',
    ];
            
  • Выбранные приложения для отдельных сотрудников

    Если некоторые сотрудники должны использовать какие-то приложения в одиночном режиме, выберите для них уровень доступа «Одно приложение» в настройках прав доступа к конкретному приложению в «Команде».

    Каждому сотруднику можно включить такой доступ только для какого-то одного приложения. Все остальные приложения данному сотруднику будут недоступны.

Определение одиночного режима в программном коде

В PHP-коде одиночный режим можно определять с помощью вызова метода wa()->isSingleAppMode():

$single_app_mode_is_on = wa()->isSingleAppMode();

В шаблонах Smarty для этой цели вызывайте метод $wa->isSingleAppMode():

{$single_app_mode_is_on = $wa->isSingleAppMode()}

Можно также определять, включён ли одиночный режим для некоторого указанного сотрудника (не совпадающего с текущим авторизованным пользователем), с помощью публичного метода waContact->isSingleAppMode():

$single_app_mode_for_user_is_on = (new waContact(42))->isSingleAppMode();

Используйте эти методы, если нужно особенным образом адаптировать работу вашего продукта к одиночному режиму.

Использование API

Если сотруднику с ограниченными правами включили одиночный режим для какого-то приложения, ему доступны методы API только этого приложения, поэтому он может работать, например, и с мобильным вариантом этого приложения. При попытке обращения сотрудника к API других приложений доступ для него будет заблокирован.

Администраторы с полным доступом всегда могут пользоваться API любых приложений, т. е., например, мобильными вариантами всех установленных приложений.