Заказчиком поставлена задача отлавливать момент активации аккаунта пользователя администратором и отправлять ему уведомление по почте.
Код |
---|
AddEventHandler("main", "OnBeforeUserUpdate", "UserActivateNotify");
function UserActivateNotify(array &$updated){
$old = CUser::GetByID($updated["ID"])->Fetch();
if ($old["ACTIVE"] !== "Y" && $updated["ACTIVE"] === "Y") {
CEvent::Send("USER_ACTIVATION", $GLOBALS["LID"], $updated);
}
} |
Если открыть пользователя, поставить галочку "Активность" и нажать "Сохранить" - всё ок. Если выбрать пользователя в списке и выбрать действие "активировать" - событие не приходит.
Причина в том, что событие формируется не в CUser::Update а где-то ещё. В то же время обработчики в
/bitrix/modules/main/admin/user_admin.php вызывают CUser::Update напрямую.
Баг?