fixed server manager

This commit is contained in:
Kevin Feiler
2025-10-16 03:47:55 +02:00
parent e9e48ff314
commit c17188dba6

View File

@@ -34,7 +34,10 @@ function keyhelpmanager_ConfigOptions()
"template" => [
"FriendlyName" => "KeyHelp Template",
"Type" => "dropdown",
"Options" => _keyhelpmanager_GetTemplates(),
"Options" => [
"" => "-- Select Template --",
"manual" => "Manual Configuration (No Template)",
],
"Description" => "Select a KeyHelp template/plan for this product",
"Loader" => "keyhelpmanager_TemplateLoader",
],
@@ -702,34 +705,57 @@ function _keyhelpmanager_CalculatePercent(int $used, int $limit): float
function _keyhelpmanager_GetTemplates($params = null)
{
try {
// Return default options if no params provided
if (!$params || !isset($params["serverid"]) || empty($params["serverid"])) {
return [
"" => "-- Select Template --",
"manual" => "Manual Configuration (No Template)",
];
}
// Get server configuration from module settings or server params
if ($params && isset($params["serverid"])) {
$server = Capsule::table("tblservers")
->where("id", $params["serverid"])
->first();
if (!$server) {
return ["" => "-- No Server Selected --"];
return [
"" => "-- Select Template --",
"manual" => "Manual Configuration (No Template)",
];
}
// Check if required fields are present
if (empty($server->hostname) || empty($server->password)) {
return [
"" => "-- Select Template --",
"manual" => "Manual Configuration (No Template)",
];
}
// Try to decrypt password, return default options if it fails
try {
$apiKey = decrypt($server->password);
if (empty($apiKey)) {
return [
"" => "-- Select Template --",
"manual" => "Manual Configuration (No Template)",
];
}
} catch (\Exception $e) {
return [
"" => "-- Select Template --",
"manual" => "Manual Configuration (No Template)",
];
}
$apiParams = [
"serverhostname" => $server->hostname,
"serveraccesshash" => decrypt($server->accesshash),
"serversecure" => $server->secure,
"serveraccesshash" => $apiKey,
"serversecure" => $server->secure ?? "on",
"serverhttpprefix" => "",
];
// Get additional config options
$configOptions = Capsule::table("tblservers")
->where("id", $params["serverid"])
->first();
if ($configOptions && isset($configOptions->username)) {
$apiParams["serverusername"] = $configOptions->username;
}
} else {
return ["" => "-- Configure Product First --"];
}
// Fetch templates/plans from KeyHelp
// Note: This endpoint may not exist in all KeyHelp versions
$result = _keyhelpmanager_APIRequest($apiParams, "/plans", "GET");
@@ -783,11 +809,9 @@ function _keyhelpmanager_GetTemplates($params = null)
return $templates;
} catch (\Exception $e) {
logActivity(
"KeyHelpManager: Get templates failed - " . $e->getMessage(),
);
// Silently return default options on error to prevent page crashes
return [
"" => "-- No Template (Error) --",
"" => "-- Select Template --",
"manual" => "Manual Configuration (No Template)",
];
}