From aa01789b19de9de3e9a2ed3ff271a5bc6d894f14 Mon Sep 17 00:00:00 2001 From: Daniel Maya Date: Tue, 9 Apr 2019 17:45:21 +0200 Subject: [PATCH] Added public_view Former-commit-id: 15e3f67b28771eb56cd61bff56d1f09a4b3eec78 --- .../visual_console/public_console.php | 6 + .../operation/visual_console/public_view.php | 173 ++++++++++++++++++ 2 files changed, 179 insertions(+) create mode 100644 pandora_console/operation/visual_console/public_view.php diff --git a/pandora_console/operation/visual_console/public_console.php b/pandora_console/operation/visual_console/public_console.php index bc5b3d2a20..6411fcd9df 100755 --- a/pandora_console/operation/visual_console/public_console.php +++ b/pandora_console/operation/visual_console/public_console.php @@ -15,6 +15,12 @@ // The session is configured and started inside the config process. require_once '../../include/config.php'; +$legacy = (bool) get_parameter('legacy', false); +if ($legacy === false) { + include_once $config['homedir'].'/operation/visual_console/public_view.php'; + return; +} + // Set root on homedir, as defined in setup chdir($config['homedir']); diff --git a/pandora_console/operation/visual_console/public_view.php b/pandora_console/operation/visual_console/public_view.php new file mode 100644 index 0000000000..3202cc6dd1 --- /dev/null +++ b/pandora_console/operation/visual_console/public_view.php @@ -0,0 +1,173 @@ +'."\n"; +echo ''."\n"; +echo ''; + +global $vc_public_view; +$vc_public_view = true; +// This starts the page head. In the call back function, +// things from $page['head'] array will be processed into the head. +ob_start('ui_process_page_head'); +// Enterprise main. +enterprise_include('index.php'); + +require_once 'include/functions_visual_map.php'; + +$hash = get_parameter('hash'); +$id_layout = (int) get_parameter('id_layout'); +$graph_javascript = (bool) get_parameter('graph_javascript'); +$config['id_user'] = get_parameter('id_user'); + +$myhash = md5($config['dbpass'].$id_layout.$config['id_user']); + +// Check input hash. +if ($myhash != $hash) { + exit; +} + +$refr = (int) get_parameter('refr', 0); +$layout = db_get_row('tlayout', 'id', $id_layout); + +if (! $layout) { + db_pandora_audit('ACL Violation', 'Trying to access visual console without id layout'); + include $config['homedir'].'/general/noaccess.php'; + exit; +} + +if (!isset($config['pure'])) { + $config['pure'] = 0; +} + +use Models\VisualConsole\Container as VisualConsole; + +if ($layout) { + $id_group = $layout['id_group']; + $layout_name = $layout['name']; + + $visualConsole = VisualConsole::fromArray($layout); + $visualConsoleItems = VisualConsole::getItemsFromDB($id_layout); + + // TODO: Extract to a function. + $vcClientPath = 'include/visual-console-client'; + $dir = $config['homedir'].'/'.$vcClientPath; + if (is_dir($dir)) { + $dh = opendir($dir); + if ($dh) { + while (($file = readdir($dh)) !== false) { + if ($file === '.' || $file === '..') { + continue; + } + + preg_match('/.*.js$/', $file, $match, PREG_OFFSET_CAPTURE); + if (empty($match) === false) { + $url = ui_get_full_url(false, false, false, false).$vcClientPath.'/'.$match[0][0]; + echo ''; + continue; + } + + preg_match('/.*.css$/', $file, $match, PREG_OFFSET_CAPTURE); + if (empty($match) === false) { + $url = ui_get_full_url(false, false, false, false).$vcClientPath.'/'.$match[0][0]; + echo ''; + } + } + + closedir($dh); + } + } + + echo '
'; +} + +// Floating menu - Start. +echo '
'; + +echo ''; + +echo '
'; +// Floating menu - End +// QR code dialog. +echo ''; + +ui_require_jquery_file('countdown'); +ui_require_javascript_file('wz_jsgraphics'); +ui_require_javascript_file('pandora_visual_console'); +$ignored_params['refr'] = ''; +?> +