Display controller exceptions in debugger

This commit is contained in:
Matias Griese
2021-01-18 12:05:24 +02:00
parent 5def01f9fe
commit de3a557b80
3 changed files with 67 additions and 0 deletions

View File

@@ -5,6 +5,7 @@ namespace Grav\Plugin\Admin;
use Grav\Common\Cache; use Grav\Common\Cache;
use Grav\Common\Config\Config; use Grav\Common\Config\Config;
use Grav\Common\Data\Data; use Grav\Common\Data\Data;
use Grav\Common\Debugger;
use Grav\Common\Filesystem\Folder; use Grav\Common\Filesystem\Folder;
use Grav\Common\Grav; use Grav\Common\Grav;
use Grav\Common\Media\Interfaces\MediaInterface; use Grav\Common\Media\Interfaces\MediaInterface;
@@ -118,8 +119,16 @@ class AdminBaseController
try { try {
$response = $this->{$method}(); $response = $this->{$method}();
} catch (RequestException $e) { } catch (RequestException $e) {
/** @var Debugger $debugger */
$debugger = $this->grav['debugger'];
$debugger->addException($e);
$response = $this->createErrorResponse($e); $response = $this->createErrorResponse($e);
} catch (\RuntimeException $e) { } catch (\RuntimeException $e) {
/** @var Debugger $debugger */
$debugger = $this->grav['debugger'];
$debugger->addException($e);
$response = true; $response = true;
$this->admin->setMessage($e->getMessage(), 'error'); $this->admin->setMessage($e->getMessage(), 'error');
} }

View File

