OnBeforeUserAdd
Описание и параметры
bool функция-обработчик( array &arParams );Событие вызывается в методе CUser::Add до вставки нового пользователя, и может быть использовано для отмены вставки или переопределения некоторых полей.
Параметры
| Параметр | Описание |
|---|---|
| arParams | Массив полей нового пользователя. |
Примечание. Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.
Возвращаемое значение
Для отмены добавления и прекращении выполнения метода CUser::Add необходимо в функции-обработчике создать исключение методомСмотрите также
- Событие "OnAfterUserAdd"
- CUser::Add
- События
Пример функции-обработчика
<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("main", "OnBeforeUserAdd", Array("MyClass", "OnBeforeUserAddHandler"));
class MyClass
{
// создаем обработчик события "OnBeforeUserAdd"
public static function OnBeforeUserAddHandler(&$arFields)
{
if(strlen($arFields["LAST_NAME"])<=0)
{
global $APPLICATION;
$APPLICATION->throwException("Пожалуйста, введите фамилию.");
return false;
}
}
}
?>
Автоматическое создание логина пользователя на основе email (версия main меньше 20.0.0)
<?
use Bitrix\Main\EventManager,
Bitrix\Main\Diag\Debug,
Bitrix\Main\Context;
$eventManager = EventManager::getInstance();
/* ---------------------------------------------------------------------------------------------------- EMAIL to LOGIN */
$eventManager->addEventHandler('main', 'OnBeforeUserAdd', ['CUserEx', 'OnBeforeUserAddHandler']);
$eventManager->addEventHandler('main', 'OnBeforeUserRegister', ['CUserEx', 'OnBeforeUserRegisterHandler']);
$eventManager->addEventHandler('main', 'OnBeforeUserUpdate', ['CUserEx', 'OnBeforeUserUpdateHandler']);
class CUserEx
{
function OnBeforeUserAddHandler( &$arFields )
{
//\Bitrix\Main\Diag\Debug::writeToFile( $arFields, 'OnBeforeUserAddHandler', 'log.txt');
return self::OnBeforeUserUpdateHandler( $arFields );
}
function OnBeforeUserRegisterHandler( &$arFields )
{
//\Bitrix\Main\Diag\Debug::writeToFile( $arFields, 'OnBeforeUserRegisterHandler', 'log.txt');
return self::OnBeforeUserUpdateHandler( $arFields );
}
function OnBeforeUserUpdateHandler( &$arFields )
{
//\Bitrix\Main\Diag\Debug::writeToFile( $arFields, 'OnBeforeUserUpdateHandler', 'log.txt');
if( !\Bitrix\Main\Context::getCurrent()->getRequest()->isAdminSection() )
{
$arFields['LOGIN'] = $arFields['EMAIL'];
//\Bitrix\Main\Diag\Debug::writeToFile( $arFields, 'OnBeforeUserUpdateHandler notAdminSection', 'log.txt');
return $arFields;
}
}
}
?>
© «Битрикс», 2001-2025, «1С-Битрикс», 2025