diff --git a/app/classes/agent.php b/app/classes/agent.php index dd60994..5bc9f73 100644 --- a/app/classes/agent.php +++ b/app/classes/agent.php @@ -286,7 +286,7 @@ class Agent { $base64Url_payload = $this->base64UrlEncode($payload); // signature - $signature = hash_hmac('sha256', $base64Url_header . "." . $base64Url_payload, $secret_key, true); + $signature = hash_hmac('sha256', $base64Url_header . "." . $base64Url_payload, $secret_key ?? '', true); $base64Url_signature = $this->base64UrlEncode($signature); // build the JWT diff --git a/app/pages/status.php b/app/pages/status.php index 77c9bbb..7ac45ff 100644 --- a/app/pages/status.php +++ b/app/pages/status.php @@ -13,7 +13,9 @@ include '../app/includes/messages.php'; include '../app/includes/messages-show.php'; require '../app/classes/agent.php'; +require '../app/classes/host.php'; $agentObject = new Agent($dbWeb); +$hostObject = new Host($dbWeb); include '../app/templates/status-server.php'; @@ -25,49 +27,58 @@ foreach ($platformsAll as $platform) { if ($response['error'] !== null) { $jilo_database_status = $response['error']; } else { - $jilo_database_status = 'OK'; + $jilo_database_status = 'Connected'; } include '../app/templates/status-platform.php'; - // fetch agent details for the current platform - $agentDetails = $agentObject->getAgentDetails($platform['id']); - foreach ($agentDetails as $agent) { - $agent_url = parse_url($agent['url']); - $agent_protocol = isset($agent_url['scheme']) ? $agent_url['scheme']: ''; - $agent_host = isset($agent_url['host']) ? $agent_url['host']: ''; - $agent_port = isset($agent_url['port']) ? $agent_url['port']: ''; + // fetch hosts for the current platform + $hostDetails = $hostObject->getHostDetails($platform['id']); + foreach ($hostDetails as $host) { + // fetch agent details for the current host + $agentDetails = $agentObject->getAgentDetails($host['id']); + foreach ($agentDetails as $agent) { + // we try to parse the URL to scheme:/host:port + $agent_url = parse_url($agent['url']); + $agent_protocol = isset($agent_url['scheme']) ? $agent_url['scheme']: ''; + // on failure we keep the full value for displaying purpose + $agent_host = isset($agent_url['host']) ? $agent_url['host']: $agent['url']; + $agent_port = isset($agent_url['port']) ? $agent_url['port']: ''; - // we get agent data to check availability - $agent_response = $agentObject->fetchAgent($agent['id'], true); - $agent_data = json_decode($agent_response); + // we get agent data to check availability + $agent_response = $agentObject->fetchAgent($agent['id'], true); + $agent_data = json_decode($agent_response); - // determine agent availability based on response data - if (json_last_error() === JSON_ERROR_NONE) { - $agent_availability = 'unknown'; - foreach ($agent_data as $key => $value) { - if ($key === 'error') { - $agent_availability = $value; - break; - } - if (preg_match('/_state$/', $key)) { - if ($value === 'error') { - $agent_availability = 'not running'; + // determine agent availability based on response data + if (json_last_error() === JSON_ERROR_NONE) { + $agent_availability = 'unknown'; + foreach ($agent_data as $key => $value) { + if ($key === 'error') { + $agent_availability = $value; break; } - if ($value === 'running') { - $agent_availability = 'running'; - break; + if (preg_match('/_state$/', $key)) { + if ($value === 'error') { + $agent_availability = 'not running'; + break; + } + if ($value === 'running') { + $agent_availability = 'running'; + break; + } } } + } else { + $agent_availability = 'json error'; } - } else { - $agent_availability = 'json error'; - } - include '../app/templates/status-agent.php'; + include '../app/templates/status-agent.php'; + } } - echo ''; - echo ''; + echo "\n\t\t\t\t\t\t\t\n"; } +echo "\n\t\t\t\t\t\t"; +echo "\n\t\t\t\t\t"; +echo "\n\t\t\t\t"; + ?> diff --git a/app/templates/page-footer.php b/app/templates/page-footer.php index b7fb1e2..9eb3d6d 100644 --- a/app/templates/page-footer.php +++ b/app/templates/page-footer.php @@ -12,14 +12,13 @@ - + - - diff --git a/app/templates/page-header.php b/app/templates/page-header.php index 453d14b..56a31a4 100644 --- a/app/templates/page-header.php +++ b/app/templates/page-header.php @@ -38,13 +38,14 @@ -
-
-
- - - - - -
+
+
+
+ + + + + +
+
diff --git a/app/templates/page-menu.php b/app/templates/page-menu.php index 36158ee..2741154 100644 --- a/app/templates/page-menu.php +++ b/app/templates/page-menu.php @@ -10,7 +10,7 @@
-
  • version 
  • +
  • version 
  • diff --git a/app/templates/status-agent.php b/app/templates/status-agent.php index b979e13..eac4a91 100644 --- a/app/templates/status-agent.php +++ b/app/templates/status-agent.php @@ -1,19 +1,19 @@ - -
    -
    - Jilo agent - - - : - - - - -
    -
    - Host: - Port: - Endpoint: -
    -
    + +
    +
    + Jilo agent + + + : + + + + +
    +
    + Host: + Port: ' . htmlspecialchars($agent_port) . '' : 'not set' ?> + Endpoint: +
    +
    diff --git a/app/templates/status-platform.php b/app/templates/status-platform.php index e74fa67..6e38bca 100644 --- a/app/templates/status-platform.php +++ b/app/templates/status-platform.php @@ -1,21 +1,20 @@ - -
    -
    -

    - - Jitsi platform "" - -

    - Remote Jitsi Meet installation with its database and agents here. -
    -
    -
    -
    - Jilo database: -
    - Status: - -
    -
    -
    + +
    +
    +

    + + Jitsi platform "" + +

    + Remote Jitsi Meet installation with its database and agents here. +
    +
    +
    + Jilo database: +
    + Status: + +
    +
    +
    diff --git a/app/templates/status-server.php b/app/templates/status-server.php index ef54c12..2d20737 100644 --- a/app/templates/status-server.php +++ b/app/templates/status-server.php @@ -1,29 +1,29 @@ - -
    -
    -
    -

    Jilo status

    -
    -
    - - -
    -
    -

    Jilo server

    - Responsible for periodic checks of remote agents and storing received data. -
    -
    -
    -
    - Jilo server: - - - + +
    +
    +
    +

    Jilo status

    - Host: - Port: - Endpoint: -
    -
    -
    +
    + + +
    +
    +

    Jilo server

    + Responsible for periodic checks of remote agents and storing received data. +
    +
    +
    +
    + Jilo server: + + + +
    + Host: + Port: + Endpoint: +
    +
    +