Added some debugging messages (turned off by default)

This commit is contained in:
Matias Griese
2020-02-10 22:19:39 +02:00
parent 98f2a65874
commit 20ae10bcb4
3 changed files with 39 additions and 3 deletions

View File

@@ -5,6 +5,7 @@ namespace Grav\Plugin\Admin;
use DateTime;
use Grav\Common\Data;
use Grav\Common\Data\Data as GravData;
use Grav\Common\Debugger;
use Grav\Common\File\CompiledYamlFile;
use Grav\Common\Flex\Users\UserObject;
use Grav\Common\GPM\GPM;
@@ -52,8 +53,9 @@ define('LOGIN_REDIRECT_COOKIE', 'grav-login-redirect');
class Admin
{
const MEDIA_PAGINATION_INTERVAL = 20;
const TMP_COOKIE_NAME = 'tmp-admin-message';
public const DEBUG = 1;
public const MEDIA_PAGINATION_INTERVAL = 20;
public const TMP_COOKIE_NAME = 'tmp-admin-message';
/** @var Grav */
public $grav;
@@ -182,6 +184,17 @@ class Admin
}
}
/**
* @param string $message
* @param array $data
*/
public static function addDebugMessage(string $message, $data = [])
{
/** @var Debugger $debugger */
$debugger = Grav::instance()['debugger'];
$debugger->addMessage($message, 'debug', $data);
}
/**
* Return the languages available in the admin
*
@@ -400,6 +413,8 @@ class Admin
return;
}
Admin::DEBUG && Admin::addDebugMessage("Admin redirect: {$redirectCode} {$redirect}");
$redirect = '/' . ltrim(preg_replace('`//+`', '/', $redirect), '/');
$base = $this->base;
$root = Grav::instance()['uri']->rootUrl();
@@ -536,11 +551,15 @@ class Admin
// Check rate limit for both IP and user, but allow each IP a single try even if user is already rate limited.
if ($rateLimiter->isRateLimited($ipKey, 'ip') || ($attempts && $rateLimiter->isRateLimited($userKey))) {
Admin::DEBUG && Admin::addDebugMessage('Admin login: rate limit, redirecting', $credentials);
$this->setMessage(static::translate(['PLUGIN_LOGIN.TOO_MANY_LOGIN_ATTEMPTS', $rateLimiter->getInterval()]), 'error');
$this->grav->redirect('/');
}
Admin::DEBUG && Admin::addDebugMessage('Admin login', $credentials);
// Fire Login process.
$event = $login->login(
$credentials,
@@ -549,6 +568,8 @@ class Admin
);
$user = $event->getUser();
Admin::DEBUG && Admin::addDebugMessage('Admin login: user', $user);
if ($user->authenticated) {
$rateLimiter->resetRateLimit($ipKey, 'ip')->resetRateLimit($userKey);
if ($user->authorized) {