fixed server manager
This commit is contained in:
@@ -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)",
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user