Любое приложение в бекенде 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 любых приложений, т. е., например, мобильными вариантами всех установленных приложений.