Как записать в "журнал событий" данные из массива получаемого в событии OnAfterUserAuthorize (1c Bitrix)
При авторизации в файле init.php вызываю событие OnAfterUserAuthorize и записываю данные в логи. Событие отрабатывает корректно, данные в массиве есть но в логи данные из массива не записываются.
AddEventHandler("main", "OnAfterUserAuthorize", function(&$fields) {
$id = $fields['ID'];
CEventLog::Add(array(
"DESCRIPTION" => "Пользователь с ID " . $id . " и именем " . $fields['NAME'] . " успешно авторизовался." . $fields['ID'], // получение ID и имени из $fields
));
});
Соответственно вывод такой - "Пользователь с ID и именем успешно авторизовался." Подскажите пожалуйста, что не так?
Ответы (1 шт):
Автор решения: Виктор Карев
→ Ссылка
Судя по коду функции CUser::Authorize, в параметры обработчика события OnAfterUserAuthorize передаётся массив
$arParams = array(
"user_fields" => $arUser,
"save" => $bSave,
"update" => $bUpdate,
"applicationId" => $applicationId,
);
Соответственно, ваш обработчик должен иметь вид
AddEventHandler("main", "OnAfterUserAuthorize", function(&$fields) {
$userFields = $fields['user_fields'];
$id = $userFields ['ID'];
CEventLog::Add(array(
"DESCRIPTION" => "Пользователь с ID " . $id . " и именем " . $userFields ['NAME'] . " успешно авторизовался.",
));
});