CurrentUser
CurrentUser предоставляет данные пользователя, авторизованного в текущем запросе.Поддерживает
- проверку авторизации
- получение основных данных пользователя
- получение роли пользователя
- получение пользовательских метаданных
- указание значения по умолчанию
Класс статический и автоматически доступен после запуска CMS. Создавать его экземпляр не нужно.
Быстрый старт
php
if (CurrentUser::isAuthenticated()) {
$userId = CurrentUser::get('id');
$login = CurrentUser::get('login');
}Для неавторизованного посетителя isAuthenticated() возвращает false.
Проверка авторизации
isAuthenticated(): bool
Возвращает true, если пользователь авторизован:
php
if (!CurrentUser::isAuthenticated()) {
return;
}Данные пользователя
get(string $name, mixed $default = null): mixed
Возвращает значение поля текущего пользователя:
php
$email = CurrentUser::get('email');Вторым аргументом можно передать значение по умолчанию:
php
$avatar = CurrentUser::get(
'avatar',
'/assets/images/avatar.svg'
);Если пользователь не авторизован, поле отсутствует или содержит null, метод возвращает значение по умолчанию.
Основные поля
| Поле | Тип | Описание |
|---|---|---|
id |
int |
Идентификатор пользователя. |
login |
string |
Логин пользователя. |
email |
string |
Адрес электронной почты. |
register |
string |
Дата регистрации. |
role |
string |
Роль пользователя. |
avatar |
string |
Путь к изображению аватара. |
Метаданные пользователя
meta(string $name, mixed $default = null): mixed
Возвращает значение пользовательского метаполя:
php
$name = CurrentUser::meta('name');
$phone = CurrentUser::meta('phone');Для отсутствующего метаполя можно указать значение по умолчанию:
php
$displayName = CurrentUser::meta(
'name',
CurrentUser::get('login', 'Пользователь')
);Если пользователь не авторизован или метаполе отсутствует, метод возвращает значение по умолчанию.
Важные замечания
- перед получением данных проверяйте
isAuthenticated() - набор метаданных зависит от настроек пользователя и установленных модулей
- класс предоставляет данные только пользователя текущего запроса
- изменение полученного значения не сохраняет его в CMS
- создавать экземпляр
CurrentUserне нужно