0) { ConfigHolder::add('SLX_BROWSER_RELOAD_SECS', $data['reload-minutes'] * 60); } ConfigHolder::add('SLX_BROWSER_URL', $data['url']); // Mangle non-upgraded panels if (empty($data['blacklist']) && $data['whitelist'] === '*' && !empty($data['urllist'])) { if ($data['iswhitelist']) { $data['whitelist'] = str_replace(' ', "\n", $data['urllist']); } else { $data['blacklist'] = str_replace(' ', "\n", $data['urllist']); } } ConfigHolder::add('SLX_BROWSER_WHITELIST', self::mangleList($data['whitelist'])); ConfigHolder::add('SLX_BROWSER_BLACKLIST', self::mangleList($data['blacklist'])); // Additionally, update runmode "isclient" flag depending on whether split-login is allowed or not if (isset($data['split-login']) && $data['split-login']) { RunMode::updateClientFlag($machineUuid, 'locationinfo', true); } else { // Automatic login RunMode::updateClientFlag($machineUuid, 'locationinfo', false); ConfigHolder::add('SLX_AUTOLOGIN', 'ON', 1000); ConfigHolder::add('SLX_ADDONS', '', 1000); } if (!empty($data['browser'])) { if ($data['browser'] === 'chromium') { $browser = 'chromium chrome'; } else { $browser = 'slxbrowser slx-browser'; $data['interactive'] = (isset($data['split-login']) && $data['split-login']); } ConfigHolder::add('SLX_BROWSER', $browser, 1000); } if (isset($data['interactive']) && $data['interactive']) { ConfigHolder::add('SLX_BROWSER_INTERACTIVE', '1', 1000); } if (!empty($data['bookmarks'])) { ConfigHolder::add('SLX_BROWSER_BOOKMARKS', $data['bookmarks'], 1000); } if ($data['allow-tty'] === 'yes' || $data['allow-tty'] === 'no') { ConfigHolder::add('SLX_TTY_SWITCH', $data['allow-tty'], 1000); } if (($data['zoom-factor'] ?? 100) != 100) { ConfigHolder::add('SLX_BROWSER_ZOOM', $data['zoom-factor']); } } else { // Not URL panel ConfigHolder::add('SLX_BROWSER_URL', 'http://' . $_SERVER['SERVER_ADDR'] . '/panel/' . $panelUuid); ConfigHolder::add('SLX_AUTOLOGIN', 'ON', 1000); ConfigHolder::add('SLX_ADDONS', '', 1000); } $al = ConfigHolder::get('SLX_AUTOLOGIN'); if (!empty($al) && $al !== 'OFF' && $al != 0) { ConfigHolder::add('SLX_SHUTDOWN_TIMEOUT', '', 1000); } ConfigHolder::add('SLX_LOGOUT_TIMEOUT', '', 1000); ConfigHolder::add('SLX_SCREEN_STANDBY_TIMEOUT', '', 1000); ConfigHolder::add('SLX_SYSTEM_STANDBY_TIMEOUT', '', 1000); } /** * Turn multiline list into space separated list, removing any * comments (starting with #) */ private static function mangleList(string $list): string { return preg_replace('/\s*(#[^\n]*)?(\n|$)/', ' ', $list); } }