- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/lib/invitation/register.php
- Класс: BitrixIntranetInvitationRegister
- Вызов: Register::checkExistingUserByPhone
static function checkExistingUserByPhone(array $phoneItems): array
{
$arPhoneToReinvite = [];
$arPhoneExist = [];
$arPhoneToRegister = [];
$bExtranetInstalled = (
ModuleManager::isModuleInstalled("extranet")
&& Option::get("extranet", "extranet_site") !== ''
);
if (Loader::includeModule('socialnetwork'))
{
$externalAuthIdList = SocialnetworkComponentHelper::checkPredefinedAuthIdList(
array_diff(BitrixMainUserTable::getExternalUserTypes(), [ 'email', 'shop' ])
);
}
foreach ($phoneItems as $item)
{
$filter = array(
"=PHONE_NUMBER" => $item["PHONE_NUMBER"]
);
if (!empty($externalAuthIdList))
{
$filter['!=USER.EXTERNAL_AUTH_ID'] = $externalAuthIdList;
}
$rsUser = BitrixMainUserPhoneAuthTable::getList(array(
'filter' => $filter,
'select' => array(
"USER_ID",
"USER_CONFIRM_CODE" => "USER.CONFIRM_CODE",
"USER_EXTERNAL_AUTH_ID" => "USER.EXTERNAL_AUTH_ID",
"USER_UF_DEPARTMENT" => "USER.UF_DEPARTMENT"
)
));
$bFound = false;
while ($arUser = $rsUser->Fetch())
{
$arUser = array(
'ID' => $arUser["USER_ID"],
'CONFIRM_CODE' => $arUser["USER_CONFIRM_CODE"],
'EXTERNAL_AUTH_ID' => $arUser["USER_ID"],
'UF_DEPARTMENT' => $arUser["USER_UF_DEPARTMENT"],
);
$bFound = true;
if (
(string)$arUser["CONFIRM_CODE"] !== ''
&& (
!$bExtranetInstalled
|| ( // both intranet
isset($item["UF_DEPARTMENT"], $arUser["UF_DEPARTMENT"])
&& !empty($item["UF_DEPARTMENT"])
&& (
(
is_array($arUser["UF_DEPARTMENT"])
&& (int)$arUser["UF_DEPARTMENT"][0] > 0
)
|| (
!is_array($arUser["UF_DEPARTMENT"])
&& (int)$arUser["UF_DEPARTMENT"] > 0
)
)
)
||
( // both extranet
(!isset($item["UF_DEPARTMENT"]) || empty($item["UF_DEPARTMENT"]))
&& (
!isset($arUser["UF_DEPARTMENT"])
|| (
is_array($arUser["UF_DEPARTMENT"])
&& (int)$arUser["UF_DEPARTMENT"][0] <= 0
)
|| (
!is_array($arUser["UF_DEPARTMENT"])
&& (int)$arUser["UF_DEPARTMENT"] <= 0
)
)
)
)
)
{
$arPhoneToReinvite[] = array(
"PHONE_NUMBER" => $item["PHONE_NUMBER"],
"REINVITE" => true,
"ID" => $arUser["ID"],
"CONFIRM_CODE" => $arUser["CONFIRM_CODE"],
"UF_DEPARTMENT" => $arUser["UF_DEPARTMENT"]
);
}
else
{
$arPhoneExist[] = $item["PHONE_NUMBER"];
}
}
if (!$bFound)
{
$item["REINVITE"] = false;
$arPhoneToRegister[] = $item;
}
}
return [
"PHONE_TO_REINVITE" => $arPhoneToReinvite,
"PHONE_EXIST" => $arPhoneExist,
"PHONE_TO_REGISTER" => $arPhoneToRegister
];
}