- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/lib/invitation/register.php
- Класс: BitrixIntranetInvitationRegister
- Вызов: Register::inviteNewUsers
static function inviteNewUsers($SITE_ID, $fields, &$errors = [])
{
if (!is_array($fields) || empty($fields))
{
return false;
}
$res = self::checkItems($fields["ITEMS"], $errors);
if (!empty($errors))
{
return false;
}
$emailItems = $res["EMAIL_ITEMS"];
$phoneItems = $res["PHONE_ITEMS"];
$resPhone = self::checkExistingUserByPhone($phoneItems);
$resEmail = self::checkExistingUserByEmail($emailItems);
if (
empty($resPhone["PHONE_TO_REGISTER"])
&& empty($resPhone["PHONE_TO_REINVITE"])
&& empty($resEmail["EMAIL_TO_REGISTER"])
&& empty($resEmail["EMAIL_TO_REINVITE"])
&& empty($resEmail["TRANSFER_USER"])
)
{
if (!empty($resEmail["EMAIL_EXIST"]))
{
$errors[] = Loc::getMessage("INTRANET_INVITATION_USER_EXIST_ERROR", [
"#EMAIL_LIST#" => implode(', ', $resEmail["EMAIL_EXIST"]),
]);
}
if (!empty($resPhone["PHONE_EXIST"]))
{
$errors[] = Loc::getMessage("INTRANET_INVITATION_USER_PHONE_EXIST_ERROR", [
"#PHONE_LIST#" => implode(', ', $resPhone["PHONE_EXIST"]),
]);
}
return false;
}
$messageText = Loc::getMessage("INTRANET_INVITATION_INVITE_MESSAGE_TEXT");
//reinvite users by email
$reinvitedUserIds = [];
foreach ($resEmail["EMAIL_TO_REINVITE"] as $userData)
{
CIntranetInviteDialog::InviteUser($userData, $messageText, array('checkB24' => false));
$reinvitedUserIds[] = (int)$userData['ID'];
}
// TODO: reinvite: self::InviteUserByPhone($userData)
$transferedUserIds = [];
if (!empty($resEmail["TRANSFER_USER"]))
{
$transferedUserIds = self::transferUser($resEmail["TRANSFER_USER"], $errors);
}
$phoneUserIds = [];
if (!empty($resPhone["PHONE_TO_REGISTER"]))
{
$phoneUserIds = self::registerUsersByPhone($resPhone["PHONE_TO_REGISTER"], $errors);
}
$emailUserIds = [];
if (!empty($resEmail["EMAIL_TO_REGISTER"]))
{
$emailUserIds = self::registerUsersByEmail($resEmail["EMAIL_TO_REGISTER"], $errors);
}
if (!empty($errors))
{
return false;
}
return array_merge($phoneUserIds, $emailUserIds, $reinvitedUserIds, $transferedUserIds);
}