- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/classes/general/invite_dialog.php
- Класс: CIntranetInviteDialog
- Вызов: CIntranetInviteDialog::inviteIntegrator
static function inviteIntegrator($SITE_ID, $email, $messageText, &$strError)
{
CUserOptions::SetOption("bitrix24", "integrator_message_text", $messageText);
$filter = array(
"=LOGIN"=> $email,
"!=EXTERNAL_AUTH_ID" => "imconnector"
);
$rsUser = UserTable::getList(array(
'filter' => $filter,
'select' => array("ID", "CONFIRM_CODE", "EXTERNAL_AUTH_ID", "UF_DEPARTMENT")
));
if ($arUser = $rsUser->Fetch())
{
if (empty($arUser["CONFIRM_CODE"]))
{
$strError = Loc::getMessage("BX24_INVITE_DIALOG_USER_EXIST_ERROR1", array("#EMAIL#" => $email));
return false;
}
$userData = array(
"EMAIL" => $email,
"REINVITE" => true,
"ID" => $arUser["ID"],
"CONFIRM_CODE" => $arUser["CONFIRM_CODE"],
"UF_DEPARTMENT" => $arUser["UF_DEPARTMENT"]
);
self::InviteUser($userData, $messageText, array('checkB24' => false));
}
else
{
$userData = array(
"EMAIL" => $email,
"REINVITE" => false
);
if (Loader::includeModule('iblock'))
{
$rsIBlock = CIBlock::GetList(array(), array("CODE" => "departments"));
$arIBlock = $rsIBlock->Fetch();
$iblockID = $arIBlock["ID"];
$db_up_department = CIBlockSection::GetList(
array(),
array(
"SECTION_ID" => 0,
"IBLOCK_ID" => $iblockID
)
);
if ($ar_up_department = $db_up_department->Fetch())
{
$arFields["UF_DEPARTMENT"] = $ar_up_department['ID'];
}
}
$arGroups = self::getAdminGroups($SITE_ID);
if (Loader::includeModule('bitrix24'))
{
$integratorGroupId = BitrixBitrix24Integrator::getIntegratorGroupId();
$arGroups[] = $integratorGroupId;
}
//register users
$userData["CONFIRM_CODE"] = Random::getString(8, true);
$userData["GROUP_ID"] = $arGroups;
$userData["UF_DEPARTMENT"] = $arFields["UF_DEPARTMENT"];
$ID = self::RegisterUser($userData, $SITE_ID);
if(is_array($ID))
{
$strError = $ID[0];
return false;
}
$userData['ID'] = $ID;
self::InviteUser($userData, $messageText, array('checkB24' => false));
Invitation::add([
'USER_ID' => [ $ID ],
'TYPE' => Invitation::TYPE_EMAIL
]);
return $ID;
}
}