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

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"
    function OnBeforeUserSimpleRegisterHandler(&$arFields)
    {
        if (strpos($arFields["EMAIL"], "@mysite.com")===false)
        {
            global $APPLICATION;
            $APPLICATION->ThrowException("Регистрация возможно только для EMail адресов домена mysite.com");
            return false;
        }
    }
}
?>


© «Битрикс», 2001-2020, «1С-Битрикс», 2020
Наверх