OnBeforeManagerLogin
Последнее обновление Jan 28th, 2020 | История страницы | Улучшить эту страницу | Сообщить о проблеме
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$194 per month—let's make that $500!
Learn moreСобытие: OnBeforeManagerLogin¶
Событие запускается перед началом процесса входа пользователя в контекст менеджера. По умолчанию вход разрешён. Чтобы запретить его, плагин должен установить непустой вывод события, отличный от true, — обычно сообщение об ошибке:
// запретить вход и передать причину
$modx->event->output('Вход не разрешён.');
После этого вход прерывается с этим сообщением. Если ни один плагин не установил вывод, или вывод равен true, вход продолжается. Значение, возвращённое из кода плагина, не блокирует вход — оно пишется в журнал ошибок.
- Служба: 2 - Manager Access Events
- Group: Security
Параметры события¶
| Имя | Описание |
|---|---|
| username | Предоставленное имя пользователя. |
| password | Предоставленный пароль. |
| attributes | Массив: |
| - & rememberme - Булево множество, если пользователь хочет, чтобы пароль был запомнен. Передано по ссылке | |
| - & lifetime - Время жизни файла cookie сеанса для этого логина. Передано по ссылке | |
| - & loginContext - Ключ контекста, в котором происходит вход в систему. Передано по ссылке | |
| - & addContexts - Дополнительные контексты, в которых вход в систему также происходит. Передано по ссылке |
Рабочий процесс входа в систему¶
-
OnBeforeWebLogin || OnBeforeManagerLogin - Внутри этого события разработчик может проверить наличие ошибочных параметров, которые будут запрещать дальнейший процесс входа в систему. Если плагин передаст через
$modx->event->output()непустое значение, отличное отtrue, вход в систему будет прерван с указанным сообщением. - OnUserNotFound - Это событие выполняется, только если указанное имя пользователя не найдено в базе данных MODX. Разработчик может предоставить свой собственный объект modUser в выходных данных события, чтобы продолжить процесс входа в систему.
- OnWebAuthentication || OnManagerAuthentication - Внутри этого события разработчик может проверить параметры, которые отменят проверку по умолчанию паролем и позволят продолжить вход в систему. Если один из плагинов, выполненных из этого события, возвращает true, пользователь считается проверенным и вошел в систему.
- OnWebLogin || OnManagerLogin - Это событие вызывается после завершения процесса входа в систему и считается, что пользователь вошел в систему. Оно не меняет поведение процесса входа в систему.
Примеры¶
Такой плагин выведет в "Журнал ошибок" кто, с каким паролем, и куда пытался войти:
<?php
$eventName = $modx->event->name;
switch($eventName) {
case 'OnBeforeManagerLogin':
$modx->log(modX::LOG_LEVEL_ERROR, 'Пытался войти пользователь с именем '.$username.' и паролем '.$password.print_r($attributes, true));
break;
}
Такой сделает пользователя неактивным, когда он будет пытатся авторизоваться:
<?php
$eventName = $modx->event->name;
switch($eventName) {
case 'OnBeforeManagerLogin':
if ($username == 'manager'){
$user = $modx->getObject('modUser', array('username' => $username));
$user->set('active', '0');
$user->save();
}
break;
}
Смотри также¶
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$194 per month—let's make that $500!
Learn more










