• Модуль: meeting
  • Путь к файлу: ~/bitrix/modules/meeting/classes/general/meeting.php
  • Класс: CAllMeeting
  • Вызов: CAllMeeting::GetUserRole
static function GetUserRole($ID, $USER_ID = false, $bCheckHead = true)
{
	global $DB, $USER;

	$role = false;

	$ID = (int)$ID;
	$USER_ID = (int)$USER_ID;

	if ($ID > 0)
	{
		if ($USER_ID <= 0)
		{
			$USER_ID = $USER->GetID();
		}

		$sqlFilter = "AND USER_ID='".$USER_ID."'";
		if ($bCheckHead)
		{
			$arSubIDs = array($USER_ID);
			$dbUsers = CIntranetUtils::GetSubordinateEmployees($USER_ID, true, 'Y', array('ID'));
			while ($arUser = $dbUsers->Fetch())
			{
				$arSubIDs[] = $arUser['ID'];
			}
			$sqlFilter = "AND USER_ID IN ('".implode("', '", $arSubIDs)."')";
		}

		$dbRes = $DB->Query("SELECT USER_ID, USER_ROLE FROM b_meeting_users WHERE MEETING_ID='".$ID."' ".$sqlFilter);

		if ($bCheckHead)
		{
			while ($arRes = $dbRes->Fetch())
			{
				$role = CMeeting::ROLE_HEAD;
				if ((int)$arRes['USER_ID'] === (int)$USER_ID)
				{
					$role = $arRes['USER_ROLE'];
					break;
				}
			}

		}
		elseif ($arRes = $dbRes->Fetch())
		{
			$role = $arRes['USER_ROLE'];
		}
	}

	if (!$role && $USER->isAdmin())
	{
		return CMeeting::ROLE_MEMBER;
	}

	return $role;
}