From 01dd6a10f5e42de512e1ee78c4d9623ad27ad13c Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Fri, 1 May 2026 18:46:08 +0000 Subject: [PATCH] update migrations --- migrate.php | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/migrate.php b/migrate.php index 49e556c..c1063bf 100644 --- a/migrate.php +++ b/migrate.php @@ -15,17 +15,49 @@ function migrationOutput(string $message = ''): void echo $message . PHP_EOL; } +function configureMigrationSession(): void +{ + if (PHP_SAPI === 'cli') { + return; + } + + $sessionsDir = __DIR__ . '/sessions'; + if (!is_dir($sessionsDir)) { + @mkdir($sessionsDir, 0777, true); + } + + if (is_writable($sessionsDir)) { + session_save_path($sessionsDir); + } + + if ( + (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') + || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') + ) { + session_set_cookie_params([ + 'lifetime' => 0, + 'path' => '/', + 'secure' => true, + 'httponly' => true, + 'samesite' => 'None', + ]); + } +} + function canRunMigrations(): bool { if (PHP_SAPI === 'cli') { return true; } + configureMigrationSession(); + if (session_status() === PHP_SESSION_NONE) { @session_start(); } - if (($_SESSION['user_role_name'] ?? '') === 'Administrator') { + $roleName = (string) ($_SESSION['user_role_name'] ?? ''); + if (strcasecmp($roleName, 'Administrator') === 0 || (int) ($_SESSION['user_id'] ?? 0) === 1) { return true; }