• Модуль: learning
  • Путь к файлу: ~/bitrix/modules/learning/classes/general/clearnaccessmacroses.php
  • Класс: CLearnAccessMacroses
  • Вызов: CLearnAccessMacroses::CanViewAdminMenu
static function CanViewAdminMenu()
    {
	global $USER;

	if ($USER->IsAdmin())
	{
		return true;
	}

	$oAccess = CLearnAccess::GetInstance($USER->GetID());
	if (
		$oAccess->IsBaseAccess(CLearnAccess::OP_LESSON_READ)
		&& (
			$oAccess->IsBaseAccess(CLearnAccess::OP_LESSON_CREATE)
			|| $oAccess->IsBaseAccess(CLearnAccess::OP_LESSON_WRITE)
			|| $oAccess->IsBaseAccess(CLearnAccess::OP_LESSON_REMOVE)
			|| $oAccess->IsBaseAccess(CLearnAccess::OP_LESSON_CREATE)
			|| $oAccess->IsBaseAccess(CLearnAccess::OP_LESSON_LINK_TO_PARENTS)
			|| $oAccess->IsBaseAccess(CLearnAccess::OP_LESSON_UNLINK_FROM_PARENTS)
			|| $oAccess->IsBaseAccess(CLearnAccess::OP_LESSON_LINK_DESCENDANTS)
			|| $oAccess->IsBaseAccess(CLearnAccess::OP_LESSON_UNLINK_DESCENDANTS)
			|| $oAccess->IsBaseAccess(CLearnAccess::OP_LESSON_MANAGE_RIGHTS)
		)
	)
	{
		return true;
	}

	if ($oAccess->IsBaseAccess(CLearnAccess::OP_LESSON_CREATE))
	{
		return true;
	}

	$db = CCourse::GetList(
		array(),
		array(
			"CHECK_PERMISSIONS" => "Y",
			"ACCESS_OPERATIONS" =>
				CLearnAccess::OP_LESSON_CREATE |
				CLearnAccess::OP_LESSON_WRITE |
				CLearnAccess::OP_LESSON_REMOVE |
				CLearnAccess::OP_LESSON_LINK_TO_PARENTS |
				CLearnAccess::OP_LESSON_UNLINK_FROM_PARENTS |
				CLearnAccess::OP_LESSON_LINK_DESCENDANTS |
				CLearnAccess::OP_LESSON_UNLINK_DESCENDANTS |
				CLearnAccess::OP_LESSON_MANAGE_RIGHTS
		),
		array("nTopCount" => 1)
	);

	return $db->Fetch() !== false;
}