• Модуль: learning
  • Путь к файлу: ~/bitrix/modules/learning/classes/general/clearnaccess.php
  • Класс: CLearnAccess
  • Вызов: CLearnAccess::IsBaseAccess
public function IsBaseAccess ($in_bitmaskRequested, $isUseCache = false, $checkForAuthor = false)
{
	global $USER;

	if (is_object($USER) 
		&& ( $this->userId === ((int) $USER->GetID()) ) 
		&& $USER->IsAdmin()
	)
	{
		// Admin can access anything
		return (true);
	}
	elseif (defined('CRON_MODE'))
	{
		// Under cron script anybody can access anything
		return (true);
	}

	if ( ! (is_int($in_bitmaskRequested) && ($in_bitmaskRequested > 0)) )
	{
		throw new LearnException ('bitmask must be an integer > 0', 
			LearnException::EXC_ERR_ALL_ACCESS_DENIED 
			| LearnException::EXC_ERR_ALL_PARAMS);
	}

	$bitmaskRequested = $in_bitmaskRequested;

	// access codes for user $this->userId
	$arUserAccessSymbols = $this->GetAccessCodes ($isUseCache);

	if ($checkForAuthor)
		$arUserAccessSymbols[] = 'CR';

	// bitmask of accessible operations for user
	$bitmaskBaseAccess = $this->GetBitmaskOperationsForAllLessons($arUserAccessSymbols);

	// check that all bits in $bitmaskRequested are setted in $bitmaskBaseAccess
	if ( ($bitmaskRequested & $bitmaskBaseAccess) === $bitmaskRequested )
		return (true);
	else
		return (false);
}