В init.php висят обработчики
Код |
---|
AddEventHandler('main', 'OnBeforeUserAdd', 'OnBeforeUserUpdateHandler' );
AddEventHandler("main", "OnBeforeUserRegister", "OnBeforeUserUpdateHandler" );
AddEventHandler("main", "OnBeforeUserUpdate", "OnBeforeUserUpdateHandler" );
function OnBeforeUserUpdateHandler(&$arFields) {
$arFields["LOGIN"] = $arFields["EMAIL"];
} |
При этом при редактировании пользовательской информации из публичной части возвращается ошибка: "Логин должен быть не менее 3 символов."
Как такое может быть? Ведь email явно больше 3 символов. В методе CheckFields класса CAllUser заметил, что
Код |
---|
if(is_set($arFields, "LOGIN" ) && strlen($arFields["LOGIN" ]<3)
$this->LAST_ERROR .= GetMessage("MIN_LOGIN" )."<br>"; |
вызывается до
Код |
---|
$db_events = GetModuleEvents("main", "OnBeforeUserUpdate"); ... |
Как избежать такой проблемы?