X-Git-Url: https://jfr.im/git/irc/unrealircd/unrealircd-webpanel.git/blobdiff_plain/71b40b1901276edbd6013e350beb40a0aba90d81..6210ec482efa44e152fb8bc61d4dd8f529687cb9:/common.php diff --git a/common.php b/common.php index 08662f1..2caa5ca 100644 --- a/common.php +++ b/common.php @@ -8,8 +8,51 @@ if (version_compare(PHP_VERSION, '8.0.0', '<')) "You may also need to choose again the PHP module to load in apache via a2enmod php8.2"); define('UPATH', dirname(__FILE__)); -require_once UPATH . "/config.php"; -if (!defined('BASE_URL')) die("You need to define BASE_URL in config.php (see config.php.sample for documentation)"); + +function get_config($setting) +{ + GLOBAL $config; + + $item = $config; + foreach(explode("::", $setting) as $x) + { + if (isset($item[$x])) + $item = $item[$x]; + else + return NULL; + } + return $item; +} + +function page_requires_no_config() +{ + if (str_ends_with($_SERVER['SCRIPT_FILENAME'],"install.php") || + str_ends_with($_SERVER['SCRIPT_FILENAME'],"test_connection.php")) + { + return TRUE; + } + return FALSE; +} + + +/* Load config defaults */ +$config = Array(); +require_once UPATH . "/config/config.defaults.php"; + +if (!file_exists(UPATH."/config/config.php") && file_exists(UPATH."/config.php")) +{ + require_once UPATH . "/config.php"; + require_once UPATH . "/config/compat.php"; +} else +if (page_requires_no_config()) +{ + /* Allow empty conf */ +} else +{ + require_once UPATH . "/config/config.php"; +} + +if (!get_config("base_url")) die("You need to define the base_url in config/config.php"); require_once "Classes/class-hook.php"; if (!is_dir(UPATH . "/vendor")) die("The vendor/ directory is missing. Most likely the admin forgot to run 'composer install'\n"); @@ -32,20 +75,25 @@ $pages = [ "Users" => "users", "Channels" => "channels", "Servers" => "servers", - "Server Bans" => "server-bans", - "Name Bans" => "server-bans/name-bans.php", - "Ban Exceptions" => "server-bans/ban-exceptions.php", + "Server Bans" => [ + "Server Bans" => "server-bans", + "Name Bans" => "server-bans/name-bans.php", + "Ban Exceptions" => "server-bans/ban-exceptions.php" + ], "Spamfilter" => "spamfilter.php", - "IP WHOIS" => "tools/ip-whois.php", - "Network Checkup" => "tools/checkup.php", - "Plugins" => "settings/plugins.php", + "Tools" => [ + "IP WHOIS" => "tools/ip-whois.php", + ], + "Settings" => [ + "Plugins" => "settings/plugins.php", + ], "News" => "news.php", ]; if (is_auth_provided()) { - $pages["Panel Access"] = "settings"; + $pages["Settings"]["Accounts"] = "settings"; $user = unreal_get_current_user(); if ($user)