9namespace Bitrix\Im\Call;
11use Bitrix\Main\Application;
12use Bitrix\Im\BasicError;
13use Bitrix\Main\Localization\Loc;
20 static private $error =
null;
22 public static function register($userFields = [])
26 if (isset($userFields[
'USER_HASH']) &&
27 trim($userFields[
'USER_HASH']) &&
28 preg_match(
"/^[a-fA-F0-9]{32}$/i", $userFields[
'USER_HASH']))
30 $userCode = $userFields[
'USER_HASH'];
34 'select' => [
'ID',
'EXTERNAL_AUTH_ID'],
35 'filter' => [
'=XML_ID' =>
'call|'.$userCode]
38 if ($userData && $userData[
'EXTERNAL_AUTH_ID'] == self::EXTERNAL_AUTH_ID)
41 'ID' => $userData[
'ID'],
49 $userCode = self::getUserCode();
54 $fields[
'NAME'] = isset($userFields[
'NAME']) && trim($userFields[
'NAME']) ? $userFields[
'NAME'] : Loc::getMessage(
'IM_CALL_USER_DEFAULT_NAME');
55 $fields[
'LAST_NAME'] = isset($userFields[
'LAST_NAME']) ? trim($userFields[
'LAST_NAME']) :
'';
57 if (isset($userFields[
'AVATAR']) && trim($userFields[
'AVATAR']))
59 $userFields[
'AVATAR'] = self::getPersonalPhoto($userFields[
'AVATAR']);
60 if ($userFields[
'AVATAR'])
62 $fields[
'PERSONAL_PHOTO'] = $userFields[
'AVATAR'];
65 if (isset($userFields[
'EMAIL']) && trim($userFields[
'EMAIL']))
67 $fields[
'EMAIL'] = trim($userFields[
'EMAIL']);
69 if (isset($userFields[
'PERSONAL_WWW']) && trim($userFields[
'PERSONAL_WWW']))
71 $fields[
'PERSONAL_WWW'] = trim($userFields[
'PERSONAL_WWW']);
73 if (isset($userFields[
'PERSONAL_GENDER']) && trim($userFields[
'PERSONAL_GENDER']))
75 $fields[
'PERSONAL_GENDER'] = $userFields[
'PERSONAL_GENDER'] ==
'F' ?
'F' :
'M';
77 if (isset($userFields[
'WORK_POSITION']) && trim($userFields[
'WORK_POSITION']))
79 $fields[
'WORK_POSITION'] = trim($userFields[
'WORK_POSITION']);
82 $fields[
'LOGIN'] = self::MODULE_ID.
'_call_'.rand(1000, 9999).randString(5);
83 $fields[
'PASSWORD'] = md5(
$fields[
'LOGIN'].
'|'.rand(1000, 9999).
'|'.time());
85 $fields[
'EXTERNAL_AUTH_ID'] = self::EXTERNAL_AUTH_ID;
86 $fields[
'XML_ID'] =
'call|'.$userCode;
89 $userManager = new \CUser;
99 $errorCode = $exception->GetID();
105 'USER_REGISTER_ERROR',
106 Loc::getMessage(
'IM_CALL_USER_ERROR_CREATE'),
122 if (!\
Bitrix\
Main\Loader::includeModule(
'im'))
130 if ($userData[
'PERSONAL_PHOTO'])
132 $resizedImage = \CFile::ResizeImageGet(
133 $userData[
"PERSONAL_PHOTO"],
134 [
'width' => 100,
'height' => 100],
140 if (!empty($resizedImage[
'src']))
142 $avatar = $resizedImage[
'src'];
146 if ($userData[
'NAME'] || $userData[
'LAST_NAME'])
158 'ID' => (int)$userData[
'ID'],
159 'HASH' => mb_substr($userData[
'XML_ID'], mb_strlen(
Auth::AUTH_TYPE) + 1),
161 'FIRST_NAME' => $firstName,
162 'LAST_NAME' => $userData[
'LAST_NAME'],
164 'EMAIL' => $userData[
'EMAIL'],
165 'PHONE' => $userData[
'PERSONAL_MOBILE'],
166 'WWW' => $userData[
'PERSONAL_WWW'],
167 'GENDER' => $userData[
'PERSONAL_GENDER'],
168 'POSITION' => $userData[
'WORK_POSITION'],
179 if (!in_array(mb_strtolower(\
GetFileExtension($avatarUrl)), [
'png',
'jpg',
'jpeg',
'gif',
'webp']))
184 $recordFile = \CFile::MakeFileArray($avatarUrl);
185 if (!\CFile::IsImage($recordFile[
'name'], $recordFile[
'type']))
190 if (is_array($recordFile) && $recordFile[
'size'] && $recordFile[
'size'] > 0 && $recordFile[
'size'] < 1000000)
192 $recordFile = array_merge($recordFile, [
'MODULE_ID' =>
'im']);
206 $licence = BX24_HOST_NAME;
221 if (is_null(static::$error))
226 return static::$error;
244 private static function clearError()
246 static::$error =
new BasicError(
null,
'',
'');
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
static getPersonalPhoto($avatarUrl='')
static formatFullNameFromDatabase($fields)
static formatNameFromDatabase($fields)
static isModuleInstalled($moduleName)
static getList(array $parameters=array())
while($arParentIBlockProperty=$dbParentIBlockProperty->Fetch()) $errorMessage
if(!is_null($config))($config as $configItem)(! $configItem->isVisible()) $code
const BX_RESIZE_IMAGE_EXACT
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']