Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Как сделать пользователей при регистрации неактивными

00 голосов
6
Здравствуйте! Подскажите, пожалуйста, как сделать, чтобы при регистрации нового пользователя, он был неактивным. На сайте используются компоненты системной регистрации и авторизации (system.auth.registration, system.auth.authorize, system.auth.form).
Я пробывал использовать функцию-обработчик событий
<?
// файл /bitrix/modules/my_module_id/include.php
class MyClass
{
// создаем обработчик события "OnAfterUserRegister"
function OnAfterUserRegisterHandler(&$arFields)
{
// если регистрация успешна то
if($arFields["USER_ID"]>0)
{
$arFields["ACTIVE"] = "N";

}
}
}
?>
, добавл код
<?
RegisterModuleDependences("main", "OnAfterUserRegister", "my_module_id", "MyClass", "OnAfterUserRegisterHandler");
?>
в init.php, но ничего не работает. Помогите, плз.
спросил 27 Июнь, 13 от Dobriy (400 баллов)

6 Ответы

00 голосов
я думаю в приведенном примере вам нужно использовать событие "OnBeforeUserRegister":
Цитата
Событие "OnBeforeUserRegister" вызывается до попытки регистрации нового пользователя методом CUser::Register и может быть использовано для прекращения процесса регистрации или переопределения некоторых полей.

Вот здесь и переопределите поле активности.

А, в случае использования "OnAfterUserRegister", вам нужно будет делать update бюджета пользователя (CUser::Update)
ответил 27 Июнь, 13 от Almarea (3,760 баллов)
00 голосов
Спасибо. Я попробую.
ответил 29 Июль, 13 от Dobriy (400 баллов)
00 голосов
почему RegisterModuleDependences, а не AddEventHandler?
ответил 31 Окт, 13 от bazzet (620 баллов)
00 голосов
Не знаю. Я в этом совсем не разбираюсь.
ответил 05 Фев, 14 от Dobriy (400 баллов)
00 голосов
Нет. Всё равно не работает ((.
ответил 25 Май, 14 от Dobriy (400 баллов)
00 голосов
Заработало! Большое спасибо за помощь.
Код
// скрипт в файле /bitrix/php_interface/init.php
<?
AddEventHandler("main", "OnBeforeUserRegister", Array("MyClass", "OnBeforeUserRegisterHandler"));class MyClass
{
   function OnBeforeUserRegisterHandler(&$arFields)
    {
          $arFields["ACTIVE"] = "N";
           
    }
}
?>
ответил 22 Сен, 14 от Dobriy (400 баллов)