Документация для разработчиков
Темная тема

CurrentUser

\Bitrix\Main\Engine\CurrentUser класс несет ответстенность за текущего пользователя.

CurrentUser можно получить двумя способами:

  1.     \Bitrix\Main\Engine\Controller::getCurrentUser()
    
    	public function getAction(Folder $folder)
    	{
    		$securityContext = $folder->getStorage()->getSecurityContext($this->getCurrentUser()->getId());
    		if(!$folder->canRead($securityContext))
    		{
    			$this->addError(new Error('Could not read the folder.'));
    
    			return null;
    		}
        		
    		return $folder->toArray();
    	}
  2. Интегрировать с помощью зависимости через параметры метода ajax-действия
         public function getAction(Folder $folder, CurrentUser $currentUser)
    	{
    		$securityContext = $folder->getStorage()->getSecurityContext($currentUser->getId());
    		...
    	}

Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
2
Андрей Кругликов
Сообщение не промодерировано, возможны ошибки и неточности.
описания шикарнейшие, список методов класса исчерпывающий. документация отбога у вас. даже не смотря на то что продукт еще молодой и сырой (всего 20 лет) - все на уровне
2
Валерий Чебан
Сообщение не промодерировано, возможны ошибки и неточности.
класс идет как обертка над архаичным глобальным $USER, но в плане безопасности использования есть что улучшить:

Код
CurrentUser::get()->isAdmin() // вызывает ошибку Uncaught Error: Call to a member function isAdmin() on null, когда нет $USER 
// (везде в порядке выполнения страницы https://dev.1c-bitrix.ru/api_help/main/general/pageplan.php до п.1.9) и агентах.

// причем геттера к внутреннему приватному полю нет, чтобы можно было проверять так:
CurrentUser::getCUser() !== null && CurrentUser::get()->isAdmin()

// а по хорошему сделать проверку на инварианты: не создавать объект CurrentUser в методе get(), если global $USER === null
// тогда можно было бы использовать nullsafe-operator
CurrentUser::get()?->isAdmin()
0
Александр Киселев
Сообщение не промодерировано, возможны ошибки и неточности.
В первом примере после
Код
\Bitrix\Main\Engine\Controller::getCurrentUser()
отсутствует ;
Мелочь, но некоторые могут не заметить
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх