first commit
This commit is contained in:
72
plugins/system/log/src/Extension/Log.php
Normal file
72
plugins/system/log/src/Extension/Log.php
Normal file
@ -0,0 +1,72 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Joomla.Plugin
|
||||
* @subpackage System.log
|
||||
*
|
||||
* @copyright (C) 2007 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
namespace Joomla\Plugin\System\Log\Extension;
|
||||
|
||||
use Joomla\CMS\Authentication\Authentication;
|
||||
use Joomla\CMS\Log\Log as Logger;
|
||||
use Joomla\CMS\Plugin\CMSPlugin;
|
||||
|
||||
// phpcs:disable PSR1.Files.SideEffects
|
||||
\defined('_JEXEC') or die;
|
||||
// phpcs:enable PSR1.Files.SideEffects
|
||||
|
||||
/**
|
||||
* Joomla! System Logging Plugin.
|
||||
*
|
||||
* @since 1.5
|
||||
*/
|
||||
final class Log extends CMSPlugin
|
||||
{
|
||||
/**
|
||||
* Called if user fails to be logged in.
|
||||
*
|
||||
* @param array $response Array of response data.
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 1.5
|
||||
*/
|
||||
public function onUserLoginFailure($response)
|
||||
{
|
||||
$errorlog = [];
|
||||
|
||||
switch ($response['status']) {
|
||||
case Authentication::STATUS_SUCCESS:
|
||||
$errorlog['status'] = $response['type'] . ' CANCELED: ';
|
||||
$errorlog['comment'] = $response['error_message'];
|
||||
break;
|
||||
|
||||
case Authentication::STATUS_FAILURE:
|
||||
$errorlog['status'] = $response['type'] . ' FAILURE: ';
|
||||
|
||||
if ($this->params->get('log_username', 0)) {
|
||||
$errorlog['comment'] = $response['error_message'] . ' ("' . $response['username'] . '")';
|
||||
} else {
|
||||
$errorlog['comment'] = $response['error_message'];
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
$errorlog['status'] = $response['type'] . ' UNKNOWN ERROR: ';
|
||||
$errorlog['comment'] = $response['error_message'];
|
||||
break;
|
||||
}
|
||||
|
||||
Logger::addLogger([], Logger::INFO);
|
||||
|
||||
try {
|
||||
Logger::add($errorlog['comment'], Logger::INFO, $errorlog['status']);
|
||||
} catch (\Exception $e) {
|
||||
// If the log file is unwriteable during login then we should not go to the error page
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user