Доступ к элементам на фронте только для админов
Допустим вы хотите показывать какой то пункт меню только админам сайта. Или не пункт меню, а какой то блок на сайте или фрагмент. Что угодно, чтобы это видели только админы.
Под админами подразумеваются бэкенд пользователи у которых есть доступ непосредственно к бэкенду сайта. Бэкенд пользователи - это базовый функционал системы Winter CMS.
Скрыть CMS-страницу
Если вам нужно сделать фронтенд-страницу доступной только для бэкенд пользователей, то вам достаточно всего лишь отметить чекбокс Скрытая страница:
Данный чекбокс находится на вкладке Настройки:
Если вам удобнее работать из редактора кода, то в коде в блоке настроек нужно добавить строчку:
is_hidden = 1
Доступ к элементам сайта
Чтобы сделать доступ к определённым элементам сайта, для этого воспользуемся фасадом BackendAuth
.
В php-секции шаблона добавляем:
function onInit() {
$this['loggedInBackend'] = \BackendAuth::check();
}
BackendAuth::check()
возвращает true
если пользователь залогинен в бэкенде и false
если нет.
Теперь в любом месте можем делать проверку на авторизацию в бэкенде через Twig:
{% if loggedInBackend %}
<!-- Тут то что будет видно только авторизованным в бэкенде -->
{% endif %}
В php-коде компонентов значение будет доступно следующим образом:
if ($this->page['loggedInBackend']) {
// только авторизованным в бэкенде
}
Но при этом важно чтобы компонент выводился на странице у которой шаблоном присвоен тот layout у которого прописано BackendAuth::check()
.
Можем перестраховаться и при помощи глобального php-метода isset()
проверить была ли объявлена на странице переменная и если нет, то получить заново авторизован ли посетитель в бэкенде или нет:
if (isset($this->page['loggedInBackend'])) {
$loggedInBackend = $this->page['loggedInBackend'];
}
else {
$loggedInBackend = \BackendAuth::check();
}
if ($loggedInBackend) {
// только авторизованным в бэкенде
}
*** Войдите чтобы писать комментарии.