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