diff options
Diffstat (limited to 'routes/admin.php')
| -rw-r--r-- | routes/admin.php | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/routes/admin.php b/routes/admin.php index 82981c9..20c6ee5 100644 --- a/routes/admin.php +++ b/routes/admin.php @@ -1,5 +1,6 @@ <?php +use Digitigrade\Db; use Digitigrade\GlobalSettings; use Digitigrade\HttpResponseStatus\NotFound; use Digitigrade\HttpResponseStatus\TemporaryRedirect; @@ -58,4 +59,25 @@ Router::getInstance()->mount('/fragment/admin/plugins/download', function (array $success = true; } render_template('admin/plugin_download_form', ['success' => $success]); +}); + +Router::getInstance()->mount('/admin/sql-console', function (array $args) { + UserAccount::requireByCurrentSession()->requireAdmin(); + render_template('admin/sql_console_page'); +}); + +Router::getInstance()->mount('/fragment/admin/sql-console/query', function (array $args) { + UserAccount::requireByCurrentSession()->requireAdmin(); + $results = null; + $error = null; + if (isset($_POST['query'])) { + try { + $pdo = Db::getInstance()->getPdo(); + $query = $pdo->query($_POST['query'], PDO::FETCH_ASSOC); + $results = $query->fetchAll(); + } catch (\PDOException $e) { + $error = $e; + } + } + render_template('admin/sql_console_form', ['results' => $results, 'error' => $error]); });
\ No newline at end of file |
