diff --git a/classes/plugin/AdminBaseController.php b/classes/plugin/AdminBaseController.php index f36fe516..666c9095 100644 --- a/classes/plugin/AdminBaseController.php +++ b/classes/plugin/AdminBaseController.php @@ -5,6 +5,7 @@ namespace Grav\Plugin\Admin; use Grav\Common\Cache; use Grav\Common\Config\Config; use Grav\Common\Data\Data; +use Grav\Common\Debugger; use Grav\Common\Filesystem\Folder; use Grav\Common\Grav; use Grav\Common\Media\Interfaces\MediaInterface; @@ -118,8 +119,16 @@ class AdminBaseController try { $response = $this->{$method}(); } catch (RequestException $e) { + /** @var Debugger $debugger */ + $debugger = $this->grav['debugger']; + $debugger->addException($e); + $response = $this->createErrorResponse($e); } catch (\RuntimeException $e) { + /** @var Debugger $debugger */ + $debugger = $this->grav['debugger']; + $debugger->addException($e); + $response = true; $this->admin->setMessage($e->getMessage(), 'error'); } diff --git a/classes/plugin/AdminController.php b/classes/plugin/AdminController.php index 07e008a7..e672b0ce 100644 --- a/classes/plugin/AdminController.php +++ b/classes/plugin/AdminController.php @@ -5,6 +5,7 @@ namespace Grav\Plugin\Admin; use Grav\Common\Backup\Backups; use Grav\Common\Cache; use Grav\Common\Config\Config; +use Grav\Common\Debugger; use Grav\Common\File\CompiledYamlFile; use Grav\Common\Filesystem\Folder; use Grav\Common\GPM\GPM as GravGPM; @@ -161,6 +162,10 @@ class AdminController extends AdminBaseController try { $obj->validate(); } catch (\Exception $e) { + /** @var Debugger $debugger */ + $debugger = $this->grav['debugger']; + $debugger->addException($e); + $this->admin->setMessage($e->getMessage(), 'error'); 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)]; } catch (\Exception $e) { + /** @var Debugger $debugger */ + $debugger = $this->grav['debugger']; + $debugger->addException($e); + $this->admin->json_response = ['status' => 'error', 'message' => $e->getMessage()]; return false; } @@ -465,6 +474,10 @@ class AdminController extends AdminBaseController $data->validate(); $data->filter(); } catch (\Exception $e) { + /** @var Debugger $debugger */ + $debugger = $this->grav['debugger']; + $debugger->addException($e); + $this->admin->setMessage($e->getMessage(), 'error'); return false; @@ -528,6 +541,10 @@ class AdminController extends AdminBaseController 'notifications' => $notification_data ]; } catch (\Exception $e) { + /** @var Debugger $debugger */ + $debugger = $this->grav['debugger']; + $debugger->addException($e); + $json_response = ['status' => 'error', 'message' => $e->getMessage()]; } @@ -593,6 +610,10 @@ class AdminController extends AdminBaseController 'feed_data' => $feed_data ]; } catch (MalformedXmlException $e) { + /** @var Debugger $debugger */ + $debugger = $this->grav['debugger']; + $debugger->addException($e); + $json_response = ['status' => 'error', 'message' => $e->getMessage()]; } @@ -630,6 +651,10 @@ class AdminController extends AdminBaseController $id = $this->grav['uri']->param('id', 0); $backup = Backups::backup($id); } catch (\Exception $e) { + /** @var Debugger $debugger */ + $debugger = $this->grav['debugger']; + $debugger->addException($e); + $this->admin->json_response = [ 'status' => 'error', 'message' => $this->admin::translate('PLUGIN_ADMIN.AN_ERROR_OCCURRED') . '. ' . $e->getMessage() @@ -970,6 +995,10 @@ class AdminController extends AdminBaseController } } catch (\Exception $e) { + /** @var Debugger $debugger */ + $debugger = $this->grav['debugger']; + $debugger->addException($e); + $this->admin->json_response = ['status' => 'error', 'message' => $e->getMessage()]; return false; @@ -993,6 +1022,10 @@ class AdminController extends AdminBaseController $this->admin->checkPackagesCanBeInstalled($packages); $dependencies = $this->admin->getDependenciesNeededToInstall($packages); } catch (\Exception $e) { + /** @var Debugger $debugger */ + $debugger = $this->grav['debugger']; + $debugger->addException($e); + $this->admin->json_response = ['status' => 'error', 'message' => $e->getMessage()]; return false; @@ -1026,6 +1059,10 @@ class AdminController extends AdminBaseController try { $dependencies = $this->admin->getDependenciesNeededToInstall($packages); } catch (\Exception $e) { + /** @var Debugger $debugger */ + $debugger = $this->grav['debugger']; + $debugger->addException($e); + $this->admin->json_response = ['status' => 'error', 'message' => $e->getMessage()]; return false; @@ -1067,6 +1104,10 @@ class AdminController extends AdminBaseController try { $result = Gpm::install($package, ['theme' => $type === 'theme']); } catch (\Exception $e) { + /** @var Debugger $debugger */ + $debugger = $this->grav['debugger']; + $debugger->addException($e); + $msg = $e->getMessage(); $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; @@ -1134,6 +1175,10 @@ class AdminController extends AdminBaseController $dependencies = $this->admin->dependenciesThatCanBeRemovedWhenRemoving($package); $result = Gpm::uninstall($package, []); } catch (\Exception $e) { + /** @var Debugger $debugger */ + $debugger = $this->grav['debugger']; + $debugger->addException($e); + $json_response = ['status' => 'error', 'message' => $e->getMessage()]; $this->sendJsonResponse($json_response, 200); @@ -1368,6 +1413,10 @@ class AdminController extends AdminBaseController $obj->validate(); } catch (\Exception $e) { + /** @var Debugger $debugger */ + $debugger = $this->grav['debugger']; + $debugger->addException($e); + $this->admin->setMessage($e->getMessage(), 'error'); return false; @@ -1986,6 +2035,10 @@ class AdminController extends AdminBaseController $this->admin->json_response = ['status' => 'success', 'preview' => $html]; } catch (\Exception $e) { + /** @var Debugger $debugger */ + $debugger = $this->grav['debugger']; + $debugger->addException($e); + $this->admin->json_response = ['status' => 'error', 'message' => $e->getMessage()]; return false; diff --git a/classes/plugin/Controllers/AbstractController.php b/classes/plugin/Controllers/AbstractController.php index 0b1d8e8a..ff7a8ff9 100644 --- a/classes/plugin/Controllers/AbstractController.php +++ b/classes/plugin/Controllers/AbstractController.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace Grav\Plugin\Admin\Controllers; +use Grav\Common\Debugger; use Grav\Common\Grav; use Grav\Common\Inflector; use Grav\Common\Language\Language; @@ -103,6 +104,10 @@ abstract class AbstractController implements RequestHandlerInterface } } } catch (\Exception $e) { + /** @var Debugger $debugger */ + $debugger = $this->grav['debugger']; + $debugger->addException($e); + $response = $this->createErrorResponse($e); }