Initial commit

This commit is contained in:
2026-01-14 23:04:53 +01:00
parent 2f7d11b7d2
commit d9b4c73baa
25 changed files with 3742 additions and 30 deletions

View File

@@ -14,8 +14,9 @@ class DatabaseController extends Controller
{
parent::__construct();
// Only logged-in users can access the database manager
// Only admin users can access the database manager
Auth::checkAuthentication();
Auth::checkAdminAuthentication();
}
/**
@@ -23,7 +24,7 @@ class DatabaseController extends Controller
*/
public function index()
{
$this->View->render('database/index', array(
$this->View->renderDbManager('database/index', array(
'databases' => DatabaseModel::getAllDatabases(),
'current_db' => Config::get('DB_NAME')
));
@@ -39,7 +40,7 @@ class DatabaseController extends Controller
$database_name = Config::get('DB_NAME');
}
$this->View->render('database/show', array(
$this->View->renderDbManager('database/show', array(
'tables' => DatabaseModel::getTablesInDatabase($database_name),
'database_name' => $database_name,
'table_info' => DatabaseModel::getTableDetails($database_name)
@@ -133,12 +134,24 @@ class DatabaseController extends Controller
]);
}
/**
* Export database as raw SQL text
* @param string $database_name
*/
public function export($database_name)
{
header('Content-Type: text/plain; charset=utf-8');
header('Content-Disposition: inline; filename="' . $database_name . '.sql"');
echo DatabaseModel::exportDatabase($database_name);
}
/**
* Check if the request is an AJAX request
*/
private function isAjaxRequest()
{
return isset($_SERVER['HTTP_X_REQUESTED_WITH']) &&
return isset($_SERVER['HTTP_X_REQUESTED_WITH']) &&
strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest';
}
}