$mainmenu) { if (isset($mainmenu["name"]) && $mainmenu["name"] == "") { unset($customInterfaceData['mainmenu'][$key]); } } } $interfaceData = array_replace_recursive($interfaceData, $customInterfaceData); //Overwrite auth methods if they exist in custom interface data if(isset($customInterfaceData['settings']['userDefaults']['firstFactorAuthMethods'])){ $interfaceData['settings']['userDefaults']['firstFactorAuthMethods'] = $customInterfaceData['settings']['userDefaults']['firstFactorAuthMethods']; } if(isset($customInterfaceData['settings']['userDefaults']['secondFactorAuthMethods'])){ $interfaceData['settings']['userDefaults']['secondFactorAuthMethods'] = $customInterfaceData['settings']['userDefaults']['secondFactorAuthMethods']; } } if (file_exists("manifest.json")) { $manifestJson = file_get_contents("manifest.json"); $manifest = json_decode($manifestJson, true); $interfaceData["manifest"] = $manifest; } function userSettings() { global $interfaceData; global $user; $interfaceData["options"]["twofaEnabled"] = (in_array('webauthn', $user->getSecondFactorAuthMethods(), true) ? true : false); $interfaceData["options"]["userHasTwofaRegistrations"] = ($user->hasWebAuthn() ? true : false); $interfaceData["options"]["theme"] = ($user->getSettings()["theme"] ?? $interfaceData["settings"]["userDefaults"]["theme"]); $interfaceData["options"]["highlight"] = ($user->getSettings()["highlight"] ?? $interfaceData["settings"]["userDefaults"]["highlight"]); $interfaceData["options"]["language"] = ($user->getSettings()["language"] ?? $interfaceData["settings"]["userDefaults"]["language"]); $interfaceData["options"]["startPath"] = ($user->getSettings()["startPath"] ?? $interfaceData["settings"]["userDefaults"]["startPath"]); if (isset($_GET['viewportScale']) && is_float(floatval($_GET['viewportScale']))) { $interfaceData["options"]["viewportScale"] = floatval($_GET['viewportScale']); } else { $interfaceData["options"]["viewportScale"] = ($user->getSettings()["viewportScale"] ?? $interfaceData["settings"]["userDefaults"]["viewportScale"]); } if (isset($_GET['scrollbarScale']) && is_float(floatval($_GET['scrollbarScale']))) { $interfaceData["options"]["scrollbarScale"] = floatval($_GET['scrollbarScale']); } else { $interfaceData["options"]["scrollbarScale"] = ($user->getSettings()["scrollbarScale"] ?? $interfaceData["settings"]["userDefaults"]["scrollbarScale"]); } $interfaceData["options"]["roleProfileDefinable"] = ($user->getSettings()["roleProfileDefinable"] ?? $interfaceData["settings"]["userDefaults"]["roleProfileDefinable"]); $interfaceData["options"]["languageChangeable"] = ($user->getSettings()["languageChangeable"] ?? $interfaceData["settings"]["userDefaults"]["languageChangeable"]); $interfaceData["options"]["twofaChangeable"] = ($user->getSettings()["twofaChangeable"] ?? $interfaceData["settings"]["userDefaults"]["twofaChangeable"]); $interfaceData["options"]["disabledMainmenus"] = ($user->getSettings()["disabledMainmenus"] ?? $interfaceData["settings"]["userDefaults"]["disabledMainmenus"]); $interfaceData["options"]["disabledMenus"] = ($user->getSettings()["disabledMenus"] ?? $interfaceData["settings"]["userDefaults"]["disabledMenus"]); $interfaceData["options"]["showFloor"] = ($user->getSettings()["showFloor"] ?? $interfaceData["settings"]["userDefaults"]["showFloor"]); $interfaceData["options"]["consoleLog"] = ( ((isset($_GET['console_log']) && ($user->getSettings()["consoleLog"] ?? '') == "url") || ($user->getSettings()["consoleLog"] ?? $interfaceData["settings"]["userDefaults"]["consoleLog"]) == true ) ? true : false); $interfaceData["options"]["websocket_url"] = $interfaceData["settings"]["homegear"]["url"]; $interfaceData["options"]["websocket_port"] = $interfaceData["settings"]["homegear"]["port"]; $interfaceData["options"]["websocket_security_ssl"] = $interfaceData["settings"]["homegear"]["ssl"] ?? "location.protocol"; $interfaceData["options"]["elementOrder"] = ($user->getSettings()["elementOrder"] ?? $interfaceData["settings"]["userDefaults"]["elementOrder"]); } if (!is_array($interfaceData)) die("Invalid JSON file!");