• Модуль: learning
  • Путь к файлу: ~/bitrix/modules/learning/classes/general/clearnparsepermissionsfromfilter.php
  • Класс: CLearnParsePermissionsFromFilter
  • Вызов: CLearnParsePermissionsFromFilter::__construct
function __construct ($arFilter)
{
	$loggedUserId = false;

	// Skip checking permissions?
	if (isset($arFilter['CHECK_PERMISSIONS']) && ($arFilter['CHECK_PERMISSIONS'] === 'N'))
		return;

	// Determine requested operations
	$this->requestedOperations = self::ParseRequestedOperations ($arFilter);

	// Determine logged in user
	global $USER;
	if (is_object($USER) && method_exists($USER, 'GetID'))
		$loggedUserId = (int) $USER->GetID();
	
	$this->requestedUserId = self::DetermineRequestedUserId ($arFilter, $loggedUserId);

	// If user_id === current logged user_id, and he is admin => skip checking permissions
	if (($this->requestedUserId === $loggedUserId) && $USER->IsAdmin())
		return;		// skip checking permissions

	$this->oAccess = CLearnAccess::GetInstance($this->requestedUserId);

	// If base (shared) user rights covers requested operations => nothing to check.
	if ($this->oAccess->IsBaseAccess ($this->requestedOperations))
		return;		// skip checking permissions

	// Checking of permissions must be.
	$this->bCheckPerm = true;
}