• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/lib/controller/invite.php
  • Класс: BitrixIntranetControllerInvite
  • Вызов: Invite::reinviteAction
public function reinviteAction(array $params = [])
{
	$userId = (!empty($params['userId']) ? intval($params['userId']) : 0);
	if ($userId <= 0)
	{
		$this->addError(new Error(Loc::getMessage('INTRANET_CONTROLLER_INVITE_NO_USER_ID'), 'INTRANET_CONTROLLER_INVITE_NO_USER_ID'));
		return null;
	}

	$res = UserTable::getList([
		'filter' => [
			'=ID' => $userId
		],
		'select' => [
			'EMAIL', 'CONFIRM_CODE'
		]
	]);
	$userFields = $res->fetch();
	if (
		!$userFields
		|| empty($userFields['CONFIRM_CODE'])
	)
	{
		$this->addError(new Error(Loc::getMessage('INTRANET_CONTROLLER_INVITE_USER_NOT_FOUND'), 'INTRANET_CONTROLLER_INVITE_USER_NOT_FOUND'));
		return null;
	}

	if (empty($userFields['EMAIL']))
	{
		$this->addError(new Error(Loc::getMessage('INTRANET_CONTROLLER_INVITE_FAILED'), 'INTRANET_CONTROLLER_INVITE_FAILED'));
		return null;
	}

	$extranet = (
		isset($params['extranet'])
			? (!empty($params['extranet']) && $params['extranet'] == 'Y')
			: (
				Loader::includeModule('extranet')
				&& !CExtranet::isIntranetUser(SITE_ID, $userId)
			)
	);

	if (!$extranet)
	{
		$result = CIntranetInviteDialog::reinviteUser(SITE_ID, $userId);
	}
	else
	{
		$result = CIntranetInviteDialog::reinviteExtranetUser(SITE_ID, $userId);
	}

	if (!$result)
	{
		$this->addError(new Error(Loc::getMessage('INTRANET_CONTROLLER_INVITE_USER_NOT_FOUND'), 'INTRANET_CONTROLLER_INVITE_USER_NOT_FOUND'));
		return null;
	}

	return [
		'result' => $result
	];
}