Битрикс — как проверить на авторизованного пользователя и на админа

Данные проверки помогают встроить в шаблоны и компоненты дополнительные участки кода и информации

Как проверить авторизован пользователь или нет в Битриксе?

Как вы возможно знаете, в битриксе есть объект с данными пользователями. А всё потому что:
При запуске каждой страницы автоматически создаётся объект этого класса $USER — данные о текущем пользователе.

Даже в коде компонентов, в комментариях можно заметить следующий код:

global $USER;

В документации есть целый класс — CUser.
Чтобы узнать ID текущего пользователя нужно прописать:

$USER->GetID();

Как узнать что пользователь авторизован?

if ($USER->IsAuthorized()) { // пользователь авторизован
..
} else {}
..
if (!$USER->IsAuthorized()) { // пользователь не авторизован

Как проверить что пользователь администратор в Битриксе?

Аналогичным способом можем вывести:

if ($USER->IsAdmin()) {
..

Давайте теперь посмотрим на примере, как можно использовать:

function dump($var){
	global $USER;
	if ($USER->IsAdmin()) {
		echo 'pre';
		print_r($var);
		echo '/pre';
	}
}

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

Теперь пример для авторизованных пользователей. Рассмотрим как выглядит массив меню с учетом нашей задачи:

Array(
	"Избранное", 
	"/personal/favorite/", 
	Array(), 
	Array(), 
	"" 
),
Array(
	"Мои заказы", 
	"/personal/orders/", 
	Array(), 
	Array(), 
	'CUser::IsAuthorized()' 
),
Array(
	"Выйти", 
	"?logout=yes", 
	Array(), 
	Array(), 
	'CUser::IsAuthorized()'
),

Как видите, лишь первый пункт меню будет общим для всех, а 2 других появятся только для авторизованных пользователей. Таким же образом можно добавить проверку на админа битрикса. Ну и конечно же if \ else никто не отменял, его тоже можно использовать в своих шаблонах и компонентах.

Также, мы можем внутри шаблона добавить условие, выбираем параметр PHP и пишем:

$USER->IsAuthorized()

Для комбинированного условия пишем:

CSite::InDir('/partners/') && $USER->IsAuthorized()

автор: Dmitriy

Занимаюсь веб-разработкой с 2011 года. Посмотреть некоторые из моих работ, а также узнать чуть больше обо мне, вы можете на forwww.ru.

- Создание сайтов на 1С-Битрикс любой сложности
- Вёрстка макетов Figma, Photoshop, Zeplin
- Поддержка проектов на Битриксе
- Разработка нового функционала для сайта
- Парсинг данных
- Выгрузка из файлов в формате XML, YML, XLS, XLSX, CSV, JSON
- Интеграция по API со сторонними сервисами
и многое другое

E-mail: dmitriyribka@gmail.com

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *