$config['secrets']['key'] = rtrim(base64_encode(sodium_crypto_aead_xchacha20poly1305_ietf_keygen()),'=');
}
+function get_active_rpc_server()
+{
+ $servers = get_config("unrealircd");
+ if (empty($servers))
+ return;
+ // TODO: make user able to override this - either in user or in session
+
+ foreach ($servers as $displayname=>$e)
+ {
+ if (isset($e["default"]) && $e["default"])
+ return $displayname;
+ }
+ return null;
+}
+
+/* Set a new default RPC server */
+function set_default_rpc_server($name)
+{
+ GLOBAL $config;
+
+ /* Mark all other servers as non-default */
+ foreach ($config["unrealircd"] as $n=>$e)
+ if ($n != $name)
+ $config["unrealircd"][$n]["default"] = false;
+ $config["unrealircd"][$name]["default"] = true;
+}
+
+/* Ensure at least 1 server is default */
+function set_at_least_one_default_rpc_server()
+{
+ GLOBAL $config;
+
+ $has_default_rpc_server = false;
+ foreach ($config["unrealircd"] as $name=>$e)
+ if ($e["default"])
+ $has_default_rpc_server = true;
+ if (!$has_default_rpc_server)
+ {
+ /* Make first server in the list the default */
+ foreach ($config["unrealircd"] as $name=>$e)
+ {
+ $config["unrealircd"][$name]["default"] = true;
+ break;
+ }
+ }
+}
+
function secret_encrypt(string $text)
{
GLOBAL $config;
write_config('unrealircd');
}
}
+ /* $config["unrealircd"] should be an array now.. */
+ if (isset($config['unrealircd']) && isset($config['unrealircd']['rpc_password']))
+ {
+ $config["unrealircd"]["default"] = true;
+ $config['unrealircd'] = [
+ "Primary" => $config['unrealircd']];
+ write_config("unrealircd");
+ }
$version = get_version();
if (!isset($config['webpanel_version']))
}
$pages = [
- "Overview" => "",
- "Users" => "users",
- "Channels" => "channels",
- "Servers" => "servers",
+ "Overview" => ["url"=>""],
+ "Users" => ["url"=>"users"],
+ "Channels" => ["url"=>"channels"],
+ "Servers" => ["url"=>"servers"],
"Server Bans" => [
- "Server Bans" => "server-bans",
- "Name Bans" => "server-bans/name-bans.php",
- "Ban Exceptions" => "server-bans/ban-exceptions.php"
+ "Server Bans" => ["url" => "server-bans"],
+ "Name Bans" => ["url" => "server-bans/name-bans.php"],
+ "Ban Exceptions" => ["url" => "server-bans/ban-exceptions.php"],
],
- "Spamfilter" => "spamfilter.php",
+ "Spamfilter" => ["url" => "spamfilter.php"],
"Tools" => [
- "IP WHOIS" => "tools/ip-whois.php",
+ "IP WHOIS" => ["url" => "tools/ip-whois.php"],
],
"Settings" => [
- "Plugins" => "settings/plugins.php",
+ "Plugins" => ["url" => "settings/plugins.php"],
+ "RPC Servers" => ["url" => "settings/rpc-servers.php"],
],
- "News" => "news.php",
+ "News" => ["url" => "news.php"],
];
if (!panel_start_session())
die;
}
} else {
- $pages["Settings"]["Accounts"] = "settings";
+ $pages["Settings"]["Accounts"] = ["url" => "settings"];
if (current_user_can(PERMISSION_MANAGE_USERS))
- $pages["Settings"]["Role Editor"] = "settings/user-role-edit.php";
+ $pages["Settings"]["Role Editor"] = ["url"=>"settings/user-role-edit.php"];
$user = unreal_get_current_user();
if ($user)
{
/* Add logout page, if logged in */
- $pages["Logout"] = "login/?logout=true";
+ $pages["Logout"] = ["url"=>"login/?logout=true"];
}
}