- Модуль: voximplant
- Путь к файлу: ~/bitrix/modules/voximplant/classes/general/vi_rest.php
- Класс: CVoxImplantRestService
- Вызов: CVoxImplantRestService::getUser
static function getUser($params, $n, $server)
{
if (!isset($params['USER_ID']))
{
throw new BitrixRestRestException('Parameter USER_ID is not set');
}
if (is_array($params['USER_ID']))
{
$userIds = array_map('intval', $params['USER_ID']);
}
else
{
$userIds = [(int)$params['USER_ID']];
}
$permissions = SecurityPermissions::createWithCurrentUser();
$allowedUserIds = SecurityHelper::getAllowedUserIds(
SecurityHelper::getCurrentUserId(),
$permissions->getPermission(SecurityPermissions::ENTITY_USER, SecurityPermissions::ACTION_MODIFY)
);
if (is_array($allowedUserIds))
{
$userIds = array_intersect($userIds, $allowedUserIds);
}
if (empty($userIds))
{
throw new BitrixRestAccessException('You have no permission to query selected users');
}
if (IntegrationBitrix24::isInstalled())
{
$admins = IntegrationBitrix24::getAdmins();
}
else
{
$admins = [];
$cursor = CAllGroup::GetGroupUserEx(1);
while ($row = $cursor->fetch())
{
$admins[] = (int)$row['USER_ID'];
}
}
if (isset($admins[SecurityHelper::getCurrentUserId()]))
{
$admins = [SecurityHelper::getCurrentUserId()];
}
$server->requestConfirmation(
$admins,
GetMessage(
'VI_REST_GET_USERS_CONFIRM',
array('#APPLICATION_NAME#' => BitrixVoximplantRestHelper::getRestAppName($server->getClientId()))
)
);
$arExtParams = [
'FIELDS' => ['ID'],
'SELECT' => [
'UF_VI_PASSWORD',
'UF_VI_BACKPHONE',
'UF_VI_PHONE',
'UF_VI_PHONE_PASSWORD',
'UF_PHONE_INNER',
]
];
$cursor = CUser::GetList(
'',
'',
['ID' => join(' | ', $userIds)],
$arExtParams
);
$result = [];
$account = new CVoxImplantAccount();
while ($row = $cursor->Fetch())
{
$result[] = [
'ID' => $row['ID'],
'DEFAULT_LINE' => $row['UF_VI_BACKPHONE'],
'PHONE_ENABLED' => $row['UF_VI_PHONE'],
'SIP_SERVER' => str_replace('voximplant.com', 'bitrixphone.com', $account->GetCallServer()),
'SIP_LOGIN' => 'phone'.$row['ID'],
'SIP_PASSWORD' => $row['UF_VI_PHONE_PASSWORD'],
'INNER_NUMBER' => $row['UF_PHONE_INNER'],
];
}
return $result;
}