- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/lib/invitation/register.php
- Класс: BitrixIntranetInvitationRegister
- Вызов: Register::transferUser
static function transferUser($usersForTransfer, &$errors)
{
global $APPLICATION, $USER;
$transferedUserIds = [];
foreach ($usersForTransfer as $user)
{
$bExtranetUser = !isset($user["UF_DEPARTMENT"]) || empty($user["UF_DEPARTMENT"]);
$siteIdByDepartmentId = CIntranetInviteDialog::getUserSiteId(array(
"UF_DEPARTMENT" => isset($user["UF_DEPARTMENT"]) && is_array($user["UF_DEPARTMENT"])
? $user["UF_DEPARTMENT"][0] : "",
"SITE_ID" => SITE_ID
));
$userGroups = CIntranetInviteDialog::getUserGroups($siteIdByDepartmentId, $bExtranetUser);
if ($user["EXTERNAL_AUTH_ID"] === "shop" && Loader::includeModule("crm"))
{
$userGroups[] = BitrixCrmOrderBuyerGroup::getSystemGroupId();
}
$transferedUserId = CIntranetInviteDialog::TransferEmailUser($user["ID"], array(
"CONFIRM_CODE" => BitrixMainSecurityRandom::getString(8),
"GROUP_ID" => $userGroups,
"UF_DEPARTMENT" => $user["UF_DEPARTMENT"],
"SITE_ID" => SITE_ID
));
if (!$transferedUserId)
{
if($e = $APPLICATION->GetException())
{
$errors[] = $e->GetString();
}
return false;
}
$transferedUserIds[] = $transferedUserId;
CIntranetInviteDialog::InviteUser($user, Loc::getMessage("INTRANET_INVITATION_INVITE_MESSAGE_TEXT"), array('checkB24' => false));
}
if (!empty($transferedUserIds))
{
foreach($transferedUserIds as $transferedUserId)
{
$res = InvitationTable::getList([
'filter' => [
'USER_ID' => $transferedUserId
],
'select' => [ 'ID' ]
]);
while ($invitationFields = $res->fetch())
{
InvitationTable::update($invitationFields['ID'], [
'TYPE' => Invitation::TYPE_EMAIL,
'ORIGINATOR_ID' => $USER->getId(),
'DATE_CREATE' => new DateTime()
]);
}
}
Invitation::add([
'USER_ID' => $transferedUserIds,
'TYPE' => Invitation::TYPE_EMAIL
]);
}
return $transferedUserIds;
}