@@ -5,6 +5,7 @@ namespace Grav\Plugin\Admin;
use Grav\Common\Backup\Backups; use Grav\Common\Backup\Backups;
use Grav\Common\Cache; use Grav\Common\Cache;
use Grav\Common\Config\Config; use Grav\Common\Config\Config;
use Grav\Common\Debugger;
use Grav\Common\File\CompiledYamlFile; use Grav\Common\File\CompiledYamlFile;
use Grav\Common\Filesystem\Folder; use Grav\Common\Filesystem\Folder;
use Grav\Common\GPM\GPM as GravGPM; use Grav\Common\GPM\GPM as GravGPM;
@@ -161,6 +162,10 @@ class AdminController extends AdminBaseController
try { try {
$obj->validate(); $obj->validate();
} catch (\Exception $e) { } catch (\Exception $e) {
/** @var Debugger $debugger */
$debugger = $this->grav['debugger'];
$debugger->addException($e);
$this->admin->setMessage($e->getMessage(), 'error'); $this->admin->setMessage($e->getMessage(), 'error');
return false; return false;
@@ -260,6 +265,10 @@ class AdminController extends AdminBaseController
$this->admin->json_response = ['status' => 'success', 'image' => $image, 'secret' => preg_replace('|(\w{4})|', '\\1 ', $secret)]; $this->admin->json_response = ['status' => 'success', 'image' => $image, 'secret' => preg_replace('|(\w{4})|', '\\1 ', $secret)];
} catch (\Exception $e) { } catch (\Exception $e) {
/** @var Debugger $debugger */
$debugger = $this->grav['debugger'];
$debugger->addException($e);
$this->admin->json_response = ['status' => 'error', 'message' => $e->getMessage()]; $this->admin->json_response = ['status' => 'error', 'message' => $e->getMessage()];
return false; return false;
} }
@@ -465,6 +474,10 @@ class AdminController extends AdminBaseController
$data->validate(); $data->validate();
$data->filter(); $data->filter();
} catch (\Exception $e) { } catch (\Exception $e) {
/** @var Debugger $debugger */
$debugger = $this->grav['debugger'];
$debugger->addException($e);
$this->admin->setMessage($e->getMessage(), 'error'); $this->admin->setMessage($e->getMessage(), 'error');
return false; return false;
@@ -528,6 +541,10 @@ class AdminController extends AdminBaseController
'notifications' => $notification_data 'notifications' => $notification_data
]; ];
} catch (\Exception $e) { } catch (\Exception $e) {
/** @var Debugger $debugger */
$debugger = $this->grav['debugger'];
$debugger->addException($e);
$json_response = ['status' => 'error', 'message' => $e->getMessage()]; $json_response = ['status' => 'error', 'message' => $e->getMessage()];
} }
@@ -593,6 +610,10 @@ class AdminController extends AdminBaseController
'feed_data' => $feed_data 'feed_data' => $feed_data
]; ];
} catch (MalformedXmlException $e) { } catch (MalformedXmlException $e) {
/** @var Debugger $debugger */
$debugger = $this->grav['debugger'];
$debugger->addException($e);
$json_response = ['status' => 'error', 'message' => $e->getMessage()]; $json_response = ['status' => 'error', 'message' => $e->getMessage()];
} }
@@ -630,6 +651,10 @@ class AdminController extends AdminBaseController
$id = $this->grav['uri']->param('id', 0); $id = $this->grav['uri']->param('id', 0);
$backup = Backups::backup($id); $backup = Backups::backup($id);
} catch (\Exception $e) { } catch (\Exception $e) {
/** @var Debugger $debugger */
$debugger = $this->grav['debugger'];
$debugger->addException($e);
$this->admin->json_response = [ $this->admin->json_response = [
'status' => 'error', 'status' => 'error',
'message' => $this->admin::translate('PLUGIN_ADMIN.AN_ERROR_OCCURRED') . '. ' . $e->getMessage() 'message' => $this->admin::translate('PLUGIN_ADMIN.AN_ERROR_OCCURRED') . '. ' . $e->getMessage()
@@ -970,6 +995,10 @@ class AdminController extends AdminBaseController
} }
} catch (\Exception $e) { } catch (\Exception $e) {
/** @var Debugger $debugger */
$debugger = $this->grav['debugger'];
$debugger->addException($e);
$this->admin->json_response = ['status' => 'error', 'message' => $e->getMessage()]; $this->admin->json_response = ['status' => 'error', 'message' => $e->getMessage()];
return false; return false;
@@ -993,6 +1022,10 @@ class AdminController extends AdminBaseController
$this->admin->checkPackagesCanBeInstalled($packages); $this->admin->checkPackagesCanBeInstalled($packages);
$dependencies = $this->admin->getDependenciesNeededToInstall($packages); $dependencies = $this->admin->getDependenciesNeededToInstall($packages);
} catch (\Exception $e) { } catch (\Exception $e) {
/** @var Debugger $debugger */
$debugger = $this->grav['debugger'];
$debugger->addException($e);
$this->admin->json_response = ['status' => 'error', 'message' => $e->getMessage()]; $this->admin->json_response = ['status' => 'error', 'message' => $e->getMessage()];
return false; return false;
@@ -1026,6 +1059,10 @@ class AdminController extends AdminBaseController
try { try {
$dependencies = $this->admin->getDependenciesNeededToInstall($packages); $dependencies = $this->admin->getDependenciesNeededToInstall($packages);
} catch (\Exception $e) { } catch (\Exception $e) {
/** @var Debugger $debugger */
$debugger = $this->grav['debugger'];
$debugger->addException($e);
$this->admin->json_response = ['status' => 'error', 'message' => $e->getMessage()]; $this->admin->json_response = ['status' => 'error', 'message' => $e->getMessage()];
return false; return false;
@@ -1067,6 +1104,10 @@ class AdminController extends AdminBaseController
try { try {
$result = Gpm::install($package, ['theme' => $type === 'theme']); $result = Gpm::install($package, ['theme' => $type === 'theme']);
} catch (\Exception $e) { } catch (\Exception $e) {
/** @var Debugger $debugger */
$debugger = $this->grav['debugger'];
$debugger->addException($e);
$msg = $e->getMessage(); $msg = $e->getMessage();
$msg = Utils::contains($msg, '401 Unauthorized') ? "ERROR: License key for this resource is invalid." : $msg; $msg = Utils::contains($msg, '401 Unauthorized') ? "ERROR: License key for this resource is invalid." : $msg;
$msg = Utils::contains($msg, '404 Not Found') ? "ERROR: Resource not found" : $msg; $msg = Utils::contains($msg, '404 Not Found') ? "ERROR: Resource not found" : $msg;
@@ -1134,6 +1175,10 @@ class AdminController extends AdminBaseController
$dependencies = $this->admin->dependenciesThatCanBeRemovedWhenRemoving($package); $dependencies = $this->admin->dependenciesThatCanBeRemovedWhenRemoving($package);
$result = Gpm::uninstall($package, []); $result = Gpm::uninstall($package, []);
} catch (\Exception $e) { } catch (\Exception $e) {
/** @var Debugger $debugger */
$debugger = $this->grav['debugger'];
$debugger->addException($e);
$json_response = ['status' => 'error', 'message' => $e->getMessage()]; $json_response = ['status' => 'error', 'message' => $e->getMessage()];
$this->sendJsonResponse($json_response, 200); $this->sendJsonResponse($json_response, 200);
@@ -1368,6 +1413,10 @@ class AdminController extends AdminBaseController
$obj->validate(); $obj->validate();
} catch (\Exception $e) { } catch (\Exception $e) {
/** @var Debugger $debugger */
$debugger = $this->grav['debugger'];
$debugger->addException($e);
$this->admin->setMessage($e->getMessage(), 'error'); $this->admin->setMessage($e->getMessage(), 'error');
return false; return false;
@@ -1986,6 +2035,10 @@ class AdminController extends AdminBaseController
$this->admin->json_response = ['status' => 'success', 'preview' => $html]; $this->admin->json_response = ['status' => 'success', 'preview' => $html];
} catch (\Exception $e) { } catch (\Exception $e) {
/** @var Debugger $debugger */
$debugger = $this->grav['debugger'];
$debugger->addException($e);
$this->admin->json_response = ['status' => 'error', 'message' => $e->getMessage()]; $this->admin->json_response = ['status' => 'error', 'message' => $e->getMessage()];
return false; return false;

View File

@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace Grav\Plugin\Admin\Controllers; namespace Grav\Plugin\Admin\Controllers;
use Grav\Common\Debugger;
use Grav\Common\Grav; use Grav\Common\Grav;
use Grav\Common\Inflector; use Grav\Common\Inflector;
use Grav\Common\Language\Language; use Grav\Common\Language\Language;
@@ -103,6 +104,10 @@ abstract class AbstractController implements RequestHandlerInterface
} }
} }
} catch (\Exception $e) { } catch (\Exception $e) {
/** @var Debugger $debugger */
$debugger = $this->grav['debugger'];
$debugger->addException($e);
$response = $this->createErrorResponse($e); $response = $this->createErrorResponse($e);
} }