События авторизации через соцсети

Рейтинг: 0.8902  
На голосовании
Предложил Малиновский Александр 26.01.2018 12:07:34

События авторизации через соцсети

добрый день.

Решил воспользоваться модулем "социальные сервисы".
как известно, при авторизации на сайте через соцсеть, на сайте создается новый пользователь, если ранее не создан, на основании полей, передаваемых из соцсети.
Бывает, что на сайте заданы пользовательские поля для USER , которые могут быть обязательными к заполнению.
Естественно, соцсеть такие поля не возвращает. И вместо успешной авторизации мы получаем сообщение об ошибке. Хорошо бы перед регистрацией пользователя из соцсети использовать обработчик события, в котором мы бы в init.php заполнили недостающие поля.

но как выяснилось, в системе нет обработчика "перед регистрацией пользователя через соцсеть". по крайней мере, я не нашел.

создал такой обработчик  OnBeforeSocServUserAdd:

foreach(GetModuleEvents("socialservices", "OnBeforeSocServUserAdd", true) as $arEvent) {
    ExecuteModuleEventEx($arEvent, array(&$userFields));
}

вставил этот код в /bitrix/modules/socialservices/classes/general/authmanager.php
перед кодом
$USER_ID = $USER->Add($userFields);
в строке 1345