Files
webgui/emhttp/plugins/dynamix/include/DefaultPageLayout/GUIModeSessionFix.php
Eli Bosley 29b68a6b70 Update GUIModeSessionFix.php
Fix: this will fix a rare edge case that a function may be "defined twice", breaking the entire webGUI.
2025-05-21 16:22:34 -04:00

27 lines
839 B
PHP

<?php
/**
* This file is used to fix the session for the Unraid web interface when booted in GUI mode.
* This can be deleted if GUI mode authentication is enabled.
*/
function is_localhost_gui()
{
// Use the peer IP, not the Host header which can be spoofed
return $_SERVER['REMOTE_ADDR'] === '127.0.0.1' || $_SERVER['REMOTE_ADDR'] === '::1';
}
function is_good_session_gui()
{
return isset($_SESSION) && isset($_SESSION['unraid_user']) && isset($_SESSION['unraid_login']);
}
if (is_localhost_gui() && !is_good_session_gui()) {
if (session_status() === PHP_SESSION_ACTIVE) {
session_destroy();
}
session_start();
$_SESSION['unraid_login'] = time();
$_SESSION['unraid_user'] = 'root';
session_write_close();
my_logger("Unraid GUI-boot: created root session for localhost request.");
}
?>