X-Git-Url: https://jfr.im/git/irc/unrealircd/unrealircd-webpanel.git/blobdiff_plain/062258ffca3e14131ac530492d36ea0b0430602f..3647054883c49ae06ddc04071ef8b2c7978e0453:/common.php diff --git a/common.php b/common.php index d134290..dced580 100644 --- a/common.php +++ b/common.php @@ -1,14 +1,66 @@ ". + "If you already installed PHP8 but are still seeing this error, then it means ". + "apache/nginx/.. is loading an older PHP version. Eg. on Debian/Ubuntu you need ". + "apt-get install libapache2-mod-php8.2 (or a similar version) and ". + "apt-get remove libapache2-mod-php7.4 (or a similar version). ". + "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"); require_once UPATH . '/vendor/autoload.php'; +require_once UPATH . "/Classes/class-cmodes.php"; require_once UPATH . "/cfg/defines.php"; -require_once UPATH . "/connection.php"; require_once UPATH . "/misc/strings.php"; +require_once UPATH . "/misc/channel-lookup-misc.php"; require_once UPATH . "/misc/user-lookup-misc.php"; require_once UPATH . "/misc/server-lookup-misc.php"; require_once UPATH . "/misc/ip-whois-misc.php"; @@ -18,7 +70,7 @@ require_once UPATH . "/Classes/class-rpc.php"; require_once UPATH . "/Classes/class-paneluser.php"; require_once UPATH . "/plugins.php"; -$pages = Array( +$pages = [ "Overview" => "", "Users" => "users", "Channels" => "channels", @@ -33,17 +85,23 @@ $pages = Array( "IP WHOIS" => "tools/ip-whois.php", ], "Settings" => [ - "Panel Users" => "settings", "Plugins" => "settings/plugins.php", ], - "News" => "news.php", -); -if (unreal_get_current_user()) + "News" => "news.php", +]; + +if (is_auth_provided()) { - $pages["Logout"] = "login/?logout=true"; -} + $pages["Settings"]["Panel Access"] = "settings"; + $user = unreal_get_current_user(); + if ($user) + { + /* Add logout page, if logged in */ + $pages["Logout"] = "login/?logout=true"; + } +} Hook::run(HOOKTYPE_NAVBAR, $pages); /* Example to add new menu item: