• Модуль: voximplant
  • Путь к файлу: ~/bitrix/modules/voximplant/classes/general/vi_user.php
  • Класс: CVoxImplantUser
  • Вызов: CVoxImplantUser::GetUserInfo
public function GetUserInfo($userId, $getPhoneAccess = false)
{
	$userId = intval($userId);
	if ($userId <= 0)
	{
		$this->error = new CVoxImplantError(__METHOD__, 'USER_ID_NULL', 'UserId is not correct');
		return false;
	}

	if(!BitrixVoximplantIntegrationBitrix24::isEmailConfirmed())
	{
		$this->error =  new CVoxImplantError(__METHOD__, 'CONFIRMATION_ERROR', GetMessage('VI_ERROR_EMAIL_NOT_CONFIRMED'));
		return false;
	}

	$userPassword = '';
	$userBackphone = '';
	$phoneEnable = false;
	$phonePassword = '';

	$arUser = BitrixMainUserTable::getRow([
		'select' => ['UF_VI_PASSWORD', 'UF_VI_BACKPHONE', 'UF_VI_PHONE', 'UF_VI_PHONE_PASSWORD', 'UF_PHONE_INNER', 'UF_DEPARTMENT'],
		'filter' => [
			'=ID' => $userId,
			'=ACTIVE' => 'Y',
		]
	]);
	if ($arUser)
	{
		if ($arUser['UF_VI_PASSWORD'] <> '')
		{
			$userPassword = $arUser['UF_VI_PASSWORD'];
		}
		if ($arUser['UF_VI_PHONE_PASSWORD'] <> '')
		{
			$phonePassword = $arUser['UF_VI_PHONE_PASSWORD'];
		}
		$userInnerPhone = $arUser['UF_PHONE_INNER'];
		$userBackphone = $arUser['UF_VI_BACKPHONE'];
		if ($arUser['UF_VI_PHONE'] == 'Y')
		{
			$phoneEnable = true;
			$getPhoneAccess = true;
		}
		$arUser['IS_EXTRANET'] = self::IsExtranet($arUser);
		unset($arUser['UF_DEPARTMENT']);
	}
	else
	{
		$this->error = new CVoxImplantError(__METHOD__, 'USER_NOT_FOUND', 'User is not found!');
		return false;
	}

	if ($userPassword == '' || $getPhoneAccess && $phonePassword == '')
	{
		$result = $this->GetUser($userId, $getPhoneAccess, true);
		if (!$result || $this->GetError()->error)
		{
			$this->error = new CVoxImplantError(__METHOD__, $this->GetError()->code, $this->GetError()->msg);
			return false;
		}

		$userPassword = $result->result->user_password;
		$phonePassword =
			property_exists($result->result, 'phone_password')
				? $result->result->phone_password
				: null
		;

		global $USER_FIELD_MANAGER;
		$USER_FIELD_MANAGER->Update("USER", $userId, Array('UF_VI_PASSWORD' => $userPassword, 'UF_VI_PHONE_PASSWORD' => $phonePassword));
	}

	if ($userBackphone)
	{
		$portalPhones = CVoxImplantConfig::GetPortalNumbers(true, true);
		if (!isset($portalPhones[$userBackphone]))
		{
			$userBackphone = CVoxImplantConfig::GetPortalNumber();
		}
	}
	if ($userBackphone == '')
	{
		$userBackphone = CVoxImplantConfig::GetPortalNumber();
		if ($userBackphone == CVoxImplantConfig::LINK_BASE_NUMBER)
		{
			$userBackphone = '';
		}
	}

	$viAccount = new CVoxImplantAccount();

	return Array(
		'call_server' => str_replace('voximplant.com', 'bitrixphone.com', $viAccount->GetCallServer()),
		'user_login' => 'user'.$userId,
		'user_password' => $userPassword,
		'user_backphone' => $userBackphone,
		'user_innerphone' => $userInnerPhone,
		'phone_enable' => $phoneEnable,
		'phone_login' => $phonePassword? 'phone'.$userId: "",
		'phone_password' => $phonePassword,
		'user_extranet' => $arUser['IS_EXTRANET'],
	);
}