aboutsummaryrefslogtreecommitdiffhomepage
path: root/routes
diff options
context:
space:
mode:
Diffstat (limited to 'routes')
-rw-r--r--routes/admin.php22
-rw-r--r--routes/auth.php2
2 files changed, 23 insertions, 1 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
diff --git a/routes/auth.php b/routes/auth.php
index b03ee52..f18d4e7 100644
--- a/routes/auth.php
+++ b/routes/auth.php
@@ -20,7 +20,7 @@ Router::getInstance()->mount('/auth/main', function (array $args) {
throw new BadRequest('you need to specify the `target` GET parameter');
}
$domain = hostname_from_uri($_GET['target']);
- $instance = Instance::findByHostname($domain);
+ $instance = Instance::findByHostname($domain, forceRefetch: true);
if ($instance == null) {
throw new RuntimeException("i can't find your instance information, sorry");
}