mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-27 15:54:29 +02:00
Added a token expiration check to warn users they should request another
This commit is contained in:
parent
82bd565f5d
commit
2b88b58448
@ -135,6 +135,15 @@ echo '<input type="button" id="run-ehorus-client" class="sub next" value="' . __
|
|||||||
echo '</td>';
|
echo '</td>';
|
||||||
echo '</tr></table>';
|
echo '</tr></table>';
|
||||||
|
|
||||||
|
echo '<div id="expired_message" style="display: none;">';
|
||||||
|
ui_print_error_message(
|
||||||
|
__('The connection was lost and the authorization token was expired')
|
||||||
|
. '. ' .
|
||||||
|
__('Reload the page to request a new authorization token')
|
||||||
|
. '. '
|
||||||
|
);
|
||||||
|
echo '</div>';
|
||||||
|
|
||||||
echo '<div id="ehorus-client-iframe"></div>';
|
echo '<div id="ehorus-client-iframe"></div>';
|
||||||
|
|
||||||
$query_data = array(
|
$query_data = array(
|
||||||
@ -142,6 +151,7 @@ $query_data = array(
|
|||||||
'hostname' => (string) $agent_data['serverAddress'],
|
'hostname' => (string) $agent_data['serverAddress'],
|
||||||
'port' => (int) $agent_data['serverPort'],
|
'port' => (int) $agent_data['serverPort'],
|
||||||
'token' => (string) $response_auth['token'],
|
'token' => (string) $response_auth['token'],
|
||||||
|
'expiration' => (int) $response_auth['exp'],
|
||||||
'is_busy' => (bool) $agent_data['isBusy'],
|
'is_busy' => (bool) $agent_data['isBusy'],
|
||||||
'last_connection' => (int) $agent_data['lastConnection'],
|
'last_connection' => (int) $agent_data['lastConnection'],
|
||||||
'section' => $client_tab
|
'section' => $client_tab
|
||||||
@ -200,7 +210,6 @@ $client_url = $config['homeurl'] . 'operation/agentes/ehorus_client.php?' . $que
|
|||||||
event.source !== iframe.contentWindow) {
|
event.source !== iframe.contentWindow) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
console.log('message from iframe', event.data);
|
|
||||||
if (typeof actionHandlers === 'undefined') return;
|
if (typeof actionHandlers === 'undefined') return;
|
||||||
|
|
||||||
if (event.data.action in actionHandlers) {
|
if (event.data.action in actionHandlers) {
|
||||||
@ -231,6 +240,17 @@ $client_url = $config['homeurl'] . 'operation/agentes/ehorus_client.php?' . $que
|
|||||||
$('a.tab_processes').click(handleTabClick('processes', messageToIframe));
|
$('a.tab_processes').click(handleTabClick('processes', messageToIframe));
|
||||||
$('a.tab_services').click(handleTabClick('services', messageToIframe));
|
$('a.tab_services').click(handleTabClick('services', messageToIframe));
|
||||||
$('a.tab_files').click(handleTabClick('files', messageToIframe));
|
$('a.tab_files').click(handleTabClick('files', messageToIframe));
|
||||||
|
},
|
||||||
|
expired: function () {
|
||||||
|
$(iframe).remove();
|
||||||
|
$('a.ehorus_tab').unbind('click');
|
||||||
|
$('a.tab_terminal').unbind('click');
|
||||||
|
$('a.tab_display').unbind('click');
|
||||||
|
$('a.tab_processes').unbind('click');
|
||||||
|
$('a.tab_services').unbind('click');
|
||||||
|
$('a.tab_files').unbind('click');
|
||||||
|
iframe = null;
|
||||||
|
$('div#expired_message').show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,6 +28,7 @@ $agent_id = (string) get_parameter_get('agent_id');
|
|||||||
$hostname = (string) get_parameter_get('hostname');
|
$hostname = (string) get_parameter_get('hostname');
|
||||||
$port = (int) get_parameter_get('port');
|
$port = (int) get_parameter_get('port');
|
||||||
$token = (string) get_parameter_get('token');
|
$token = (string) get_parameter_get('token');
|
||||||
|
$expiration = (int) get_parameter_get('expiration');
|
||||||
$is_busy = (bool) get_parameter_get('is_busy');
|
$is_busy = (bool) get_parameter_get('is_busy');
|
||||||
$last_connection = (int) get_parameter_get('last_connection');
|
$last_connection = (int) get_parameter_get('last_connection');
|
||||||
$section = (string) get_parameter_get('section');
|
$section = (string) get_parameter_get('section');
|
||||||
@ -92,7 +93,6 @@ $section = (string) get_parameter_get('section');
|
|||||||
event.source !== window.parent) {
|
event.source !== window.parent) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
console.log('message from parent', event.data);
|
|
||||||
if (typeof actionHandlers === 'undefined') return;
|
if (typeof actionHandlers === 'undefined') return;
|
||||||
|
|
||||||
if (event.data.action in actionHandlers) {
|
if (event.data.action in actionHandlers) {
|
||||||
@ -102,6 +102,7 @@ $section = (string) get_parameter_get('section');
|
|||||||
}
|
}
|
||||||
|
|
||||||
window.onload = function () {
|
window.onload = function () {
|
||||||
|
var expiration = <?php echo $expiration; ?>;
|
||||||
// Start client
|
// Start client
|
||||||
var ehorusContainer = document.getElementById('ehorus-client-container');
|
var ehorusContainer = document.getElementById('ehorus-client-container');
|
||||||
var eHorus = runClient(ehorusContainer, {
|
var eHorus = runClient(ehorusContainer, {
|
||||||
@ -115,11 +116,21 @@ $section = (string) get_parameter_get('section');
|
|||||||
section: '<?php echo $section; ?>'
|
section: '<?php echo $section; ?>'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
eHorus.remote.onClose(function () {
|
||||||
|
if (expiration && expiration < Date.now() / 1000) {
|
||||||
|
eHorus.remote.close();
|
||||||
|
// Send expired message
|
||||||
|
messageToParent({
|
||||||
|
action: 'expired',
|
||||||
|
payload: {}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// Listen for messages
|
// Listen for messages
|
||||||
var actionHandlers = {
|
var actionHandlers = {
|
||||||
change_section: function (payload) {
|
change_section: function (payload) {
|
||||||
eHorus.changeSection(payload.section);
|
eHorus.changeSection(payload.section);
|
||||||
console.log('Changing section', payload.section);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
window.addEventListener('message', handleMessage(actionHandlers));
|
window.addEventListener('message', handleMessage(actionHandlers));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user