- Модуль: 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'],
);
}