Документация для разработчиков
Темная тема

OnBeforeUserSimpleRegister

Описание и параметры

bool
функция-обработчик(
	array &arFields,
);
Событие "OnBeforeUserSimpleRegister" вызывается до попытки упрощённой регистрации нового пользователя методом CUser::SimpleRegister и может быть использовано для прекращения процесса регистрации или переопределения некоторых полей.

Параметры

ПараметрОписание
arFields Массив полей упрощённой регистрации нового пользователя:
  • PASSWORD - пароль
  • CONFIRM_PASSWORD - подтверждение пароля
  • CHECKWORD - контрольное слово для смены пароля
  • EMAIL - EMail пользователя
  • ACTIVE - флаг активности [Y|N]
  • SITE_ID - ID сайта по умолчанию для уведомлений
  • GROUP_ID - массив ID групп пользователя
  • USER_IP - IP адрес пользователя
  • USER_HOST - хост пользователя
На основании массива полей происходит добавление пользователя и отсылка почтового события NEW_USER.

Примечание. Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.
Это позволяет, например, добавить в массив fields дополнительные регистрационные поля или, например, определить поле LOGIN - имя входа пользователя (в противном случае после регистрации пользователя логин будет заменен user< ID нового пользователя>") .

Возвращаемое значение

Для отмены авторизации пользователя и прекращении выполнения метода CUser::SimpleRegister необходимо в функции-обработчике создать исключение методом $APPLICATION->ThrowException() и вернуть false.

Пример

<?
// файл /bitrix/php_interface/init.php
AddEventHandler(
	"main", 
	"OnBeforeUserSimpleRegister", 
	Array("MyClass", "OnBeforeUserSimpleRegisterHandler"), 
	100,
	$_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/scripts/onbeforeusersimplereg.php"
);
?>
<?
// файл /bitrix/php_interface/scripts/onbeforeusersimplereg.php
class MyClass
{
	// создаем обработчик события "OnBeforeUserSimpleRegister"
	public static function OnBeforeUserSimpleRegisterHandler(&$arFields)
	{
		if (strpos($arFields["EMAIL"], "@mysite.com")===false)
		{
			global $APPLICATION;
			$APPLICATION->ThrowException("Регистрация возможно только для EMail адресов домена mysite.com");
			return false;
		}
	}
}
?>


© «Битрикс», 2001-2024, «1С-Битрикс», 2024