aboutsummaryrefslogtreecommitdiffhomepage
path: root/routes/admin.php
diff options
context:
space:
mode:
Diffstat (limited to 'routes/admin.php')
-rw-r--r--routes/admin.php22
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