From 07d1f1236c11b4261ab2b954a91278711a24901c Mon Sep 17 00:00:00 2001 From: winter Date: Sun, 11 May 2025 20:25:11 +0100 Subject: sql console in admin menu + other misc --- routes/admin.php | 22 ++++++++++++++++++++++ routes/auth.php | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) (limited to 'routes') 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 @@ 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"); } -- cgit v1.3