Merge branch 'develop' into ent-10362-15039-fallo-en-groups-items-de-consolas-visuales
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-agent-unix
|
||||
Version: 7.0NG.771
|
||||
Version: 7.0NG.771-230517
|
||||
Architecture: all
|
||||
Priority: optional
|
||||
Section: admin
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
pandora_version="7.0NG.771"
|
||||
pandora_version="7.0NG.771-230517"
|
||||
|
||||
echo "Test if you has the tools for to make the packages."
|
||||
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null
|
||||
|
|
|
@ -1023,7 +1023,7 @@ my $Sem = undef;
|
|||
my $ThreadSem = undef;
|
||||
|
||||
use constant AGENT_VERSION => '7.0NG.771';
|
||||
use constant AGENT_BUILD => '230509';
|
||||
use constant AGENT_BUILD => '230517';
|
||||
|
||||
# Agent log default file size maximum and instances
|
||||
use constant DEFAULT_MAX_LOG_SIZE => 600000;
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
%global __os_install_post %{nil}
|
||||
%define name pandorafms_agent_linux
|
||||
%define version 7.0NG.771
|
||||
%define release 1
|
||||
%define release 230517
|
||||
|
||||
Summary: Pandora FMS Linux agent, PERL version
|
||||
Name: %{name}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
%global __os_install_post %{nil}
|
||||
%define name pandorafms_agent_linux
|
||||
%define version 7.0NG.771
|
||||
%define release 1
|
||||
%define release 230517
|
||||
|
||||
Summary: Pandora FMS Linux agent, PERL version
|
||||
Name: %{name}
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
# **********************************************************************
|
||||
|
||||
PI_VERSION="7.0NG.771"
|
||||
PI_BUILD="230509"
|
||||
PI_BUILD="230517"
|
||||
OS_NAME=`uname -s`
|
||||
|
||||
FORCE=0
|
||||
|
|
|
@ -186,7 +186,7 @@ UpgradeApplicationID
|
|||
{}
|
||||
|
||||
Version
|
||||
{230509}
|
||||
{230517}
|
||||
|
||||
ViewReadme
|
||||
{Yes}
|
||||
|
@ -2387,7 +2387,7 @@ Windows,BuildSeparateArchives
|
|||
{No}
|
||||
|
||||
Windows,Executable
|
||||
{<%AppName%>-Setup<%Ext%>}
|
||||
{<%AppName%>-<%Version%>-Setup<%Ext%>}
|
||||
|
||||
Windows,FileDescription
|
||||
{<%AppName%> <%Version%> Setup}
|
||||
|
|
|
@ -30,7 +30,7 @@ using namespace Pandora;
|
|||
using namespace Pandora_Strutils;
|
||||
|
||||
#define PATH_SIZE _MAX_PATH+1
|
||||
#define PANDORA_VERSION ("7.0NG.771 Build 230509")
|
||||
#define PANDORA_VERSION ("7.0NG.771 Build 230517")
|
||||
|
||||
string pandora_path;
|
||||
string pandora_dir;
|
||||
|
|
|
@ -11,7 +11,7 @@ BEGIN
|
|||
VALUE "LegalCopyright", "Artica ST"
|
||||
VALUE "OriginalFilename", "PandoraAgent.exe"
|
||||
VALUE "ProductName", "Pandora FMS Windows Agent"
|
||||
VALUE "ProductVersion", "(7.0NG.771(Build 230509))"
|
||||
VALUE "ProductVersion", "(7.0NG.771(Build 230517))"
|
||||
VALUE "FileVersion", "1.0.0.0"
|
||||
END
|
||||
END
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-console
|
||||
Version: 7.0NG.771
|
||||
Version: 7.0NG.771-230517
|
||||
Architecture: all
|
||||
Priority: optional
|
||||
Section: admin
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
pandora_version="7.0NG.771"
|
||||
pandora_version="7.0NG.771-230517"
|
||||
|
||||
package_pear=0
|
||||
package_pandora=1
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
START TRANSACTION;
|
||||
|
||||
UPDATE pandora.tnetwork_component
|
||||
SET module_enabled=1
|
||||
WHERE name='Cisco _nameOID_ power state';
|
||||
|
||||
COMMIT;
|
|
@ -202,22 +202,58 @@ if (!empty($news)) {
|
|||
|
||||
$output_news = '<div id="news_board" class="new">';
|
||||
foreach ($news as $article) {
|
||||
$image = false;
|
||||
$default = false;
|
||||
if ($article['text'] == '&lt;p style="text-align: center; font-size: 13px;"&gt;Hello, congratulations, if you've arrived here you already have an operational monitoring console. Remember that our forums and online documentation are available 24x7 to get you out of any trouble. You can replace this message with a personalized one at Admin tools -&amp;gt; Site news.&lt;/p&gt; ') {
|
||||
$image = true;
|
||||
$article['subject'] = __('Welcome to Pandora FMS Console');
|
||||
$default = true;
|
||||
}
|
||||
|
||||
$text_bbdd = io_safe_output($article['text']);
|
||||
$text = html_entity_decode($text_bbdd);
|
||||
$output_news .= '<span class="green_title">'.$article['subject'].'</span>';
|
||||
|
||||
$output_news .= '<div class="new-board">';
|
||||
$output_news .= '<div class="new-board-header">';
|
||||
$output_news .= '<span class="new-board-title">'.$article['subject'].'</span>';
|
||||
$output_news .= '<span class="new-board-author">'.__('By').' '.$article['author'].' '.ui_print_timestamp($article['timestamp'], true).'</span>';
|
||||
$output_news .= '</div>';
|
||||
$output_news .= '<div class="new content">';
|
||||
$output_news .= '<p>'.__('by').' <b>'.$article['author'].'</b> <i>'.ui_print_timestamp($article['timestamp'], true).'</i> '.$comparation_suffix.'</p>';
|
||||
if ($image) {
|
||||
$output_news .= '<center><img src="./images/welcome_image.png" alt="img colabora con nosotros - Support" width="191" height="207"></center>';
|
||||
|
||||
if ($default) {
|
||||
$output_news .= '<div class="default-new">';
|
||||
$output_news .= '<div class="default-image-new">';
|
||||
$output_news .= '<img src="./images/welcome_image.svg" alt="img colabora con nosotros - Support">';
|
||||
$output_news .= '</div><div class="default-text-new">';
|
||||
|
||||
$output_news .= '
|
||||
<p>'.__('Welcome to our monitoring tool so grand,').'
|
||||
<br>'.__('Where data insights are at your command.').'
|
||||
<br>'.__('Sales, marketing, operations too,').'
|
||||
<br>'.__("Customer support, we've got you.").'
|
||||
</p>
|
||||
|
||||
<p>'.__('Our interface is user-friendly,').'
|
||||
<br>'.__("Customize your dashboard, it's easy.").'
|
||||
<br>'.__('Set up alerts and gain insights so keen,').'
|
||||
<br>'.__("Optimize your data, like you've never seen.").'
|
||||
</p>
|
||||
|
||||
<p>'.__('Unleash its power now, and join the pro league,').'
|
||||
<br>'.__('Unlock the potential of your data to intrigue.').'
|
||||
<br>'.__('Monitoring made simple, efficient and fun,').'
|
||||
<br>'.__('Discover a whole new way to get things done.').'
|
||||
</p>
|
||||
|
||||
<p>'.__('And take control of your IT once and for all.').'</p>
|
||||
|
||||
<span>'.__('You can replace this message with a personalized one at Admin tools -> Site news.').'</span>
|
||||
';
|
||||
|
||||
$output_news .= '</div></div>';
|
||||
} else {
|
||||
$output_news .= nl2br($text);
|
||||
}
|
||||
|
||||
$output_news .= nl2br($text);
|
||||
$output_news .= '</div>';
|
||||
$output_news .= '</div></div>';
|
||||
}
|
||||
|
||||
$output_news .= '</div>';
|
||||
|
|
|
@ -229,7 +229,7 @@ if ($enable_agent > 0) {
|
|||
);
|
||||
}
|
||||
|
||||
if ($disable_agent > 0) {
|
||||
if ($disable_agent > 0 && $agent_to_delete === 0) {
|
||||
$result = db_process_sql_update('tagente', ['disabled' => 1], ['id_agente' => $disable_agent]);
|
||||
$alias = io_safe_output(agents_get_alias($disable_agent));
|
||||
|
||||
|
@ -765,7 +765,9 @@ if ($agents !== false) {
|
|||
}
|
||||
|
||||
if (empty($agent['alias']) === true) {
|
||||
$agent['alias'] = $agent['nombre'];
|
||||
$agent['alias'] = io_safe_output($agent['nombre']);
|
||||
} else {
|
||||
$agent['alias'] = io_safe_output($agent['alias']);
|
||||
}
|
||||
|
||||
$additionalDataAgentName = [];
|
||||
|
|
|
@ -882,6 +882,10 @@ if ($modules !== false) {
|
|||
$title
|
||||
);
|
||||
|
||||
if (strlen($module['ip_target']) !== 0) {
|
||||
$title .= '<br/>IP: '.$module['ip_target'];
|
||||
}
|
||||
|
||||
// This module is initialized ? (has real data).
|
||||
if ($status === STATUS_MODULE_NO_DATA) {
|
||||
$data[2] .= html_print_image(
|
||||
|
@ -1101,7 +1105,7 @@ $createModuleTable->data[0][] = html_print_label_input_block(
|
|||
false,
|
||||
'',
|
||||
false,
|
||||
'max-width:300px;'
|
||||
'width:250px;'
|
||||
)
|
||||
);
|
||||
|
||||
|
|
|
@ -524,6 +524,11 @@ $tableBasicThresholds->data['switch_warning_threshold'][0] .= html_print_div(
|
|||
true
|
||||
);
|
||||
|
||||
// CHANGE TO CRITICAL STATUS
|
||||
$tableBasicThresholds->data['caption_warning_time'][0] .= __('Change to critical status after');
|
||||
$tableBasicThresholds->data['warning_time'][0] .= html_print_input_text('warning_time', $warning_time, '', 5, 15, true);
|
||||
$tableBasicThresholds->data['warning_time'][1] .= ' <b>'.__('intervals in warning status.').'</b>';
|
||||
|
||||
// CRITICAL THRESHOLD.
|
||||
$tableBasicThresholds->rowclass['caption_critical_threshold'] = 'field_half_width pdd_t_10px';
|
||||
$tableBasicThresholds->rowclass['critical_threshold'] = 'field_half_width';
|
||||
|
@ -607,7 +612,7 @@ $tableBasicThresholds->data['critical_threshold'][0] .= html_print_input_text(
|
|||
$classdisabledBecauseInPolicy
|
||||
);
|
||||
|
||||
$table_simple->rowstyle['thresholds_table'] = 'margin-top: 15px;height: 340px;width: 100%';
|
||||
$table_simple->rowstyle['thresholds_table'] = 'margin-top: 15px;height: 400px;width: 100%';
|
||||
$table_simple->cellclass['thresholds_table'][0] = 'table_section half_section_left';
|
||||
$table_simple->data['thresholds_table'][0] = html_print_table($tableBasicThresholds, true);
|
||||
if (modules_is_string_type($id_module_type) === false || (bool) $edit === true) {
|
||||
|
@ -1938,7 +1943,7 @@ $(document).ready (function () {
|
|||
var thisLabel = $(this).attr('for');
|
||||
$('#'+thisLabel).prop('checked', true);
|
||||
$('#'+thisLabel).siblings().prop('checked', false);
|
||||
|
||||
|
||||
if ($('#radius-percentage_warning').prop('checked') === true || $('#radius-percentage_critical').prop('checked') === true) {
|
||||
$("#svg_dinamic").hide();
|
||||
} else {
|
||||
|
|
|
@ -1576,14 +1576,12 @@ function insert_downtime_agent($id_downtime, $user_groups_ad)
|
|||
} else {
|
||||
// If is selected 'Any', get all the agents.
|
||||
if (count($agents) === 1 && (int) $agents[0] === -2) {
|
||||
if ($recursion === true) {
|
||||
$filter_group = groups_get_children_ids(
|
||||
$filter_group,
|
||||
false,
|
||||
true,
|
||||
'AW'
|
||||
);
|
||||
};
|
||||
$filter_group = groups_get_children_ids(
|
||||
$filter_group,
|
||||
false,
|
||||
true,
|
||||
'AW'
|
||||
);
|
||||
|
||||
$agents = db_get_all_rows_filter(
|
||||
'tagente',
|
||||
|
|
|
@ -98,16 +98,15 @@ if (count($groups) > 0) {
|
|||
|
||||
|
||||
echo '<div id="tactic_view">';
|
||||
echo '<table style="width: 100%;">';
|
||||
echo '<tr>';
|
||||
echo '<td class="tactical_group_left_column">';
|
||||
echo '<div class="tactical_group_left_columns">';
|
||||
echo '<div class="tactical_group_left_column">';
|
||||
$table_col1 = new stdClass();
|
||||
$table_col1->class = 'no-class';
|
||||
$table_col1->data = [];
|
||||
$table_col1->rowclass[] = '';
|
||||
$table_col1->headstyle[0] = 'text-align:center;';
|
||||
$table_col1->width = '100%';
|
||||
$table_col1->data[0][0] = groups_get_heat_map_agents($id_groups, 450, 100);
|
||||
$table_col1->data[0][0] = groups_get_heat_map_agents($id_groups, 330, 100);
|
||||
$table_col1->data[1][0] = tactical_groups_get_agents_and_monitoring($id_groups);
|
||||
|
||||
$distribution_by_so = '<table cellpadding=0 cellspacing=0 class="databox pies graph-distribution-so" width=100%><tr><td style="width:50%;">';
|
||||
|
@ -130,8 +129,8 @@ ui_toggle(
|
|||
false
|
||||
);
|
||||
|
||||
echo '</td>';
|
||||
echo '<td class="tactical_group_left_column">';
|
||||
echo '</div>';
|
||||
echo '<div class="tactical_group_left_column">';
|
||||
$table_col2 = new stdClass();
|
||||
$table_col2->class = 'no-class';
|
||||
$table_col2->data = [];
|
||||
|
@ -158,8 +157,9 @@ ui_toggle(
|
|||
false,
|
||||
false
|
||||
);
|
||||
echo '</td>';
|
||||
echo '<td class="tactical_group_right_column">';
|
||||
echo '</div>';
|
||||
echo '</div>';
|
||||
echo '<div class="tactical_group_right_column">';
|
||||
$table_col3 = new stdClass();
|
||||
$table_col3->class = 'no-class';
|
||||
$table_col3->data = [];
|
||||
|
@ -179,7 +179,7 @@ try {
|
|||
__('Alias'),
|
||||
__('Status'),
|
||||
__('Alerts'),
|
||||
__('Ultimo contacto remoto'),
|
||||
__('Last remote contact'),
|
||||
];
|
||||
|
||||
// Load datatables user interface.
|
||||
|
@ -216,9 +216,8 @@ ui_toggle(
|
|||
false,
|
||||
false
|
||||
);
|
||||
echo '</td>';
|
||||
echo '</tr>';
|
||||
echo '</table>';
|
||||
echo '</div>';
|
||||
echo '</div>';
|
||||
echo '<div id="modal-info-agent"></div>'
|
||||
|
||||
?>
|
||||
|
|
|
@ -74,8 +74,8 @@ if ($id) {
|
|||
|
||||
// Header Buttons.
|
||||
$buttons = [];
|
||||
$buttons[] = ['text' => '<a href="index.php?sec=netf&sec2=godmode/netflow/nf_edit">'.html_print_image('images/logs@svg.svg', true, ['title' => __('Filter list')]).'</a>'];
|
||||
$buttons[] = ['text' => '<a href="index.php?sec=netf&sec2=godmode/netflow/nf_edit_form">'.html_print_image('images/plus@svg.svg', true, ['title' => __('Add filter')]).'</a>'];
|
||||
$buttons[] = ['text' => '<a href="index.php?sec=netf&sec2=godmode/netflow/nf_edit">'.html_print_image('images/logs@svg.svg', true, ['title' => __('Filter list'), 'main_menu_icon' => true]).'</a>'];
|
||||
$buttons[] = ['text' => '<a href="index.php?sec=netf&sec2=godmode/netflow/nf_edit_form">'.html_print_image('images/plus@svg.svg', true, ['title' => __('Add filter'), 'main_menu_icon' => true]).'</a>'];
|
||||
// Header Caption.
|
||||
$headerTitle = ($id) ? __('Update filter') : __('Create filter');
|
||||
|
||||
|
|
|
@ -208,7 +208,7 @@ $table->data[2][] = html_print_label_input_block(
|
|||
if ($action === 'new') {
|
||||
$backgroundColorInput = html_print_input_color(
|
||||
'background_color',
|
||||
'white',
|
||||
'#FFFFFF',
|
||||
'background_color',
|
||||
false,
|
||||
true
|
||||
|
|
|
@ -147,6 +147,10 @@ if ((isset($_GET['form_add'])) || (isset($_GET['form_edit']))) {
|
|||
|
||||
$result = db_get_row('tnews', 'id_news', $id_news);
|
||||
|
||||
if ($result['text'] == '&lt;p style="text-align: center; font-size: 13px;"&gt;Hello, congratulations, if you've arrived here you already have an operational monitoring console. Remember that our forums and online documentation are available 24x7 to get you out of any trouble. You can replace this message with a personalized one at Admin tools -&amp;gt; Site news.&lt;/p&gt; ') {
|
||||
header('Location: '.ui_get_full_url('index.php?sec=gextensions&sec2=godmode/setup/news'));
|
||||
}
|
||||
|
||||
if ($result !== false) {
|
||||
$subject = $result['subject'];
|
||||
$text = $result['text'];
|
||||
|
@ -355,42 +359,37 @@ if ((isset($_GET['form_add'])) || (isset($_GET['form_edit']))) {
|
|||
echo '</tr></thead>';
|
||||
|
||||
|
||||
$color = 1;
|
||||
foreach ($rows as $row) {
|
||||
if ($color == 1) {
|
||||
$tdcolor = 'datos';
|
||||
$color = 0;
|
||||
if ($row['text'] == '&lt;p style="text-align: center; font-size: 13px;"&gt;Hello, congratulations, if you've arrived here you already have an operational monitoring console. Remember that our forums and online documentation are available 24x7 to get you out of any trouble. You can replace this message with a personalized one at Admin tools -&amp;gt; Site news.&lt;/p&gt; ') {
|
||||
echo '<tr><td><b>'.__('Welcome to Pandora FMS Console').'</b></td>';
|
||||
} else {
|
||||
$tdcolor = 'datos2';
|
||||
$color = 1;
|
||||
echo "<tr><td><b><a href='index.php?sec=gsetup&sec2=godmode/setup/news&form_edit=1&id_news=".$row['id_news']."'>".$row['subject'].'</a></b></td>';
|
||||
}
|
||||
|
||||
echo "<tr><td class='$tdcolor'><b><a href='index.php?sec=gsetup&sec2=godmode/setup/news&form_edit=1&id_news=".$row['id_news']."'>".$row['subject'].'</a></b></td>';
|
||||
|
||||
if ($row['modal']) {
|
||||
echo "<td class='$tdcolor'>".__('Modal').'</b></td>';
|
||||
echo '<td>'.__('Modal').'</b></td>';
|
||||
} else {
|
||||
echo "<td class='$tdcolor'>".__('Board').'</b></td>';
|
||||
echo '<td>'.__('Board').'</b></td>';
|
||||
}
|
||||
|
||||
echo "<td class='$tdcolor'>".$row['author'].'</b></td>';
|
||||
echo '<td>'.$row['author'].'</b></td>';
|
||||
$utimestamp = time_w_fixed_tz($row['timestamp']);
|
||||
echo "<td class='$tdcolor'>".date($config['date_format'], $utimestamp).'</b></td>';
|
||||
echo '<td>'.date($config['date_format'], $utimestamp).'</b></td>';
|
||||
if ($row['expire']) {
|
||||
$expire_utimestamp = time_w_fixed_tz($row['expire_timestamp']);
|
||||
$expire_in_secs = ($expire_utimestamp - $utimestamp);
|
||||
|
||||
if ($expire_in_secs <= 0) {
|
||||
echo "<td class='$tdcolor'>".__('Expired').'</b></td>';
|
||||
echo '<td>'.__('Expired').'</b></td>';
|
||||
} else {
|
||||
$expire_in = human_time_description_raw($expire_in_secs, false, 'large');
|
||||
echo "<td class='$tdcolor'>".$expire_in.'</b></td>';
|
||||
echo '<td>'.$expire_in.'</b></td>';
|
||||
}
|
||||
} else {
|
||||
echo "<td class='$tdcolor'>".__('No').'</b></td>';
|
||||
echo '<td>'.__('No').'</b></td>';
|
||||
}
|
||||
|
||||
echo '<td class="'.$tdcolor.' table_action_buttons"><a href="index.php?sec=gsetup&sec2=godmode/setup/news&id_news='.$row['id_news'].'&borrar='.$row['id_news'].'" onClick="if (!confirm(\' '.__('Are you sure?').'\')) return false;">'.html_print_image('images/delete.svg', true, ['border' => '0', 'class' => 'invert_filter']).'</a></td></tr>';
|
||||
echo '<td class="'.$tdcolor.' table_action_buttons"><a href="index.php?sec=gsetup&sec2=godmode/setup/news&id_news='.$row['id_news'].'&borrar='.$row['id_news'].'" onClick="if (!confirm(\' '.__('Are you sure?').'\')) return false;">'.html_print_image('images/delete.svg', true, ['border' => '0', 'class' => 'invert_filter main_menu_icon']).'</a></td></tr>';
|
||||
}
|
||||
|
||||
echo '</table>';
|
||||
|
|
|
@ -132,13 +132,13 @@ $table_remote->data['ehorus_req_timeout'] = $row;
|
|||
// Test.
|
||||
$row = [];
|
||||
$test_start = '<span id="test-ehorus-spinner" class="invisible"> '.html_print_image('images/spinner.gif', true).'</span>';
|
||||
$test_start .= '<span id="test-ehorus-success" class="invisible"> '.html_print_image('images/status_sets/default/severity_normal.png', true).'</span>';
|
||||
$test_start .= '<span id="test-ehorus-failure" class="invisible"> '.html_print_image('images/status_sets/default/severity_critical.png', true).'</span>';
|
||||
$test_start .= '<span id="test-ehorus-success" class="invisible"> '.html_print_image('images/status_sets/default/severity_normal.png', true).' '.__('Connection its OK').'</span>';
|
||||
$test_start .= '<span id="test-ehorus-failure" class="invisible"> '.html_print_image('images/status_sets/default/severity_critical.png', true).' '.__('Connection failed').'</span>';
|
||||
$test_start .= ' <span id="test-ehorus-message" class="invisible"></span>';
|
||||
$row['ehorus_test'] = html_print_label_input_block(
|
||||
__('Test'),
|
||||
__('Test connection'),
|
||||
html_print_button(
|
||||
__('Start'),
|
||||
__('Test'),
|
||||
'test-ehorus',
|
||||
false,
|
||||
'',
|
||||
|
|
|
@ -649,9 +649,9 @@ $table_cr_settings->data[3] = $row;
|
|||
|
||||
// Test.
|
||||
$row = [];
|
||||
$row['control'] = __('Test');
|
||||
$row['control'] = __('Test connection');
|
||||
$row['control'] .= html_print_button(
|
||||
__('Start'),
|
||||
__('Test'),
|
||||
'test-integria',
|
||||
false,
|
||||
'',
|
||||
|
@ -662,8 +662,8 @@ $row['control'] .= html_print_button(
|
|||
true
|
||||
);
|
||||
$row['control'] .= '<span id="test-integria-spinner" class="invisible"> '.html_print_image('images/spinner.gif', true).'</span>';
|
||||
$row['control'] .= '<span id="test-integria-success" class="invisible"> '.html_print_image('images/status_sets/default/severity_normal.png', true).'</span>';
|
||||
$row['control'] .= '<span id="test-integria-failure" class="invisible"> '.html_print_image('images/status_sets/default/severity_critical.png', true).'</span>';
|
||||
$row['control'] .= '<span id="test-integria-success" class="invisible"> '.html_print_image('images/status_sets/default/severity_normal.png', true).' '.__('Connection its OK').'</span>';
|
||||
$row['control'] .= '<span id="test-integria-failure" class="invisible"> '.html_print_image('images/status_sets/default/severity_critical.png', true).' '.__('Connection failed').'</span>';
|
||||
$row['control'] .= ' <span id="test-integria-message" class="invisible"></span>';
|
||||
$table_remote->data['integria_test'] = $row;
|
||||
|
||||
|
|
|
@ -86,9 +86,9 @@ $row = [];
|
|||
$test_start = '<span id="test-gotty-spinner" class="invisible"> '.html_print_image('images/spinner.gif', true).'</span>';
|
||||
$test_start .= ' <span id="test-gotty-message" class="invisible"></span>';
|
||||
$row['gotty_test'] = html_print_label_input_block(
|
||||
__('Test'),
|
||||
__('Test connection'),
|
||||
html_print_button(
|
||||
__('Start'),
|
||||
__('Test'),
|
||||
'test-gotty',
|
||||
false,
|
||||
'handleTest()',
|
||||
|
|
|
@ -212,7 +212,8 @@ $filter['limit'] = (int) $config['block_size'];
|
|||
// Statements for pagination.
|
||||
$url = 'index.php?sec=gusuarios&sec2=godmode/tag/tag';
|
||||
$total_tags = tags_get_tag_count($filter);
|
||||
$offset_delete = ($offset >= ($total_tags - 1)) ? ($offset - $config['block_size']) : $offset;
|
||||
$offset_delete = ($offset >= $total_tags ) ? ($offset - $config['block_size']) : 0;
|
||||
|
||||
$result = tags_search_tag(false, $filter);
|
||||
|
||||
// Filter form.
|
||||
|
|
|
@ -54,6 +54,18 @@ if ($enterprise_include === true) {
|
|||
enterprise_include_once('meta/include/functions_users_meta.php');
|
||||
}
|
||||
|
||||
$homeScreenValues = [
|
||||
HOME_SCREEN_DEFAULT => __('Default'),
|
||||
HOME_SCREEN_VISUAL_CONSOLE => __('Visual console'),
|
||||
HOME_SCREEN_EVENT_LIST => __('Event list'),
|
||||
HOME_SCREEN_GROUP_VIEW => __('Group view'),
|
||||
HOME_SCREEN_TACTICAL_VIEW => __('Tactical view'),
|
||||
HOME_SCREEN_ALERT_DETAIL => __('Alert detail'),
|
||||
HOME_SCREEN_EXTERNAL_LINK => __('External link'),
|
||||
HOME_SCREEN_OTHER => __('Other'),
|
||||
HOME_SCREEN_DASHBOARD => __('Dashboard'),
|
||||
];
|
||||
|
||||
// This defines the working user. Beware with this, old code get confusses
|
||||
// and operates with current logged user (dangerous).
|
||||
$id = get_parameter('id', get_parameter('id_user', ''));
|
||||
|
@ -79,92 +91,6 @@ if (is_ajax() === true) {
|
|||
$delete_profile = (bool) get_parameter('delete_profile');
|
||||
$get_user_profile = (bool) get_parameter('get_user_profile');
|
||||
|
||||
if ($delete_profile === true) {
|
||||
$id2 = (string) get_parameter('id_user');
|
||||
$id_up = (int) get_parameter('id_user_profile');
|
||||
|
||||
$perfilUser = db_get_row('tusuario_perfil', 'id_up', $id_up);
|
||||
$id_perfil = $perfilUser['id_perfil'];
|
||||
$perfil = db_get_row('tperfil', 'id_perfil', $id_perfil);
|
||||
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_USER_MANAGEMENT,
|
||||
'Deleted profile for user '.io_safe_output($id2),
|
||||
false,
|
||||
false,
|
||||
'The profile with id '.$id_perfil.' in the group '.$perfilUser['id_grupo']
|
||||
);
|
||||
|
||||
$return = profile_delete_user_profile($id2, $id_up);
|
||||
ui_print_result_message(
|
||||
$return,
|
||||
__('Successfully deleted'),
|
||||
__('Could not be deleted')
|
||||
);
|
||||
|
||||
|
||||
$has_profile = db_get_row('tusuario_perfil', 'id_usuario', $id2);
|
||||
$user_is_global_admin = users_is_admin($id2);
|
||||
|
||||
if ($has_profile === false && $user_is_global_admin === false) {
|
||||
$result = delete_user($id2);
|
||||
|
||||
if ($result === true) {
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_USER_MANAGEMENT,
|
||||
__('Deleted user %s', io_safe_output($id_user))
|
||||
);
|
||||
}
|
||||
|
||||
ui_print_result_message(
|
||||
$result,
|
||||
__('Successfully deleted'),
|
||||
__('There was a problem deleting the user')
|
||||
);
|
||||
|
||||
// Delete the user in all the consoles.
|
||||
if (is_metaconsole() === true) {
|
||||
$servers = metaconsole_get_servers();
|
||||
foreach ($servers as $server) {
|
||||
// Connect to the remote console.
|
||||
metaconsole_connect($server);
|
||||
|
||||
// Delete the user.
|
||||
$result = delete_user($id_user);
|
||||
if ($result === true) {
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_USER_MANAGEMENT,
|
||||
__('Deleted user %s from metaconsole', io_safe_output($id_user))
|
||||
);
|
||||
}
|
||||
|
||||
// Restore the db connection.
|
||||
metaconsole_restore_db();
|
||||
|
||||
// Log to the metaconsole too.
|
||||
if ($result === true) {
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_USER_MANAGEMENT,
|
||||
__(
|
||||
'Deleted user %s from %s',
|
||||
io_safe_input($id_user),
|
||||
io_safe_input($server['server_name'])
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
ui_print_result_message(
|
||||
$result,
|
||||
__('Successfully deleted from %s', io_safe_input($server['server_name'])),
|
||||
__('There was a problem deleting the user from %s', io_safe_input($server['server_name']))
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if ($get_user_profile === true) {
|
||||
$profile_id = (int) get_parameter('profile_id');
|
||||
$group_id = (int) get_parameter('group_id', -1);
|
||||
|
@ -296,7 +222,7 @@ if ((bool) $config['user_can_update_info'] === true) {
|
|||
$view_mode = true;
|
||||
}
|
||||
|
||||
$delete_profile = (is_ajax() === true) ? (bool) get_parameter('delete_profile') : false;
|
||||
$delete_profile = (bool) get_parameter('delete_profile');
|
||||
$new_user = (bool) get_parameter('new_user');
|
||||
$create_user = (bool) get_parameter('create_user');
|
||||
$add_profile = (bool) get_parameter('add_profile');
|
||||
|
@ -414,6 +340,8 @@ if ($create_user === true) {
|
|||
$values['data_section'] = get_parameter('data_section');
|
||||
}
|
||||
|
||||
$values['section'] = $homeScreenValues[$values['section']];
|
||||
|
||||
if (enterprise_installed() === true) {
|
||||
$values['force_change_pass'] = 1;
|
||||
$values['last_pass_change'] = date('Y/m/d H:i:s', get_system_time());
|
||||
|
@ -696,6 +624,8 @@ if ($update_user) {
|
|||
$values['data_section'] = get_parameter('data_section');
|
||||
}
|
||||
|
||||
$values['section'] = $homeScreenValues[$values['section']];
|
||||
|
||||
if (enterprise_installed() === true && is_metaconsole() === true) {
|
||||
$values['metaconsole_access'] = get_parameter('metaconsole_access');
|
||||
$values['metaconsole_agents_manager'] = get_parameter('metaconsole_agents_manager', '0');
|
||||
|
@ -885,6 +815,89 @@ if ($update_user) {
|
|||
$user_info = $values;
|
||||
}
|
||||
|
||||
if ($delete_profile) {
|
||||
$id2 = (string) get_parameter('id_user');
|
||||
$id_up = (int) get_parameter('id_user_profile');
|
||||
$perfilUser = db_get_row('tusuario_perfil', 'id_up', $id_up);
|
||||
$id_perfil = $perfilUser['id_perfil'];
|
||||
$perfil = db_get_row('tperfil', 'id_perfil', $id_perfil);
|
||||
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_USER_MANAGEMENT,
|
||||
'Deleted profile for user '.io_safe_output($id2),
|
||||
false,
|
||||
false,
|
||||
'The profile with id '.$id_perfil.' in the group '.$perfilUser['id_grupo']
|
||||
);
|
||||
|
||||
$return = profile_delete_user_profile($id2, $id_up);
|
||||
ui_print_result_message(
|
||||
$return,
|
||||
__('Successfully deleted'),
|
||||
__('Could not be deleted')
|
||||
);
|
||||
|
||||
|
||||
$has_profile = db_get_row('tusuario_perfil', 'id_usuario', $id2);
|
||||
$user_is_global_admin = users_is_admin($id2);
|
||||
|
||||
if ($has_profile === false && $user_is_global_admin === false) {
|
||||
$result = delete_user($id2);
|
||||
|
||||
if ($result === true) {
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_USER_MANAGEMENT,
|
||||
__('Deleted user %s', io_safe_output($id_user))
|
||||
);
|
||||
}
|
||||
|
||||
ui_print_result_message(
|
||||
$result,
|
||||
__('Successfully deleted'),
|
||||
__('There was a problem deleting the user')
|
||||
);
|
||||
|
||||
// Delete the user in all the consoles.
|
||||
if (is_metaconsole() === true) {
|
||||
$servers = metaconsole_get_servers();
|
||||
foreach ($servers as $server) {
|
||||
// Connect to the remote console.
|
||||
metaconsole_connect($server);
|
||||
|
||||
// Delete the user.
|
||||
$result = delete_user($id_user);
|
||||
if ($result === true) {
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_USER_MANAGEMENT,
|
||||
__('Deleted user %s from metaconsole', io_safe_output($id_user))
|
||||
);
|
||||
}
|
||||
|
||||
// Restore the db connection.
|
||||
metaconsole_restore_db();
|
||||
|
||||
// Log to the metaconsole too.
|
||||
if ($result === true) {
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_USER_MANAGEMENT,
|
||||
__(
|
||||
'Deleted user %s from %s',
|
||||
io_safe_input($id_user),
|
||||
io_safe_input($server['server_name'])
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
ui_print_result_message(
|
||||
$result,
|
||||
__('Successfully deleted from %s', io_safe_input($server['server_name'])),
|
||||
__('There was a problem deleting the user from %s', io_safe_input($server['server_name']))
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ((int) $status !== -1) {
|
||||
ui_print_result_message(
|
||||
$status,
|
||||
|
|
|
@ -608,41 +608,41 @@ $userManagementTable->data['fields_blocksize_eventfilter'][1] = html_print_selec
|
|||
false,
|
||||
false
|
||||
);
|
||||
if (is_metaconsole() === false) {
|
||||
// Home screen table.
|
||||
$homeScreenTable = new stdClass();
|
||||
$homeScreenTable->class = 'w100p full_section';
|
||||
$homeScreenTable->id = 'home_screen_table';
|
||||
$homeScreenTable->style = [];
|
||||
$homeScreenTable->rowclass = [];
|
||||
$homeScreenTable->data = [];
|
||||
// Home screen.
|
||||
$homeScreenTable->data['captions_homescreen'][0] = __('Home screen');
|
||||
$homeScreenTable->colspan['captions_homescreen'][0] = 2;
|
||||
$homeScreenTable->rowclass['captions_homescreen'] = 'field_half_width';
|
||||
$homeScreenTable->rowclass['fields_homescreen'] = 'field_half_width flex';
|
||||
$homeScreenTable->data['fields_homescreen'][0] = html_print_select(
|
||||
$homeScreenValues,
|
||||
'section',
|
||||
io_safe_output($user_info['section']),
|
||||
'show_data_section();',
|
||||
'',
|
||||
-1,
|
||||
true,
|
||||
false,
|
||||
false
|
||||
);
|
||||
$homeScreenTable->data['fields_homescreen'][1] = html_print_div(
|
||||
[
|
||||
'class' => 'w100p',
|
||||
'content' => $customHomeScreenDataField,
|
||||
],
|
||||
true
|
||||
);
|
||||
|
||||
$userManagementTable->rowclass['homescreen_table'] = 'w100p';
|
||||
$userManagementTable->data['homescreen_table'] = html_print_table($homeScreenTable, true);
|
||||
}
|
||||
// Home screen table.
|
||||
$homeScreenTable = new stdClass();
|
||||
$homeScreenTable->class = 'w100p full_section';
|
||||
$homeScreenTable->id = 'home_screen_table';
|
||||
$homeScreenTable->style = [];
|
||||
$homeScreenTable->rowclass = [];
|
||||
$homeScreenTable->data = [];
|
||||
// Home screen.
|
||||
$homeScreenTable->data['captions_homescreen'][0] = __('Home screen');
|
||||
$homeScreenTable->colspan['captions_homescreen'][0] = 2;
|
||||
$homeScreenTable->rowclass['captions_homescreen'] = 'field_half_width';
|
||||
$homeScreenTable->rowclass['fields_homescreen'] = 'field_half_width flex';
|
||||
$homeScreenTable->data['fields_homescreen'][0] = html_print_select(
|
||||
$homeScreenValues,
|
||||
'section',
|
||||
array_search($user_info['section'], $homeScreenValues),
|
||||
'show_data_section();',
|
||||
'',
|
||||
-1,
|
||||
true,
|
||||
false,
|
||||
false
|
||||
);
|
||||
$homeScreenTable->data['fields_homescreen'][1] = html_print_div(
|
||||
[
|
||||
'class' => 'w100p',
|
||||
'content' => $customHomeScreenDataField,
|
||||
],
|
||||
true
|
||||
);
|
||||
|
||||
$userManagementTable->rowclass['homescreen_table'] = 'w100p';
|
||||
$userManagementTable->data['homescreen_table'] = html_print_table($homeScreenTable, true);
|
||||
|
||||
|
||||
if (is_metaconsole() === true && users_is_admin() === true) {
|
||||
$userManagementTable->rowclass['search_custom1_looknfeel'] = 'field_half_width';
|
||||
|
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 87 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 87 KiB |
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 204 KiB |
|
@ -0,0 +1,291 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="460px" height="414.288672px" viewBox="0 0 460 414.288672" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>9C390E1A-9FE4-4604-9F9A-D60ED1281F4D</title>
|
||||
<defs>
|
||||
<linearGradient x1="0%" y1="9.5%" x2="100%" y2="90.5%" id="linearGradient-1">
|
||||
<stop stop-color="#D0FAD4" offset="0%"></stop>
|
||||
<stop stop-color="#C5E9FF" offset="52.0871463%"></stop>
|
||||
<stop stop-color="#DFD4FE" offset="100%"></stop>
|
||||
</linearGradient>
|
||||
<linearGradient x1="50%" y1="49.8604439%" x2="50%" y2="50.731762%" id="linearGradient-2">
|
||||
<stop stop-color="#000000" stop-opacity="0.07" offset="0%"></stop>
|
||||
<stop stop-color="#000000" stop-opacity="0" offset="100%"></stop>
|
||||
</linearGradient>
|
||||
<linearGradient x1="50%" y1="0%" x2="50%" y2="75.2845534%" id="linearGradient-3">
|
||||
<stop stop-color="#222222" offset="0%"></stop>
|
||||
<stop stop-color="#222222" stop-opacity="0" offset="100%"></stop>
|
||||
</linearGradient>
|
||||
<path d="M152.546053,35.3107345 L152.546053,0 L87.8813872,0 L87.8813872,35.3107345 C87.8813872,43.4322034 81.3232477,50 73.2137203,50 L167.21372,50 C159.174711,50 152.546053,43.4322034 152.546053,35.3107345 Z" id="path-4"></path>
|
||||
<path d="M0,39 L36.1774744,0 C46.9053653,10.0936464 52.9966323,24.2151535 53,39 L53,39 L0,39 Z" id="path-5"></path>
|
||||
<path d="M0,0 L53,0.378540773 C52.8892672,16.7302141 45.1662555,32.1052881 32.0932377,42 L0,0 Z" id="path-7"></path>
|
||||
<path d="M0,53 L5.2208186,0 C16.7028189,1.12919445 27.5059639,5.96173317 36,13.7683596 L0,53 Z" id="path-9"></path>
|
||||
<linearGradient x1="50%" y1="50%" x2="52.9793104%" y2="52.3544862%" id="linearGradient-11">
|
||||
<stop stop-color="#FFFFFF" stop-opacity="0.7" offset="0%"></stop>
|
||||
<stop stop-color="#FFFFFF" stop-opacity="0" offset="100%"></stop>
|
||||
</linearGradient>
|
||||
<path d="M93.68,170.68 L191.91,170.68 C194.119139,170.68 195.91,168.889139 195.91,166.68 L195.91,4 C195.91,1.790861 194.119139,-4.05812251e-16 191.91,0 L4,0 C1.790861,4.05812251e-16 -2.705415e-16,1.790861 0,4 L0,166.68 C1.5523329e-14,168.889139 1.790861,170.68 4,170.68 L47.56,170.68 L93.68,170.68 L93.68,170.68 Z" id="path-12"></path>
|
||||
<linearGradient x1="56.4362504%" y1="50%" x2="0%" y2="50%" id="linearGradient-13">
|
||||
<stop stop-color="#5E9FE1" offset="0%"></stop>
|
||||
<stop stop-color="#E12D81" offset="100%"></stop>
|
||||
</linearGradient>
|
||||
<rect id="path-14" x="0" y="0" width="11.59" height="81.23" rx="3"></rect>
|
||||
</defs>
|
||||
<g id="Mockups" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="Pantalla-bienvenida---Mensaje-bienvenida" transform="translate(-846.000000, -284.000000)">
|
||||
<g id="Welcome-image" transform="translate(846.000000, 284.000000)">
|
||||
<rect id="BG" fill="url(#linearGradient-1)" x="0" y="0" width="460" height="414" rx="6"></rect>
|
||||
<g id="Welcome" transform="translate(40.000000, 40.000000)">
|
||||
<g id="Mac" transform="translate(15.000000, 84.000000)">
|
||||
<g id="Group" transform="translate(53.786280, 240.000000)" stroke-linejoin="round">
|
||||
<g id="Path">
|
||||
<use fill="#FFFFFF" xlink:href="#path-4"></use>
|
||||
<use stroke="url(#linearGradient-3)" stroke-width="1.4" fill="url(#linearGradient-2)" xlink:href="#path-4"></use>
|
||||
</g>
|
||||
</g>
|
||||
<path d="M335.224274,-0.7 C339.502123,-0.7 343.370554,1.02376203 346.169675,3.81257674 C348.969732,6.60232361 350.7,10.4579204 350.7,14.7213211 L350.7,225.278679 C350.7,229.54208 348.969732,233.397676 346.169675,236.187423 C343.370554,238.976238 339.502123,240.7 335.224274,240.7 L14.7757256,240.7 C10.4978772,240.7 6.62944618,238.976238 3.83032506,236.187423 C1.03026834,233.397676 -0.7,229.54208 -0.7,225.278679 L-0.7,14.7213211 C-0.7,10.4579204 1.03026834,6.60232361 3.83032506,3.81257674 C6.62944618,1.02376203 10.4978772,-0.7 14.7757256,-0.7 L335.224274,-0.7 Z" id="Path" stroke="#222222" stroke-width="1.4" fill="#FFFFFF" stroke-linejoin="round"></path>
|
||||
<path d="M175.018401,214.00002 C179.989839,214.010307 184.010268,218.047143 184.00002,223.017956 C183.989859,227.989276 179.952696,232.010268 174.981258,232.00002 C170.010073,231.989859 165.989771,227.952135 166.00002,222.980815 C166.010307,218.010002 170.047216,213.989772 175.018401,214.00002 Z M178.591434,217.033788 C177.65815,216.932742 176.493946,217.065968 175.64737,217.333297 C175.425926,217.403666 175.209284,217.468777 175.001729,217.534388 C174.791837,217.599123 174.603363,217.703925 174.409048,217.787067 C173.251074,218.27527 172.204732,218.948412 171.316359,219.704194 C170.027804,220.797299 168.941481,222.085234 168.00002,223.509025 C168.047008,225.2034 168.658251,226.748772 169.647481,228.00002 C170.082321,226.67139 170.608413,225.406244 171.304807,224.206834 C171.930328,223.129506 172.715507,222.080726 173.564809,221.24869 C174.407231,220.421161 175.474991,219.60177 176.717207,219.105804 C177.305345,218.869278 177.987071,218.648027 178.810152,218.552365 C179.390761,218.486002 179.939699,218.547857 180.540038,218.561005 C180.715921,218.564511 180.92815,218.551864 180.986172,218.417887 C181.032901,218.307575 180.951125,218.121384 180.892843,218.040497 C180.792375,217.900885 180.604031,217.773168 180.44658,217.65647 C179.983832,217.307879 179.289255,217.112923 178.591434,217.033788 Z M179.436118,219.019535 C179.190484,218.888132 177.11413,219.446686 176.340003,219.904207 C176.808464,219.999729 177.212043,220.181341 177.604874,220.362831 C177.99102,220.538443 178.375069,220.72422 178.72032,220.963635 C178.938559,221.114999 179.15457,221.320369 179.354328,221.512391 C179.937348,222.070578 180.470953,222.903448 180.481308,223.923075 C180.49127,224.886736 179.950456,225.57804 179.304519,226.05883 C178.638529,226.556274 177.700296,226.882026 176.689579,226.931746 C174.693705,227.035717 173.188574,226.387398 172.036952,225.63572 C171.870487,225.527953 171.496399,225.25388 171.285762,225.048632 C171.159669,225.314744 171.122968,225.413572 171.00002,225.684093 C172.07208,226.668205 173.665948,227.718081 175.441355,227.939861 C176.384044,228.05865 177.373658,227.9995 178.254742,227.780292 C179.041977,227.584596 179.773112,227.20643 180.328082,226.764951 C181.411152,225.906731 182.257108,224.501468 181.928111,222.579166 C181.792842,221.800669 181.419672,221.108386 180.976771,220.509787 C180.667303,220.095127 180.306192,219.64777 179.88269,219.329978 C179.755154,219.232375 179.589607,219.101463 179.436118,219.019535 Z" id="Fill-3" fill="#E5E9ED"></path>
|
||||
<path d="M335.153237,0 L14.7757256,0 C6.60645423,0 0,6.61534714 0,14.7956151 L0,205.787089 L350,205.787089 L350,14.8667479 C350,6.6864799 343.322509,0 335.153237,0 Z" id="Path" fill="#57576D" fill-rule="nonzero"></path>
|
||||
<g id="Group" transform="translate(18.000000, 9.000000)">
|
||||
<g id="Ventana-1">
|
||||
<rect id="Rectangle" stroke="#222222" stroke-width="1.4" fill="#FFFFFF" stroke-linejoin="round" x="0" y="0" width="315" height="188" rx="4"></rect>
|
||||
<line x1="0" y1="14.043869" x2="315" y2="14.043869" id="Path-10" stroke="#222222" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<g id="Content-2" transform="translate(156.500000, 101.000000) scale(-1, 1) translate(-156.500000, -101.000000) translate(12.000000, 27.000000)">
|
||||
<line x1="3" y1="1" x2="15" y2="1" id="Path" stroke="#8A96A6" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="3" y1="9" x2="15" y2="9" id="Path" stroke="#8A96A6" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="8" y1="16" x2="15" y2="16" id="Path" stroke="#8A96A6" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="26" y1="1" x2="38" y2="1" id="Path" stroke="#8A96A6" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="26" y1="9" x2="38" y2="9" id="Path" stroke="#8A96A6" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="31" y1="16" x2="38" y2="16" id="Path" stroke="#8A96A6" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="110" y1="1" x2="122" y2="1" id="Path" stroke="#161628" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="110" y1="9" x2="122" y2="9" id="Path" stroke="#161628" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="115" y1="16" x2="122" y2="16" id="Path" stroke="#161628" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<path d="M54.0901195,79 L86,121.356546 C67.5338303,135.222978 42.2046264,135.571717 23.3624732,122.218953 C4.52032006,108.86619 -3.5066561,84.8791143 3.51226651,62.9004251 C10.5311891,40.921736 30.9837328,26 54.0901195,26 C55.7943972,26 57.4986749,26 59.2029526,26.2353142 L54.0901195,79 Z" id="Path" fill="#F6F7FB" fill-rule="nonzero"></path>
|
||||
<path d="M66,83 L119,83.3785408 C118.889267,99.7302141 111.166256,115.105288 98.0932377,125 L66,83 Z" id="Path" fill="#DFF3FA" fill-rule="nonzero"></path>
|
||||
<path d="M73,75 L109.177474,36 C119.905365,46.0936464 125.996632,60.2151535 126,75 L126,75 L73,75 Z" id="Path" fill="#DFF3FA" fill-rule="nonzero"></path>
|
||||
<path d="M62,75 L67.2208186,22 C78.7028189,23.1291945 89.5059639,27.9617332 98,35.7683596 L62,75 Z" id="Path" fill="#DFF3FA" fill-rule="nonzero"></path>
|
||||
<path d="M53.9060052,80 L58.9869452,27.2353142 C57.2689295,27.0724044 55.5509138,27 53.8328982,27 C52.1148825,27 50.5613577,27 48.9530026,27.2353142 L49.154047,27.2353142 L44,80 L76.1671018,122.356555 C68.2383958,128.25732 58.81042,131.860663 48.9347258,132.764683 C50.5430809,132.909491 52.1879896,133 53.8328982,133 C65.4374759,133.003953 76.7282401,129.268068 86,122.356555 L53.9060052,80 Z" id="Path" fill="#E5E9ED" fill-rule="nonzero"></path>
|
||||
<path d="M101.034941,121.737339 L71.2455709,83 L65,83 L97.2839567,125 C98.934299,123.759314 100.509064,122.423075 102,120.998283 L101.034941,121.737339 Z" id="Path" fill="#FFFFFF" fill-rule="nonzero"></path>
|
||||
<path d="M113,39.6431574 C111.854545,38.3498365 110.672727,37.0929472 109.363636,36 L73,75 L80.0545455,75 L113,39.6431574 Z" id="Path" fill="#FFFFFF" fill-rule="nonzero"></path>
|
||||
<path d="M69,100.909528 L53.4447892,80.0000548 L55.9170211,54.1095294 C55.2132471,54.1095294 54.4914276,54 53.769608,54 C42.5971011,53.9767742 32.6880818,61.2503875 29.249773,71.9985873 C25.8114643,82.7467872 29.6306873,94.50996 38.7004275,101.106519 C47.7701676,107.703078 60.0149095,107.623469 69,100.909528 L69,100.909528 Z" id="Path" fill="#E5E9ED" fill-rule="nonzero"></path>
|
||||
<path d="M72.2923913,23.3822924 C74.5487465,23.6024237 76.7889623,23.9608175 79,24.4553878 C75.2039142,23.218832 71.2815905,22.395455 67.3032609,22 L62,75 L67.7467391,68.8342485 L72.2923913,23.3822924 Z" id="Path" fill="#FFFFFF" fill-rule="nonzero"></path>
|
||||
<path d="M54.0901195,80 L86,122.356546 C67.5338303,136.222978 42.2046264,136.571717 23.3624732,123.218953 C4.52032006,109.86619 -3.5066561,85.8791143 3.51226651,63.9004251 C10.5311891,41.921736 30.9837328,27 54.0901195,27 C55.7943972,27 57.4986749,27 59.2029526,27.2353142 L54.0901195,80 Z" id="Path" stroke="#8A96A6" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<path d="M9.11764706,145.245315 L9.11764706,139.735945 L4.56777996,137 L0,139.735945 L0,145.245315 L4.56777996,148 L9.11764706,145.245315 L9.11764706,145.245315 Z M20.0588235,145.245315 L20.0588235,139.735945 L15.5089564,137 L10.9411765,139.735945 L10.9411765,145.245315 L15.5089564,148 L20.0588235,145.245315 L20.0588235,145.245315 Z M31,145.245315 L31,139.735945 L26.43222,137 L21.8823529,139.735945 L21.8823529,145.245315 L26.43222,148 L31,145.245315 L31,145.245315 Z" id="Path-11" fill="#8A96A6" fill-rule="nonzero"></path>
|
||||
<g id="Clipped" transform="translate(73.000000, 36.000000)">
|
||||
<mask id="mask-6" fill="white">
|
||||
<use xlink:href="#path-5"></use>
|
||||
</mask>
|
||||
<g id="Path"></g>
|
||||
<g id="Group" mask="url(#mask-6)" stroke="#B2DBF7" stroke-linecap="round" stroke-linejoin="round" stroke-width="0.99">
|
||||
<g transform="translate(-85.975768, -25.556749)" id="Path">
|
||||
<line x1="104.733788" y1="0" x2="0" y2="77.8542737"></line>
|
||||
<line x1="109.00273" y1="4.31714152" x2="4.26894198" y2="82.1531994"></line>
|
||||
<line x1="113.271672" y1="8.61606726" x2="8.53788396" y2="86.4521252"></line>
|
||||
<line x1="117.540614" y1="12.914993" x2="12.8249147" y2="90.7510509"></line>
|
||||
<line x1="121.809556" y1="17.2139187" x2="17.0938567" y2="95.0499766"></line>
|
||||
<line x1="126.096587" y1="21.5128445" x2="21.3627986" y2="99.3489024"></line>
|
||||
<line x1="130.365529" y1="25.8117702" x2="25.6317406" y2="103.666044"></line>
|
||||
<line x1="134.634471" y1="30.1106959" x2="29.9006826" y2="107.96497"></line>
|
||||
<line x1="138.903413" y1="34.4278375" x2="34.1696246" y2="112.263895"></line>
|
||||
<line x1="143.172355" y1="38.7267632" x2="38.4385666" y2="116.562821"></line>
|
||||
<line x1="147.441297" y1="43.0256889" x2="42.7255973" y2="120.861747"></line>
|
||||
<line x1="151.710239" y1="47.3246147" x2="46.9945392" y2="125.160673"></line>
|
||||
<line x1="155.99727" y1="51.6235404" x2="51.2634812" y2="129.459598"></line>
|
||||
<line x1="160.266212" y1="55.9224661" x2="55.5324232" y2="133.77674"></line>
|
||||
<line x1="164.535154" y1="60.2213919" x2="59.8013652" y2="138.075666"></line>
|
||||
<line x1="168.804096" y1="64.5385334" x2="64.0703072" y2="142.374591"></line>
|
||||
<line x1="173.073038" y1="68.8374591" x2="68.3392491" y2="146.673517"></line>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Clipped" transform="translate(66.000000, 83.000000)">
|
||||
<mask id="mask-8" fill="white">
|
||||
<use xlink:href="#path-7"></use>
|
||||
</mask>
|
||||
<use id="Path" fill="#ED474A" xlink:href="#path-7"></use>
|
||||
<g id="Group" mask="url(#mask-8)" stroke="#9C1414" stroke-linecap="round" stroke-linejoin="round" stroke-width="0.99">
|
||||
<g transform="translate(-78.305328, -72.157082)" id="Path">
|
||||
<line x1="104.805328" y1="0" x2="0" y2="77.0420601"></line>
|
||||
<line x1="109.077186" y1="4.272103" x2="4.27185792" y2="81.2961373"></line>
|
||||
<line x1="113.349044" y1="8.52618026" x2="8.54371585" y2="85.5502146"></line>
|
||||
<line x1="117.620902" y1="12.7802575" x2="12.8336749" y2="89.8042918"></line>
|
||||
<line x1="121.89276" y1="17.0343348" x2="17.1055328" y2="94.0583691"></line>
|
||||
<line x1="126.182719" y1="21.288412" x2="21.3773907" y2="98.3124464"></line>
|
||||
<line x1="130.454577" y1="25.5424893" x2="25.6492486" y2="102.584549"></line>
|
||||
<line x1="134.726434" y1="29.7965665" x2="29.9211066" y2="106.838627"></line>
|
||||
<line x1="138.998292" y1="34.0686695" x2="34.1929645" y2="111.092704"></line>
|
||||
<line x1="143.27015" y1="38.3227468" x2="38.4648224" y2="115.346781"></line>
|
||||
<line x1="147.542008" y1="42.576824" x2="42.7547814" y2="119.600858"></line>
|
||||
<line x1="151.813866" y1="46.8309013" x2="47.0266393" y2="123.854936"></line>
|
||||
<line x1="156.103825" y1="51.0849785" x2="51.2984973" y2="128.109013"></line>
|
||||
<line x1="160.375683" y1="55.3390558" x2="55.5703552" y2="132.381116"></line>
|
||||
<line x1="164.647541" y1="59.593133" x2="59.8422131" y2="136.635193"></line>
|
||||
<line x1="168.919399" y1="63.8652361" x2="64.114071" y2="140.88927"></line>
|
||||
<line x1="173.191257" y1="68.1193133" x2="68.385929" y2="145.143348"></line>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Clipped" transform="translate(62.000000, 22.000000)">
|
||||
<mask id="mask-10" fill="white">
|
||||
<use xlink:href="#path-9"></use>
|
||||
</mask>
|
||||
<use id="Path" fill="#1D7873" xlink:href="#path-9"></use>
|
||||
<g id="Group" mask="url(#mask-10)" stroke="#2AD0CF" stroke-linecap="round" stroke-linejoin="round" stroke-width="0.99">
|
||||
<g transform="translate(-75.092471, -11.513040)" id="Path">
|
||||
<line x1="105.325922" y1="0" x2="0" y2="77.7357584"></line>
|
||||
<line x1="109.618999" y1="4.31056966" x2="4.29307731" y2="82.02814"></line>
|
||||
<line x1="113.912077" y1="8.60295127" x2="8.58615462" y2="86.3205216"></line>
|
||||
<line x1="118.205154" y1="12.8953329" x2="12.8974229" y2="90.6129032"></line>
|
||||
<line x1="122.498231" y1="17.1877145" x2="17.1905003" y2="94.9052848"></line>
|
||||
<line x1="126.8095" y1="21.4800961" x2="21.4835776" y2="99.1976664"></line>
|
||||
<line x1="131.102577" y1="25.7724777" x2="25.7766549" y2="103.508236"></line>
|
||||
<line x1="135.395654" y1="30.0648593" x2="30.0697322" y2="107.800618"></line>
|
||||
<line x1="139.688732" y1="34.375429" x2="34.3628095" y2="112.092999"></line>
|
||||
<line x1="143.981809" y1="38.6678106" x2="38.6558868" y2="116.385381"></line>
|
||||
<line x1="148.274886" y1="42.9601922" x2="42.9671551" y2="120.677763"></line>
|
||||
<line x1="152.567964" y1="47.2525738" x2="47.2602324" y2="124.970144"></line>
|
||||
<line x1="156.879232" y1="51.5449554" x2="51.5533098" y2="129.262526"></line>
|
||||
<line x1="161.172309" y1="55.837337" x2="55.8463871" y2="133.573095"></line>
|
||||
<line x1="165.465387" y1="60.1297186" x2="60.1394644" y2="137.865477"></line>
|
||||
<line x1="169.758464" y1="64.4402883" x2="64.4325417" y2="142.157859"></line>
|
||||
<line x1="174.051541" y1="68.7326699" x2="68.725619" y2="146.45024"></line>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<path d="M66,83 L119,83.3785408 C118.889267,99.7302141 111.166256,115.105288 98.0932377,125 L66,83 Z" id="Path" stroke="#9C1414" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<path d="M73,75 L109.177474,36 C119.905365,46.0936464 125.996632,60.2151535 126,75 L126,75 L73,75 Z" id="Path" stroke="#B2DBF7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<path d="M62,75 L67.2208186,22 C78.7028189,23.1291945 89.5059639,27.9617332 98,35.7683596 L62,75 Z" id="Path" stroke="#14524F" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
</g>
|
||||
<g id="Group-5" transform="translate(23.000000, 91.000000)">
|
||||
<g id="1">
|
||||
<line x1="0.118553327" y1="46.1425683" x2="53.158873" y2="46.1425683" id="Path" stroke="#8A96A6" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="1,4"></line>
|
||||
<line x1="0.118553327" y1="55.2692624" x2="53.158873" y2="55.2692624" id="Path" stroke="#8A96A6" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="0.118553327" y1="64.4672589" x2="53.158873" y2="64.4672589" id="Path" stroke="#8A96A6" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="4,4"></line>
|
||||
<line x1="0.118553327" y1="73.5939531" x2="53.158873" y2="73.5939531" id="Path" stroke="#8A96A6" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="2,4"></line>
|
||||
<line x1="0.118553327" y1="82.7206472" x2="26.6031156" y2="82.7206472" id="Path" stroke="#8A96A6" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<path d="M50,0 C52.209139,-4.33003142e-15 54,1.790861 54,4 L54,30 C54,32.209139 52.209139,34 50,34 L47,34 L47,29 L39,29 L39,34 L36,34 L36,22 L28,22 L28,34 L25,34 L25,8 L17,8 L17,34 L14,34 L14,17 L6,17 L6,34 L4,34 C1.790861,34 2.705415e-16,32.209139 0,30 L0,4 C-2.705415e-16,1.790861 1.790861,4.05812251e-16 4,0 L50,0 Z" id="Rectangle-3" fill="#C0CCDC" fill-rule="nonzero"></path>
|
||||
</g>
|
||||
<g id="3" transform="translate(74.000000, 1.079516)">
|
||||
<line x1="53.0403197" y1="0.356511491" x2="0" y2="0.356511491" id="Path" stroke="#8A96A6" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="53.0403197" y1="9.55450796" x2="0" y2="9.55450796" id="Path" stroke="#8A96A6" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="53.0403197" y1="18.6812021" x2="0" y2="18.6812021" id="Path" stroke="#8A96A6" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="53.0403197" y1="27.3565115" x2="0" y2="27.3565115" id="Path" stroke="#8A96A6" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="26.4845623" y1="37.3565115" x2="0" y2="37.3565115" id="Path" stroke="#8A96A6" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<g id="Group-4" transform="translate(0.000000, 54.688863)" fill-rule="nonzero">
|
||||
<g id="User">
|
||||
<path d="M4,0 L19.3519797,0 C21.5611187,-4.05812251e-16 23.3519797,1.790861 23.3519797,4 L23.3519797,27.9505009 L23.3519797,27.9505009 L0,27.9505009 L0,4 C-2.705415e-16,1.790861 1.790861,4.05812251e-16 4,0 Z" id="Rectangle" stroke="#E5E9ED"></path>
|
||||
<path d="M17.86996,19.6794343 L16.9444243,19.6794343 C15.5917181,19.6794343 14.5237922,18.6098998 14.5237922,17.2551562 L14.5237922,16.8986447 C15.5205231,16.3282263 16.2324737,15.3299941 16.2324737,14.117855 L16.2324737,10.1962286 C16.2324737,8.41367118 14.8085725,6.98762522 13.028696,6.98762522 L10.4656738,6.98762522 C8.68579731,6.98762522 7.26189611,8.41367118 7.26189611,10.1962286 L7.26189611,14.117855 C7.26189611,15.3299941 7.90265165,16.3995286 8.89938249,16.8986447 L8.89938249,17.2551562 C8.89938249,18.6098998 7.83145659,19.6794343 6.47875045,19.6794343 L5.55321467,19.6794343 C3.34616782,19.6794343 1.56629132,21.4619918 1.56629132,23.672363 L1.56629132,26.4531526 L21.7856883,26.4531526 L21.7856883,23.672363 C21.7856883,21.4619918 20.0770069,19.6794343 17.86996,19.6794343 Z" id="Path" fill="#8A96A6"></path>
|
||||
</g>
|
||||
<g id="User" transform="translate(29.688340, 0.000000)">
|
||||
<path d="M4,0 L19.3519797,0 C21.5611187,-4.05812251e-16 23.3519797,1.790861 23.3519797,4 L23.3519797,27.9505009 L23.3519797,27.9505009 L0,27.9505009 L0,4 C-2.705415e-16,1.790861 1.790861,4.05812251e-16 4,0 Z" id="Rectangle" stroke="#E5E9ED"></path>
|
||||
<path d="M17.86996,19.6794343 L16.9444243,19.6794343 C15.5917181,19.6794343 14.5237922,18.6098998 14.5237922,17.2551562 L14.5237922,16.8986447 C15.5205231,16.3282263 16.2324737,15.3299941 16.2324737,14.117855 L16.2324737,10.1962286 C16.2324737,8.41367118 14.8085725,6.98762522 13.028696,6.98762522 L10.4656738,6.98762522 C8.68579731,6.98762522 7.26189611,8.41367118 7.26189611,10.1962286 L7.26189611,14.117855 C7.26189611,15.3299941 7.90265165,16.3995286 8.89938249,16.8986447 L8.89938249,17.2551562 C8.89938249,18.6098998 7.83145659,19.6794343 6.47875045,19.6794343 L5.55321467,19.6794343 C3.34616782,19.6794343 1.56629132,21.4619918 1.56629132,23.672363 L1.56629132,26.4531526 L21.7856883,26.4531526 L21.7856883,23.672363 C21.7856883,21.4619918 20.0058118,19.6794343 17.86996,19.6794343 Z" id="Path" fill="#8A96A6"></path>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0.000000, 0.071133)"></g>
|
||||
</g>
|
||||
</g>
|
||||
<g id="statistics" transform="translate(-0.000000, 0.000000)">
|
||||
<g id="Path">
|
||||
<use fill="#D0E7FD" xlink:href="#path-12"></use>
|
||||
<path stroke="#222222" stroke-width="1.4" d="M191.91,-0.7 C193.207869,-0.7 194.382869,-0.173934581 195.233402,0.676598128 C196.083935,1.52713084 196.61,2.70213084 196.61,4 L196.61,166.68 C196.61,167.977869 196.083935,169.152869 195.233402,170.003402 C194.382869,170.853935 193.207869,171.38 191.91,171.38 L4,171.38 C2.70213084,171.38 1.52713084,170.853935 0.676598128,170.003402 C-0.173934581,169.152869 -0.7,167.977869 -0.7,166.68 L-0.7,4 C-0.7,2.70213084 -0.173934581,1.52713084 0.676598128,0.676598128 C1.52713084,-0.173934581 2.70213084,-0.7 4,-0.7 L191.91,-0.7 Z" fill="url(#linearGradient-11)"></path>
|
||||
</g>
|
||||
<path d="M4,0 L191.9,0 C194.109139,-4.05812251e-16 195.9,1.790861 195.9,4 L195.9,26.48 L195.9,26.48 L0,26.48 L0,4 C-2.705415e-16,1.790861 1.790861,4.05812251e-16 4,0 Z" id="Rectangle" fill="#161628" fill-rule="nonzero"></path>
|
||||
<circle id="Oval" stroke="#FFFFFF" fill-rule="nonzero" cx="40.75" cy="13.24" r="4.3"></circle>
|
||||
<circle id="Oval" stroke="#FFFFFF" fill-rule="nonzero" cx="29.74" cy="13.24" r="4.3"></circle>
|
||||
<circle id="Oval" stroke="#FFFFFF" fill-rule="nonzero" cx="18.73" cy="13.24" r="4.3"></circle>
|
||||
<line x1="59.67" y1="13.89" x2="181.48" y2="13.89" id="Path" stroke="#FFFFFF" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<rect id="Rectangle" fill="#C0CCDC" fill-rule="nonzero" x="18.87" y="136.87" width="157.34" height="25.58" rx="4"></rect>
|
||||
<polygon id="Path" stroke="#FFFFFF" stroke-width="0.99" stroke-linecap="round" stroke-linejoin="round" points="38.2 151.95 38.2 145.35 32.48 142.05 26.77 145.35 26.77 151.95 32.48 155.26"></polygon>
|
||||
<line x1="54.85" y1="144.48" x2="42.46" y2="144.48" id="Path" stroke="#FFFFFF" stroke-width="0.99" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="54.85" y1="148.65" x2="42.46" y2="148.65" id="Path" stroke="#FFFFFF" stroke-width="0.99" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="49.92" y1="152.82" x2="42.46" y2="152.82" id="Path" stroke="#FFFFFF" stroke-width="0.99" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<polygon id="Path" stroke="#FFFFFF" stroke-width="0.99" stroke-linecap="round" stroke-linejoin="round" points="76.3 151.95 76.3 145.35 70.58 142.05 64.87 145.35 64.87 151.95 70.58 155.26"></polygon>
|
||||
<line x1="92.95" y1="144.48" x2="80.55" y2="144.48" id="Path" stroke="#FFFFFF" stroke-width="0.99" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="92.95" y1="148.65" x2="80.55" y2="148.65" id="Path" stroke="#FFFFFF" stroke-width="0.99" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="88.02" y1="152.82" x2="80.55" y2="152.82" id="Path" stroke="#FFFFFF" stroke-width="0.99" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<polygon id="Path" stroke="#FFFFFF" stroke-width="0.99" stroke-linecap="round" stroke-linejoin="round" points="114.4 151.95 114.4 145.35 108.68 142.05 102.97 145.35 102.97 151.95 108.68 155.26"></polygon>
|
||||
<line x1="131.04" y1="144.48" x2="118.65" y2="144.48" id="Path" stroke="#FFFFFF" stroke-width="0.99" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="131.04" y1="148.65" x2="118.65" y2="148.65" id="Path" stroke="#FFFFFF" stroke-width="0.99" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="126.12" y1="152.82" x2="118.65" y2="152.82" id="Path" stroke="#FFFFFF" stroke-width="0.99" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<polygon id="Path" stroke="#FFFFFF" stroke-width="0.99" stroke-linecap="round" stroke-linejoin="round" points="152.5 151.95 152.5 145.35 146.78 142.05 141.06 145.35 141.06 151.95 146.78 155.26"></polygon>
|
||||
<line x1="169.14" y1="144.48" x2="156.75" y2="144.48" id="Path" stroke="#FFFFFF" stroke-width="0.99" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="169.14" y1="148.65" x2="156.75" y2="148.65" id="Path" stroke="#FFFFFF" stroke-width="0.99" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="164.22" y1="152.82" x2="156.75" y2="152.82" id="Path" stroke="#FFFFFF" stroke-width="0.99" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<g id="Group-2" transform="translate(181.750000, 149.380000)">
|
||||
<path d="M2.50310812,-1.58525677 L32.0668922,28.4854583 L18.7987954,29.2918067 L22.8374745,40.3785687 L13.9015261,43.6269384 L9.86308336,32.5310228 L-0.819024498,40.4483498 L2.50310812,-1.58525677 Z" id="Path" stroke="#222222" stroke-width="1.4" fill="#FFFFFF" stroke-linejoin="round"></path>
|
||||
<polygon id="Path" fill-opacity="0.1" fill="#000000" fill-rule="nonzero" points="23.3 28.31 30.49 27.88 3.08 0"></polygon>
|
||||
</g>
|
||||
<circle id="Oval" fill-opacity="0.05" fill="#000000" fill-rule="nonzero" cx="97.96" cy="85.15" r="41.57"></circle>
|
||||
<path d="M116.44,81.5 L122.03,81.5 C123.686854,81.5 125.03,82.8431458 125.03,84.5 L125.03,128.98 C125.03,130.636854 123.686854,131.98 122.03,131.98 L116.44,131.98 C114.783146,131.98 113.44,130.636854 113.44,128.98 L113.44,84.5 C113.44,82.8431458 114.783146,81.5 116.44,81.5 Z M55.62,107.8 L61.21,107.8 C62.8668542,107.8 64.21,109.143146 64.21,110.8 L64.21,128.98 C64.21,130.636854 62.8668542,131.98 61.21,131.98 L55.62,131.98 C53.9631458,131.98 52.62,130.636854 52.62,128.98 L52.62,110.8 C52.62,109.143146 53.9631458,107.8 55.62,107.8 Z M75.89,97.2 L81.48,97.2 C83.1368542,97.2 84.48,98.5431458 84.48,100.2 L84.48,128.98 C84.48,130.636854 83.1368542,131.98 81.48,131.98 L75.89,131.98 C74.2331458,131.98 72.89,130.636854 72.89,128.98 L72.89,100.2 C72.89,98.5431458 74.2331458,97.2 75.89,97.2 Z M96.16,88.34 L101.75,88.34 C103.406854,88.34 104.75,89.6831458 104.75,91.34 L104.75,128.98 C104.75,130.636854 103.406854,131.98 101.75,131.98 L96.16,131.98 C94.5031458,131.98 93.16,130.636854 93.16,128.98 L93.16,91.34 C93.16,89.6831458 94.5031458,88.34 96.16,88.34 Z" id="Rectangle-4" fill="url(#linearGradient-13)" fill-rule="nonzero"></path>
|
||||
<rect id="Rectangle" fill="#91C0DB" fill-rule="nonzero" x="133.71" y="50.75" width="11.59" height="81.23"></rect>
|
||||
<rect id="Rectangle" fill="#7AB2CE" fill-rule="nonzero" x="142.41" y="50.75" width="2.88" height="81.23"></rect>
|
||||
<g id="Clipped" transform="translate(133.710000, 50.750000)">
|
||||
<mask id="mask-15" fill="white">
|
||||
<use xlink:href="#path-14"></use>
|
||||
</mask>
|
||||
<rect stroke="#222222" stroke-width="1.4" x="-0.7" y="-0.7" width="12.99" height="82.63" rx="3"></rect>
|
||||
<g id="Group" mask="url(#mask-15)" stroke="#A5D956" stroke-linecap="round" stroke-linejoin="round" stroke-width="0.99">
|
||||
<g transform="translate(-43.280000, -5.280000)" id="Path">
|
||||
<line x1="67.3" y1="0" x2="0" y2="25.47"></line>
|
||||
<line x1="68.93" y1="2.91" x2="1.63" y2="28.39"></line>
|
||||
<line x1="70.57" y1="5.82" x2="3.27" y2="31.3"></line>
|
||||
<line x1="72.2" y1="8.74" x2="4.9" y2="34.21"></line>
|
||||
<line x1="73.83" y1="11.65" x2="6.54" y2="37.12"></line>
|
||||
<line x1="75.47" y1="14.56" x2="8.17" y2="40.03"></line>
|
||||
<line x1="77.1" y1="17.47" x2="9.8" y2="42.95"></line>
|
||||
<line x1="78.74" y1="20.38" x2="11.44" y2="45.86"></line>
|
||||
<line x1="80.37" y1="23.3" x2="13.07" y2="48.77"></line>
|
||||
<line x1="82.01" y1="26.21" x2="14.71" y2="51.68"></line>
|
||||
<line x1="83.64" y1="29.12" x2="16.34" y2="54.6"></line>
|
||||
<line x1="85.28" y1="32.03" x2="17.98" y2="57.51"></line>
|
||||
<line x1="86.91" y1="34.95" x2="19.61" y2="60.42"></line>
|
||||
<line x1="88.54" y1="37.86" x2="21.25" y2="63.33"></line>
|
||||
<line x1="90.18" y1="40.77" x2="22.88" y2="66.25"></line>
|
||||
<line x1="91.81" y1="43.68" x2="24.51" y2="69.16"></line>
|
||||
<line x1="93.45" y1="46.59" x2="26.15" y2="72.07"></line>
|
||||
<line x1="82.68" y1="50.47" x2="15.38" y2="75.95"></line>
|
||||
<line x1="84.31" y1="53.39" x2="17.01" y2="78.86"></line>
|
||||
<line x1="85.95" y1="56.3" x2="18.65" y2="81.77"></line>
|
||||
<line x1="87.58" y1="59.21" x2="20.28" y2="84.69"></line>
|
||||
<line x1="89.22" y1="62.12" x2="21.92" y2="87.6"></line>
|
||||
<line x1="90.85" y1="65.04" x2="23.55" y2="90.51"></line>
|
||||
<line x1="92.49" y1="67.95" x2="25.19" y2="93.42"></line>
|
||||
<line x1="94.12" y1="70.86" x2="26.82" y2="96.34"></line>
|
||||
<line x1="95.75" y1="73.77" x2="28.46" y2="99.25"></line>
|
||||
<line x1="97.39" y1="76.69" x2="30.09" y2="102.16"></line>
|
||||
<line x1="99.02" y1="79.6" x2="31.72" y2="105.07"></line>
|
||||
<line x1="100.66" y1="82.51" x2="33.36" y2="107.98"></line>
|
||||
<line x1="102.29" y1="85.42" x2="34.99" y2="110.9"></line>
|
||||
<line x1="103.93" y1="88.33" x2="36.63" y2="113.81"></line>
|
||||
<line x1="105.56" y1="91.25" x2="38.26" y2="116.72"></line>
|
||||
<line x1="107.2" y1="94.16" x2="39.9" y2="119.63"></line>
|
||||
<line x1="108.83" y1="97.07" x2="41.53" y2="122.55"></line>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<path d="M118.908504,42.5973796 L125.359095,46.9384196 C105.950359,76.2027853 80.5320959,90.784865 49.89,90.3118276 L49.89,82.5334907 C63.1815485,82.9086095 76.3169975,79.6374119 87.8718471,73.0827196 C99.4129083,66.4662473 109.855027,56.2071021 118.908504,42.5973796 Z" id="Path" stroke="#222222" stroke-width="1.4" fill="#95A3BF" stroke-linejoin="round"></path>
|
||||
<path d="M119.17,43.57 L118.41,44.67 L121.34,46.67 C102.88,74.1 79.1,88.37 50.62,89.13 L50.62,89.64 C80.49,89.88 105.33,75.58 124.46,47.15 L119.17,43.57 Z" id="Path" fill-opacity="0.2" fill="#FFFFFF" fill-rule="nonzero"></path>
|
||||
<path d="M129.354784,34.163995 L128.062473,54.6936046 L110.922346,43.3121976 L129.354784,34.163995 Z" id="Path" stroke="#222222" stroke-width="1.4" fill="#95A3BF" stroke-linejoin="round"></path>
|
||||
<polygon id="Path" fill-opacity="0.2" fill="#FFFFFF" fill-rule="nonzero" points="123.28 50.74 127.41 53.48 128.55 35.37 124.11 37.57"></polygon>
|
||||
<line x1="23.08" y1="43.24" x2="29.81" y2="43.24" id="Path" stroke="#91C0DB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="23.08" y1="47.42" x2="29.81" y2="47.42" id="Path" stroke="#91C0DB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="23.08" y1="51.59" x2="26.78" y2="51.59" id="Path" stroke="#91C0DB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="23.08" y1="60.33" x2="29.81" y2="60.33" id="Path" stroke="#91C0DB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="23.08" y1="64.5" x2="29.81" y2="64.5" id="Path" stroke="#91C0DB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="23.08" y1="68.68" x2="26.78" y2="68.68" id="Path" stroke="#91C0DB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="35.49" y1="43.24" x2="42.22" y2="43.24" id="Path" stroke="#91C0DB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="35.49" y1="47.42" x2="42.22" y2="47.42" id="Path" stroke="#91C0DB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="35.49" y1="51.59" x2="39.19" y2="51.59" id="Path" stroke="#91C0DB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="165.78" y1="43.24" x2="172.51" y2="43.24" id="Path" stroke="#4194D8" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="165.78" y1="47.42" x2="172.51" y2="47.42" id="Path" stroke="#4194D8" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<line x1="165.78" y1="51.59" x2="169.48" y2="51.59" id="Path" stroke="#4194D8" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></line>
|
||||
<polygon id="Path" fill="#B2DBF7" fill-rule="nonzero" points="27.87 129.58 27.87 126.64 25.32 125.17 22.78 126.64 22.78 129.58 25.32 131.05"></polygon>
|
||||
<polygon id="Path" fill="#B2DBF7" fill-rule="nonzero" points="34.08 129.58 34.08 126.64 31.53 125.17 28.99 126.64 28.99 129.58 31.53 131.05"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 42 KiB |
|
@ -364,26 +364,26 @@ if (is_ajax() === true) {
|
|||
break;
|
||||
|
||||
case AGENT_MODULE_STATUS_CRITICAL_BAD:
|
||||
$status = ui_print_status_image('module_critical.png', $data_module, false);
|
||||
$status = ui_print_status_image('module_critical.png', $data_module, true);
|
||||
break;
|
||||
|
||||
case AGENT_MODULE_STATUS_WARNING:
|
||||
$status = ui_print_status_image('module_warning.png', $data_module, false);
|
||||
$status = ui_print_status_image('module_warning.png', $data_module, true);
|
||||
break;
|
||||
|
||||
case AGENT_MODULE_STATUS_NORMAL_ALERT:
|
||||
case AGENT_MODULE_STATUS_WARNING_ALERT:
|
||||
case AGENT_MODULE_STATUS_CRITICAL_ALERT:
|
||||
$status = ui_print_status_image('module_alertsfired.png', $data_module, false);
|
||||
$status = ui_print_status_image('module_alertsfired.png', $data_module, true);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
$status = ui_print_status_image('module_no_data.png', $data_module, false);
|
||||
case AGENT_MODULE_STATUS_NO_DATA:
|
||||
$status = ui_print_status_image('module_no_data.png', $data_module, true);
|
||||
break;
|
||||
|
||||
default:
|
||||
case AGENT_MODULE_STATUS_UNKNOWN:
|
||||
$status = ui_print_status_image('module_unknown.png', $data_module, false);
|
||||
$status = ui_print_status_image('module_unknown.png', $data_module, true);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -1152,6 +1152,10 @@ if (check_login()) {
|
|||
$title
|
||||
);
|
||||
|
||||
if (strlen($module['ip_target']) !== 0) {
|
||||
$title .= '<br/>IP: '.$module['ip_target'];
|
||||
}
|
||||
|
||||
$last_status_change_text = __('Time elapsed since last status change: ');
|
||||
$last_status_change_text .= (empty($module['last_status_change']) === false) ? human_time_comparation($module['last_status_change']) : __('N/A');
|
||||
|
||||
|
|
|
@ -318,17 +318,29 @@ class AuditLog extends HTML
|
|||
|
||||
$count = (int) db_get_value_sql(sprintf('SELECT COUNT(*) as "total" FROM tsesion WHERE %s', $filter));
|
||||
|
||||
$sql = sprintf(
|
||||
'SELECT *
|
||||
FROM tsesion
|
||||
WHERE %s
|
||||
ORDER BY %s
|
||||
LIMIT %d, %d',
|
||||
$filter,
|
||||
$order,
|
||||
$start,
|
||||
$length
|
||||
);
|
||||
if ($length !== '-1') {
|
||||
$sql = sprintf(
|
||||
'SELECT *
|
||||
FROM tsesion
|
||||
WHERE %s
|
||||
ORDER BY %s
|
||||
LIMIT %d, %d',
|
||||
$filter,
|
||||
$order,
|
||||
$start,
|
||||
$length
|
||||
);
|
||||
} else {
|
||||
$sql = sprintf(
|
||||
'SELECT *
|
||||
FROM tsesion
|
||||
WHERE %s
|
||||
ORDER BY %s',
|
||||
$filter,
|
||||
$order
|
||||
);
|
||||
}
|
||||
|
||||
$data = db_get_all_rows_sql($sql);
|
||||
|
||||
if (empty($data) === false) {
|
||||
|
|
|
@ -102,12 +102,26 @@ class Heatmap
|
|||
protected $group = null;
|
||||
|
||||
/**
|
||||
* Heatmap group.
|
||||
* Heatmap dashboard.
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
protected $dashboard = null;
|
||||
|
||||
/**
|
||||
* Public hash.
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
protected $hash = null;
|
||||
|
||||
/**
|
||||
* Public user.
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
protected $publicUser = null;
|
||||
|
||||
|
||||
/**
|
||||
* Constructor function
|
||||
|
@ -131,7 +145,9 @@ class Heatmap
|
|||
int $height=0,
|
||||
string $search=null,
|
||||
int $group=1,
|
||||
bool $dashboard=false
|
||||
bool $dashboard=false,
|
||||
string $hash='',
|
||||
string $publicUser=''
|
||||
) {
|
||||
$this->type = $type;
|
||||
$this->filter = $filter;
|
||||
|
@ -142,6 +158,8 @@ class Heatmap
|
|||
$this->search = $search;
|
||||
$this->group = $group;
|
||||
$this->dashboard = $dashboard;
|
||||
$this->hash = $hash;
|
||||
$this->publicUser = $publicUser;
|
||||
}
|
||||
|
||||
|
||||
|
@ -164,15 +182,18 @@ class Heatmap
|
|||
false
|
||||
),
|
||||
'data' => [
|
||||
'page' => 'operation/heatmap',
|
||||
'method' => 'showHeatmap',
|
||||
'randomId' => $this->randomId,
|
||||
'type' => $this->type,
|
||||
'filter' => $this->filter,
|
||||
'refresh' => $this->refresh,
|
||||
'search' => $this->search,
|
||||
'group' => $this->group,
|
||||
'dashboard' => (int) $this->dashboard,
|
||||
'page' => 'operation/heatmap',
|
||||
'method' => 'showHeatmap',
|
||||
'randomId' => $this->randomId,
|
||||
'type' => $this->type,
|
||||
'filter' => $this->filter,
|
||||
'refresh' => $this->refresh,
|
||||
'search' => $this->search,
|
||||
'group' => $this->group,
|
||||
'dashboard' => (int) $this->dashboard,
|
||||
'auth_hash' => $this->hash,
|
||||
'auth_class' => 'PandoraFMS\Dashboard\Manager',
|
||||
'id_user' => $this->publicUser,
|
||||
],
|
||||
];
|
||||
|
||||
|
@ -1090,6 +1111,7 @@ class Heatmap
|
|||
case 3:
|
||||
$status = 'unknown';
|
||||
break;
|
||||
case AGENT_MODULE_STATUS_NO_DATA:
|
||||
case AGENT_MODULE_STATUS_NOT_INIT:
|
||||
case 5:
|
||||
$status = 'notinit';
|
||||
|
|
|
@ -568,7 +568,7 @@ class TipsWindow
|
|||
}
|
||||
|
||||
$sql = sprintf(
|
||||
'SELECT id, name AS language, title, text, url, enable
|
||||
'SELECT id, id_language AS language, title, text, url, enable
|
||||
FROM twelcome_tip t
|
||||
LEFT JOIN tlanguage l ON t.id_lang COLLATE utf8mb4_unicode_ci = CONVERT(l.id_language USING utf8mb4) COLLATE utf8mb4_unicode_ci
|
||||
%s %s %s',
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
/**
|
||||
* Pandora build version and version
|
||||
*/
|
||||
$build_version = 'PC230509';
|
||||
$build_version = 'PC230517';
|
||||
$pandora_version = 'v7.0NG.771';
|
||||
|
||||
// Do not overwrite default timezone set if defined.
|
||||
|
@ -220,7 +220,7 @@ if (!isset($config['inventory_changes_blacklist'])) {
|
|||
if (!isset($config['url_update_manager'])) {
|
||||
config_update_value(
|
||||
'url_update_manager',
|
||||
'https://licensing.artica.es/pandoraupdate7/server.php'
|
||||
'https://licensing.pandorafms.com/pandoraupdate7/server.php'
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -2149,8 +2149,9 @@ function get_group_alerts(
|
|||
break;
|
||||
}
|
||||
|
||||
// WHEN SELECT ALL TAGS TO FILTER ALERTS
|
||||
$modules_tags = count(db_process_sql('select * from ttag'));
|
||||
// WHEN SELECT ALL TAGS TO FILTER ALERTS.
|
||||
$modules_tag_query = db_process_sql('select * from ttag');
|
||||
$modules_tags = ($modules_tag_query !== false) ? (count($modules_tag_query)) : false;
|
||||
|
||||
$modules_user_tags = count(explode(',', $tag));
|
||||
|
||||
|
|
|
@ -3813,7 +3813,7 @@ function get_um_url()
|
|||
$url = $config['url_update_manager'];
|
||||
$url = substr($url, 0, (strlen($url) - strpos(strrev($url), '/')));
|
||||
} else {
|
||||
$url = 'https://licensing.artica.es/pandoraupdate7/';
|
||||
$url = 'https://licensing.pandorafms.com/pandoraupdate7/';
|
||||
config_update_value(
|
||||
'url_update_manager',
|
||||
$url.'/server.php'
|
||||
|
|
|
@ -4622,6 +4622,14 @@ function html_print_image(
|
|||
$output .= 'data-use_title_for_force_title="1" ';
|
||||
}
|
||||
|
||||
if (isset($options['main_menu_icon']) && $options['main_menu_icon'] != '') {
|
||||
if (isset($options['class'])) {
|
||||
$options['class'] .= ' main_menu_icon';
|
||||
} else {
|
||||
$options['class'] = 'main_menu_icon';
|
||||
}
|
||||
}
|
||||
|
||||
// Valid attributes (invalid attributes get skipped).
|
||||
$attrs = [
|
||||
'height',
|
||||
|
|
|
@ -834,12 +834,80 @@ function get_data_basic_info_sql($params, $count=false)
|
|||
);
|
||||
}
|
||||
|
||||
if ($params['order'] > 0) {
|
||||
$str_split = explode(' ', $params['order']);
|
||||
switch ($str_split[0]) {
|
||||
case 'alias':
|
||||
$params['order'] = 'alias '.$str_split[1];
|
||||
break;
|
||||
|
||||
case 'ip':
|
||||
$params['order'] = 'direccion '.$str_split[1];
|
||||
break;
|
||||
|
||||
case 'secondoaryIp':
|
||||
$params['order'] = 'fixed_ip '.$str_split[1];
|
||||
break;
|
||||
|
||||
case 'group':
|
||||
$params['order'] = 'id_grupo '.$str_split[1];
|
||||
break;
|
||||
|
||||
case 'secondaryGroups':
|
||||
$params['order'] = 'tagent_secondary_group.id_group '.$str_split[1];
|
||||
break;
|
||||
|
||||
case 'description':
|
||||
$params['order'] = 'comentarios '.$str_split[1];
|
||||
break;
|
||||
|
||||
case 'os':
|
||||
$params['order'] = 'id_os '.$str_split[1];
|
||||
break;
|
||||
|
||||
case 'interval':
|
||||
$params['order'] = 'intervalo '.$str_split[1];
|
||||
break;
|
||||
|
||||
case 'lastContact':
|
||||
$params['order'] = 'ultimo_contacto '.$str_split[1];
|
||||
break;
|
||||
|
||||
case 'lastStatusChange':
|
||||
$params['order'] = 'tagente_estado.last_status_change '.$str_split[1];
|
||||
break;
|
||||
|
||||
case 'customFields':
|
||||
$params['order'] = 'tagent_custom_data.id_field '.$str_split[1];
|
||||
break;
|
||||
|
||||
case 'valuesCustomFields':
|
||||
$params['order'] = 'tagent_custom_data.description '.$str_split[1];
|
||||
break;
|
||||
|
||||
default:
|
||||
$params['order'] = 'alias '.$str_split[1];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$limit_condition = '';
|
||||
$order_condition = '';
|
||||
$fields = 'count(*)';
|
||||
$innerjoin = '';
|
||||
$groupby = '';
|
||||
|
||||
$table = 'tagente';
|
||||
if (is_metaconsole() === true) {
|
||||
$table = 'tmetaconsole_agent';
|
||||
}
|
||||
|
||||
if ($count !== true) {
|
||||
$fields = '*';
|
||||
|
||||
$innerjoin = 'LEFT JOIN tagente_estado ON '.$table.'.id_agente = tagente_estado.id_agente ';
|
||||
$innerjoin .= 'LEFT JOIN tagent_secondary_group ON '.$table.'.id_agente = tagent_secondary_group.id_agent ';
|
||||
$innerjoin .= 'LEFT JOIN tagent_custom_data ON '.$table.'.id_agente = tagent_custom_data.id_agent ';
|
||||
$groupby = 'GROUP BY '.$table.'.id_agente';
|
||||
$limit_condition = sprintf(
|
||||
'LIMIT %d, %d',
|
||||
$params['start'],
|
||||
|
@ -849,20 +917,19 @@ function get_data_basic_info_sql($params, $count=false)
|
|||
$order_condition = sprintf('ORDER BY %s', $params['order']);
|
||||
}
|
||||
|
||||
$table = 'tagente';
|
||||
if (is_metaconsole() === true) {
|
||||
$table = 'tmetaconsole_agent';
|
||||
}
|
||||
|
||||
$sql = sprintf(
|
||||
'SELECT %s
|
||||
FROM %s
|
||||
%s
|
||||
%s
|
||||
%s
|
||||
%s
|
||||
%s',
|
||||
$fields,
|
||||
$table,
|
||||
$innerjoin,
|
||||
$where,
|
||||
$groupby,
|
||||
$order_condition,
|
||||
$limit_condition
|
||||
);
|
||||
|
|
|
@ -868,6 +868,7 @@ if (is_ajax()) {
|
|||
global $pandora_version;
|
||||
global $build_version;
|
||||
$product_name = io_safe_output(get_product_name());
|
||||
$license_expiry_date = substr($config['license_expiry_date'], 0, 4).'/'.substr($config['license_expiry_date'], 4, 2).'/'.substr($config['license_expiry_date'], 6, 2);
|
||||
|
||||
include_once $config['homedir'].'/include/class/Diagnostics.class.php';
|
||||
$d = new Diagnostics;
|
||||
|
@ -957,7 +958,7 @@ if (is_ajax()) {
|
|||
<p><span>'.__('Version').' '.$pandora_version.' - '.(enterprise_installed() ? 'Enterprise' : 'Community').'</span></p>
|
||||
<p><span>'.__('MR version').'</span> MR'.$config['MR'].'</p>
|
||||
<p><span>'.__('Build').'</span> '.$build_version.'</p>
|
||||
<p style="margin-bottom: 20px!important;"><span>'.__('Support expires').'</span> 2023/04/26</p>';
|
||||
<p style="margin-bottom: 20px!important;"><span>'.__('Support expires').'</span>'.$license_expiry_date.'</p>';
|
||||
|
||||
if (((bool) check_acl($config['id_user'], 0, 'PM') === true) && (is_metaconsole() === false)) {
|
||||
$dialogButtons = [];
|
||||
|
|
|
@ -988,7 +988,10 @@ function ui_print_type_agent_icon(
|
|||
$output = html_print_image(
|
||||
'images/satellite@os.svg',
|
||||
true,
|
||||
['class' => 'main_menu_icon invert_filter'],
|
||||
[
|
||||
'class' => 'main_menu_icon invert_filter',
|
||||
'style' => 'padding-right: 10px;',
|
||||
],
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
|
@ -1000,7 +1003,10 @@ function ui_print_type_agent_icon(
|
|||
$output = html_print_image(
|
||||
'images/network-server@os.svg',
|
||||
true,
|
||||
['class' => 'main_menu_icon invert_filter'],
|
||||
[
|
||||
'class' => 'main_menu_icon invert_filter',
|
||||
'style' => 'padding-right: 10px;',
|
||||
],
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
|
@ -1012,7 +1018,10 @@ function ui_print_type_agent_icon(
|
|||
$output = html_print_image(
|
||||
'images/data-server@svg.svg',
|
||||
true,
|
||||
['class' => 'main_menu_icon invert_filter'],
|
||||
[
|
||||
'class' => 'main_menu_icon invert_filter',
|
||||
'style' => 'padding-right: 10px;',
|
||||
],
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
|
@ -2439,7 +2448,7 @@ function ui_pagination(
|
|||
$script_modified
|
||||
);
|
||||
|
||||
$anchorHref = 'javascript: ".$script_modified.";';
|
||||
$anchorHref = 'javascript: '.$script_modified.';';
|
||||
} else {
|
||||
$anchorHref = $url.'&'.$offset_name.'='.$offset_page;
|
||||
}
|
||||
|
@ -2484,7 +2493,7 @@ function ui_pagination(
|
|||
$script_modified
|
||||
);
|
||||
|
||||
$nextHref = 'javascript: ".$script_modified.";';
|
||||
$nextHref = 'javascript: '.$script_modified.';';
|
||||
} else {
|
||||
$nextHref = $url.'&'.$offset_name.'='.$offset_next_page;
|
||||
}
|
||||
|
@ -2516,7 +2525,7 @@ function ui_pagination(
|
|||
$script_modified
|
||||
);
|
||||
|
||||
$lastHref = 'javascript: ".$script_modified.";';
|
||||
$lastHref = 'javascript: '.$script_modified.';';
|
||||
} else {
|
||||
$lastHref = $url.'&'.$offset_name.'='.$offset_lastpage;
|
||||
}
|
||||
|
|
|
@ -344,7 +344,11 @@ function drawRating($rating, $width, $height, $font, $out_of_lim_str, $mode, $fo
|
|||
$image = imagecreate($width, $height);
|
||||
|
||||
// colors
|
||||
$back = imagecolorallocate($image, 241, 241, 241);
|
||||
if ($config['style'] === 'pandora_black') {
|
||||
$back = imagecolorallocate($image, 34, 34, 34);
|
||||
} else {
|
||||
$back = imagecolorallocate($image, 241, 241, 241);
|
||||
}
|
||||
|
||||
$bordercolor = imagecolorallocate($image, 241, 241, 241);
|
||||
$text = imagecolorallocate($image, 74, 74, 74);
|
||||
|
|
|
@ -826,7 +826,7 @@ function sunburst(recipient, data, width, height, tooltip = true) {
|
|||
height = width;
|
||||
}
|
||||
|
||||
var radius = Math.min(width, height) / 2;
|
||||
var radius = Math.min(width, height) / 2 - 40;
|
||||
|
||||
var x = d3.scale.linear().range([0, 2 * Math.PI]);
|
||||
|
||||
|
|
|
@ -1436,7 +1436,7 @@ function openURLTagWindow(url) {
|
|||
function defineTinyMCE(selector) {
|
||||
tinymce.init({
|
||||
selector: selector,
|
||||
plugins: "preview, searchreplace, table, nonbreaking",
|
||||
plugins: "preview, searchreplace, table, nonbreaking, link, image",
|
||||
promotion: false,
|
||||
branding: false
|
||||
});
|
||||
|
|
|
@ -445,7 +445,12 @@ function save_data_input(calendar) {
|
|||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
function loadEventBBDD(events) {
|
||||
if (events == undefined || events === null || events === "") {
|
||||
if (
|
||||
events == undefined ||
|
||||
events === null ||
|
||||
events === "null" ||
|
||||
events === ""
|
||||
) {
|
||||
$(".alert_schedule").show();
|
||||
return {};
|
||||
}
|
||||
|
|
|
@ -920,7 +920,8 @@ var TreeController = {
|
|||
|
||||
if (
|
||||
typeof element.elementDescription !== "undefined" &&
|
||||
element.elementDescription != ""
|
||||
element.elementDescription != "" &&
|
||||
element.elementDescription != null
|
||||
) {
|
||||
$content.append(
|
||||
'<span class="node-service-name" style="">' +
|
||||
|
|
|
@ -156,6 +156,9 @@ final class DBMaintainer
|
|||
return true;
|
||||
}
|
||||
|
||||
// Problem with php 8.1.
|
||||
mysqli_report(MYSQLI_REPORT_OFF);
|
||||
|
||||
$link = mysqli_init();
|
||||
$link->options(MYSQLI_OPT_CONNECT_TIMEOUT, 2);
|
||||
$rc = mysqli_real_connect(
|
||||
|
|
|
@ -643,17 +643,19 @@ class AvgSumMaxMinModule extends Widget
|
|||
$output .= '<div class="container-center" id="container-'.$uuid.'">';
|
||||
|
||||
$orientation = '';
|
||||
$extraClass = '';
|
||||
if ((int) $this->values['horizontal'] === 1) {
|
||||
$orientation = 'flex aligni_center';
|
||||
} else {
|
||||
$orientation = 'grid';
|
||||
$extraClass = 'mrgn_btn_20px';
|
||||
}
|
||||
|
||||
// General div.
|
||||
$output .= '<div class="'.$orientation.'" id="general-'.$uuid.'">';
|
||||
|
||||
// Div value.
|
||||
$output .= '<div class="pdd_l_15px pdd_r_15px mrgn_btn_20px" style="line-height: '.$sizeValue.'px; font-size:'.$sizeValue.'px;'.$text_color.'">';
|
||||
$output .= '<div class="pdd_l_15px pdd_r_15px '.$extraClass.'" style="line-height: '.$sizeValue.'px; font-size:'.$sizeValue.'px;'.$text_color.'">';
|
||||
|
||||
if (is_numeric($data) === true) {
|
||||
$dataDatos = remove_right_zeros(
|
||||
|
|
|
@ -503,15 +503,23 @@ class ColorModuleTabs extends Widget
|
|||
if (isset($this->values['formatData']) === true
|
||||
&& (bool) $this->values['formatData'] === true
|
||||
) {
|
||||
$output .= format_for_graph(
|
||||
$data['data'],
|
||||
$config['graph_precision']
|
||||
);
|
||||
if (is_numeric($data['data']) === true) {
|
||||
$output .= format_for_graph(
|
||||
$data['data'],
|
||||
$config['graph_precision']
|
||||
);
|
||||
} else {
|
||||
$output .= ui_print_truncate_text($data['data'], 20);
|
||||
}
|
||||
} else {
|
||||
$output .= sla_truncate(
|
||||
$data['data'],
|
||||
$config['graph_precision']
|
||||
);
|
||||
if (is_numeric($data['data']) === true) {
|
||||
$output .= sla_truncate(
|
||||
$data['data'],
|
||||
$config['graph_precision']
|
||||
);
|
||||
} else {
|
||||
$output .= ui_print_truncate_text($data['data'], 20);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$output .= '--';
|
||||
|
|
|
@ -658,6 +658,10 @@ class EventsListWidget extends Widget
|
|||
|
||||
$table_id = 'dashboard_list_events_'.$this->cellId;
|
||||
|
||||
// Public dashboard.
|
||||
$hash = get_parameter('auth_hash', '');
|
||||
$id_user = get_parameter('id_user', '');
|
||||
|
||||
// Print datatable.
|
||||
$output .= ui_print_datatable(
|
||||
[
|
||||
|
@ -671,6 +675,9 @@ class EventsListWidget extends Widget
|
|||
'filter' => $filter,
|
||||
'length' => $this->values['limit'],
|
||||
'groupRecursion' => (bool) $this->values['groupRecursion'],
|
||||
'auth_hash' => $hash,
|
||||
'auth_class' => 'PandoraFMS\Dashboard\Manager',
|
||||
'id_user' => $id_user,
|
||||
],
|
||||
'default_pagination' => $this->values['limit'],
|
||||
'pagination_options' => [
|
||||
|
|
|
@ -441,8 +441,12 @@ class HeatmapWidget extends Widget
|
|||
$filter = explode(',', $values['module_groups'][0]);
|
||||
}
|
||||
|
||||
// Public dashboard.
|
||||
$auth_hash = get_parameter('auth_hash', '');
|
||||
$public_user = get_parameter('id_user', '');
|
||||
|
||||
// Control call flow.
|
||||
$heatmap = new Heatmap($type, $filter, null, 300, 400, 200, $search, 0, true);
|
||||
$heatmap = new Heatmap($type, $filter, null, 300, 400, 200, $search, 0, true, $auth_hash, $public_user);
|
||||
// AJAX controller.
|
||||
if (is_ajax() === true) {
|
||||
$method = get_parameter('method');
|
||||
|
|
|
@ -1,14 +1,74 @@
|
|||
.green_title {
|
||||
background-color: #82b92e;
|
||||
.new-board {
|
||||
background-color: #ffffff;
|
||||
border: 1px solid #e5e9ed;
|
||||
border-radius: 4px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.new-board-header {
|
||||
background-image: linear-gradient(180deg, #fdfdfe 0%, #ffffff 100%);
|
||||
border-radius: 4px 4px 0 0;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: nowrap;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.new-board-title {
|
||||
font-weight: 600;
|
||||
width: auto;
|
||||
text-align: center;
|
||||
display: block;
|
||||
padding: 1em;
|
||||
font-size: 1.3em;
|
||||
color: #fff;
|
||||
font-size: 16px;
|
||||
line-height: 24px;
|
||||
color: #161628;
|
||||
margin: 15px;
|
||||
}
|
||||
|
||||
.new-board-author {
|
||||
color: #8a96a6;
|
||||
margin: 15px;
|
||||
}
|
||||
|
||||
.new.content {
|
||||
padding: 0 4em 2em;
|
||||
padding: 0 15px 15px;
|
||||
}
|
||||
|
||||
.default-new {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: nowrap;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.default-new > div > img {
|
||||
width: 100%;
|
||||
max-width: 430px;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.default-new > div.default-text-new {
|
||||
margin-left: 20px;
|
||||
width: 400px;
|
||||
}
|
||||
|
||||
.default-new > div.default-text-new > p {
|
||||
color: #454545;
|
||||
font-size: 15px;
|
||||
line-height: 24px;
|
||||
}
|
||||
|
||||
.default-new > div.default-text-new > p:first-child {
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
.default-new > div.default-text-new > span {
|
||||
color: #8a96a6;
|
||||
font-size: 11px;
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1430px) {
|
||||
.default-new > div.default-text-new > p {
|
||||
font-size: 12px;
|
||||
line-height: 18px;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -208,7 +208,8 @@
|
|||
}
|
||||
.select2-container--default.select2-container--disabled
|
||||
.select2-selection--single {
|
||||
background-color: #eee;
|
||||
background-color: #e5e9ed !important;
|
||||
color: #8a96a6;
|
||||
cursor: default;
|
||||
}
|
||||
.select2-container--default.select2-container--disabled
|
||||
|
|
|
@ -323,6 +323,9 @@ a.pandora_pagination {
|
|||
line-height: 35px;
|
||||
cursor: pointer;
|
||||
}
|
||||
a.pandora_pagination:first-child {
|
||||
border-left: 1px solid #cacaca;
|
||||
}
|
||||
a.pandora_pagination.next {
|
||||
border-top-right-radius: 8px;
|
||||
border-bottom-right-radius: 8px;
|
||||
|
|
|
@ -32,3 +32,30 @@ rect {
|
|||
#list_agents_tactical_wrapper .dataTables_length {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
#tactic_view {
|
||||
display: flex;
|
||||
}
|
||||
#tactic_view .tactical_group_left_column:first-child {
|
||||
margin-right: 12px;
|
||||
}
|
||||
#tactic_view > .tactical_group_right_column {
|
||||
margin-left: 5px;
|
||||
}
|
||||
#tactic_view .tactical_group_left_columns {
|
||||
display: flex;
|
||||
}
|
||||
@media (max-width: 1380px) {
|
||||
#tactic_view .tactical_group_left_columns {
|
||||
width: 100%;
|
||||
}
|
||||
.tactical_group_left_column {
|
||||
width: 50%;
|
||||
}
|
||||
.tactical_group_right_column {
|
||||
width: 100%;
|
||||
}
|
||||
#tactic_view {
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -131,7 +131,7 @@
|
|||
<div style='padding-bottom: 50px'>
|
||||
<?php
|
||||
$version = '7.0NG.771';
|
||||
$build = '230509';
|
||||
$build = '230517';
|
||||
$banner = "v$version Build $build";
|
||||
error_reporting(0);
|
||||
|
||||
|
|
|
@ -1039,9 +1039,10 @@ $tableAgents->head[2] = '<span>'.__('OS').'</span>';
|
|||
$tableAgents->head[2] .= ui_get_sorting_arrows($url_up_os, $url_down_os, $selectOsUp, $selectOsDown);
|
||||
$tableAgents->size[2] = '5%';
|
||||
|
||||
$tableAgents->head[3] = '<span>'.__('Interval').'</span>';
|
||||
$tableAgents->head[3] .= ui_get_sorting_arrows($url_up_interval, $url_down_interval, $selectIntervalUp, $selectIntervalDown);
|
||||
$tableAgents->size[3] = '7%';
|
||||
/*
|
||||
$tableAgents->head[3] = '<span>'.__('Interval').'</span>';
|
||||
$tableAgents->head[3] .= ui_get_sorting_arrows($url_up_interval, $url_down_interval, $selectIntervalUp, $selectIntervalDown);
|
||||
$tableAgents->size[3] = '7%';*/
|
||||
|
||||
$tableAgents->head[4] = '<span>'.__('Group').'</span>';
|
||||
$tableAgents->head[4] .= ui_get_sorting_arrows($url_up_group, $url_down_group, $selectGroupUp, $selectGroupDown);
|
||||
|
@ -1073,7 +1074,7 @@ $tableAgents->size[11] = '6%';
|
|||
$tableAgents->align = [];
|
||||
|
||||
$tableAgents->align[2] = 'left';
|
||||
$tableAgents->align[3] = 'left';
|
||||
// $tableAgents->align[3] = 'left';
|
||||
$tableAgents->align[4] = 'left';
|
||||
$tableAgents->align[5] = 'left';
|
||||
$tableAgents->align[6] = 'left';
|
||||
|
@ -1166,7 +1167,7 @@ foreach ($agents as $agent) {
|
|||
|
||||
$data[0] .= '</div>';
|
||||
|
||||
$data[1] = '<span class="'.$custom_font_size.'">'.ui_print_truncate_text($agent['description'], 'description', false, true, true, '[…]').'</span>';
|
||||
$data[1] = '<span class="'.$custom_font_size.'">'.ui_print_truncate_text($agent['description'], 'description', false, true, true, '[…]', 'font-size:6.5pt').'</span>';
|
||||
|
||||
$data[2] = '';
|
||||
|
||||
|
@ -1177,9 +1178,10 @@ foreach ($agents as $agent) {
|
|||
true
|
||||
);
|
||||
|
||||
$data[3] = '<span>'.human_time_description_raw(
|
||||
/*
|
||||
$data[3] = '<span>'.human_time_description_raw(
|
||||
$agent['intervalo']
|
||||
).'</span>';
|
||||
).'</span>';*/
|
||||
$data[4] = '<a href="'.$config['homeurl'].'index.php?sec=view&sec2=operation/agentes/estado_agente&refr=60&group_id='.$agent['id_grupo'].'">';
|
||||
$data[4] .= ui_print_group_icon(
|
||||
$agent['id_grupo'],
|
||||
|
|
|
@ -517,14 +517,12 @@ $data_opcional->class = 'floating_form';
|
|||
$agentAdditionalContent = '';
|
||||
// Position Information.
|
||||
if ((bool) $config['activate_gis'] === true) {
|
||||
$data_opcional->data['agent_position'][0] = __('Position (Long, Lat)');
|
||||
$dataPositionAgent = gis_get_data_last_position_agent(
|
||||
$agent['id_agente']
|
||||
);
|
||||
if (is_array($dataPositionAgent) === true && $dataPositionAgent['stored_longitude'] !== '' && $dataPositionAgent['stored_longitude'] !== '') {
|
||||
$data_opcional->data['agent_position'][0] = __('Position (Long, Lat)');
|
||||
|
||||
if ($dataPositionAgent === false) {
|
||||
$data_opcional->data['agent_position'][1] = __('There is no GIS data.');
|
||||
} else {
|
||||
$dataOptionalOutput = html_print_anchor(
|
||||
[
|
||||
'href' => 'index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=gis&id_agente='.$id_agente,
|
||||
|
|
|
@ -149,7 +149,7 @@ if (is_ajax() === true) {
|
|||
$tmp->alias .= $server['server_name'].' » ';
|
||||
}
|
||||
|
||||
$id = $agent['id_agente'];
|
||||
$id = !empty($agent['id_agente']) ? $agent['id_agente'] : $agent['id_agent'];
|
||||
|
||||
$tmp->alias .= $agent['alias'];
|
||||
$ip = '<em>'.__('N/A').'</em>';
|
||||
|
@ -198,7 +198,7 @@ if (is_ajax() === true) {
|
|||
$interval = human_time_description_raw($agent['intervalo'], false, 'large');
|
||||
$last_contact = ui_print_timestamp($agent['ultimo_contacto'], true);
|
||||
// $last_contact .= ' / '.date_w_fixed_tz($agent['ultimo_contacto_remoto']);
|
||||
$last_status_change_agent = agents_get_last_status_change($agent['id_agente']);
|
||||
$last_status_change_agent = agents_get_last_status_change($id);
|
||||
$time_elapsed = !empty($last_status_change_agent) ? human_time_comparation($last_status_change_agent) : '<em>'.__('N/A').'</em>';
|
||||
|
||||
$sql_fields = 'SELECT tcf.name, tcd.description, tcf.is_password_type
|
||||
|
|
|
@ -462,7 +462,7 @@ $usr_groups = (users_get_groups($config['id_user'], 'AR', $display_all_group));
|
|||
$id_usr = $config['id_user'];
|
||||
|
||||
$skin = '';
|
||||
if (!$meta) {
|
||||
|
||||
$home_screen = '<div class="label_select"><p class="edit_user_labels">'.__('Home screen').ui_print_help_tip(__('User can customize the home page. By default, will display \'Agent Detail\'. Example: Select \'Other\' and type index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente=1 to show agent detail view'), true).'</p>';
|
||||
$values = [
|
||||
'Default' => __('Default'),
|
||||
|
@ -520,163 +520,151 @@ if (!$meta) {
|
|||
$skin .= skins_print_select($id_usr, 'skin', $user_info['id_skin'], '', __('None'), 0, true).'</div>';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$home_screen = '';
|
||||
// User only can change skins if has more than one group.
|
||||
if (function_exists('skins_print_select')) {
|
||||
if (count($usr_groups) > 1) {
|
||||
$skin = '<div class="label_select"><p class="edit_user_labels">'.__('Theme').ui_print_help_tip(
|
||||
__('This change will only apply to nodes'),
|
||||
true
|
||||
).'</p>';
|
||||
$skin .= skins_print_select($id_usr, 'skin', $user_info['id_skin'], '', __('None'), 0, true).'</div>';
|
||||
|
||||
|
||||
$timezone = '<div class="label_select"><p class="edit_user_labels">'.__('Timezone').ui_print_help_tip(__('The timezone must be that of the associated server.'), true).'</p>';
|
||||
$timezone .= html_print_timezone_select('timezone', $user_info['timezone']).'</div>';
|
||||
|
||||
// Double auth.
|
||||
$double_auth_enabled = (bool) db_get_value('id', 'tuser_double_auth', 'id_user', $config['id_user']);
|
||||
|
||||
if ((bool) $config['double_auth_enabled'] === true) {
|
||||
$double_authentication = '<div class="label_select_simple"><p class="edit_user_labels">'.__('Double authentication').'</p>';
|
||||
if (($config['2FA_all_users'] == '' && !$double_auth_enabled)
|
||||
|| ($config['2FA_all_users'] != '' && !$double_auth_enabled)
|
||||
|| ($config['double_auth_enabled'] == '' && $double_auth_enabled)
|
||||
|| check_acl($config['id_user'], 0, 'PM')
|
||||
) {
|
||||
$double_authentication .= html_print_checkbox_switch('double_auth', 1, $double_auth_enabled, true);
|
||||
}
|
||||
|
||||
// Dialog.
|
||||
$double_authentication .= '<div id="dialog-double_auth"class="invisible"><div id="dialog-double_auth-container"></div></div>';
|
||||
}
|
||||
|
||||
if ($double_auth_enabled && $config['double_auth_enabled']) {
|
||||
$double_authentication .= html_print_button(
|
||||
__('Show information'),
|
||||
'show_info',
|
||||
false,
|
||||
'show_double_auth_info();',
|
||||
[ 'icon' => 'camera' ],
|
||||
'',
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
if (isset($double_authentication) === true) {
|
||||
$double_authentication .= '</div>';
|
||||
}
|
||||
|
||||
if ((bool) check_acl($config['id_user'], 0, 'ER') === true) {
|
||||
$event_filter = '<div class="label_select"><p class="edit_user_labels">'.__('Event filter').'</p>';
|
||||
$user_groups = implode(',', array_keys((users_get_groups($config['id_user'], 'AR', true))));
|
||||
$event_filter .= html_print_select_from_sql(
|
||||
'SELECT id_filter, id_name FROM tevent_filter WHERE id_group_filter IN ('.$user_groups.')',
|
||||
'event_filter',
|
||||
$user_info['default_event_filter'],
|
||||
'',
|
||||
__('None'),
|
||||
null,
|
||||
true
|
||||
).'</div>';
|
||||
}
|
||||
|
||||
$autorefresh_list_out = [];
|
||||
if (is_metaconsole() === false || is_centralized() === true) {
|
||||
$autorefresh_list_out['operation/agentes/estado_agente'] = 'Agent detail';
|
||||
$autorefresh_list_out['operation/agentes/alerts_status'] = 'Alert detail';
|
||||
$autorefresh_list_out['enterprise/operation/cluster/cluster'] = 'Cluster view';
|
||||
$autorefresh_list_out['operation/gis_maps/render_view'] = 'Gis Map';
|
||||
$autorefresh_list_out['operation/reporting/graph_viewer'] = 'Graph Viewer';
|
||||
$autorefresh_list_out['operation/snmpconsole/snmp_view'] = 'SNMP console';
|
||||
|
||||
if (enterprise_installed()) {
|
||||
$autorefresh_list_out['general/sap_view'] = 'SAP view';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$timezone = '<div class="label_select"><p class="edit_user_labels">'.__('Timezone').ui_print_help_tip(__('The timezone must be that of the associated server.'), true).'</p>';
|
||||
$timezone .= html_print_timezone_select('timezone', $user_info['timezone']).'</div>';
|
||||
$autorefresh_list_out['operation/agentes/tactical'] = 'Tactical view';
|
||||
$autorefresh_list_out['operation/agentes/group_view'] = 'Group view';
|
||||
$autorefresh_list_out['operation/agentes/status_monitor'] = 'Monitor detail';
|
||||
$autorefresh_list_out['enterprise/operation/services/services'] = 'Services';
|
||||
$autorefresh_list_out['operation/dashboard/dashboard'] = 'Dashboard';
|
||||
|
||||
// Double auth.
|
||||
$double_auth_enabled = (bool) db_get_value('id', 'tuser_double_auth', 'id_user', $config['id_user']);
|
||||
$autorefresh_list_out['operation/agentes/pandora_networkmap'] = 'Network map';
|
||||
$autorefresh_list_out['operation/visual_console/render_view'] = 'Visual console';
|
||||
$autorefresh_list_out['operation/events/events'] = 'Events';
|
||||
|
||||
if ((bool) $config['double_auth_enabled'] === true) {
|
||||
$double_authentication = '<div class="label_select_simple"><p class="edit_user_labels">'.__('Double authentication').'</p>';
|
||||
if (($config['2FA_all_users'] == '' && !$double_auth_enabled)
|
||||
|| ($config['2FA_all_users'] != '' && !$double_auth_enabled)
|
||||
|| ($config['double_auth_enabled'] == '' && $double_auth_enabled)
|
||||
|| check_acl($config['id_user'], 0, 'PM')
|
||||
) {
|
||||
$double_authentication .= html_print_checkbox_switch('double_auth', 1, $double_auth_enabled, true);
|
||||
|
||||
if (!isset($autorefresh_list)) {
|
||||
$select = db_process_sql("SELECT autorefresh_white_list FROM tusuario WHERE id_user = '".$config['id_user']."'");
|
||||
$autorefresh_list = json_decode($select[0]['autorefresh_white_list']);
|
||||
if ($autorefresh_list === null) {
|
||||
$autorefresh_list[0] = __('None');
|
||||
} else {
|
||||
$aux = [];
|
||||
$count_autorefresh_list = count($autorefresh_list);
|
||||
for ($i = 0; $i < $count_autorefresh_list; $i++) {
|
||||
$aux[$autorefresh_list[$i]] = $autorefresh_list_out[$autorefresh_list[$i]];
|
||||
unset($autorefresh_list_out[$autorefresh_list[$i]]);
|
||||
$autorefresh_list[$i] = $aux;
|
||||
}
|
||||
|
||||
$autorefresh_list = $aux;
|
||||
}
|
||||
} else {
|
||||
if (is_array($autorefresh_list) === false || empty($autorefresh_list[0]) === true || $autorefresh_list[0] === '0') {
|
||||
$autorefresh_list = [];
|
||||
$autorefresh_list[0] = __('None');
|
||||
} else {
|
||||
$aux = [];
|
||||
$count_autorefresh_list = count($autorefresh_list);
|
||||
for ($i = 0; $i < $count_autorefresh_list; $i++) {
|
||||
$aux[$autorefresh_list[$i]] = $autorefresh_list_out[$autorefresh_list[$i]];
|
||||
unset($autorefresh_list_out[$autorefresh_list[$i]]);
|
||||
$autorefresh_list[$i] = $aux;
|
||||
}
|
||||
|
||||
$autorefresh_list = $aux;
|
||||
}
|
||||
}
|
||||
|
||||
// Dialog.
|
||||
$double_authentication .= '<div id="dialog-double_auth"class="invisible"><div id="dialog-double_auth-container"></div></div>';
|
||||
}
|
||||
|
||||
if ($double_auth_enabled && $config['double_auth_enabled']) {
|
||||
$double_authentication .= html_print_button(
|
||||
__('Show information'),
|
||||
'show_info',
|
||||
$autorefresh_show = '<p class="edit_user_labels">'._('Autorefresh').ui_print_help_tip(
|
||||
__('This will activate autorefresh in selected pages'),
|
||||
true
|
||||
).'</p>';
|
||||
$select_out = html_print_select(
|
||||
$autorefresh_list_out,
|
||||
'autorefresh_list_out[]',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
'',
|
||||
false,
|
||||
'show_double_auth_info();',
|
||||
[ 'icon' => 'camera' ],
|
||||
'',
|
||||
true
|
||||
'width:100%'
|
||||
);
|
||||
}
|
||||
|
||||
if (isset($double_authentication) === true) {
|
||||
$double_authentication .= '</div>';
|
||||
}
|
||||
|
||||
if ((bool) check_acl($config['id_user'], 0, 'ER') === true) {
|
||||
$event_filter = '<div class="label_select"><p class="edit_user_labels">'.__('Event filter').'</p>';
|
||||
$user_groups = implode(',', array_keys((users_get_groups($config['id_user'], 'AR', true))));
|
||||
$event_filter .= html_print_select_from_sql(
|
||||
'SELECT id_filter, id_name FROM tevent_filter WHERE id_group_filter IN ('.$user_groups.')',
|
||||
'event_filter',
|
||||
$user_info['default_event_filter'],
|
||||
$arrows = ' ';
|
||||
$select_in = html_print_select(
|
||||
$autorefresh_list,
|
||||
'autorefresh_list[]',
|
||||
'',
|
||||
__('None'),
|
||||
null,
|
||||
true
|
||||
).'</div>';
|
||||
}
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
'',
|
||||
false,
|
||||
'width:100%'
|
||||
);
|
||||
|
||||
$autorefresh_list_out = [];
|
||||
if (is_metaconsole() === false || is_centralized() === true) {
|
||||
$autorefresh_list_out['operation/agentes/estado_agente'] = 'Agent detail';
|
||||
$autorefresh_list_out['operation/agentes/alerts_status'] = 'Alert detail';
|
||||
$autorefresh_list_out['enterprise/operation/cluster/cluster'] = 'Cluster view';
|
||||
$autorefresh_list_out['operation/gis_maps/render_view'] = 'Gis Map';
|
||||
$autorefresh_list_out['operation/reporting/graph_viewer'] = 'Graph Viewer';
|
||||
$autorefresh_list_out['operation/snmpconsole/snmp_view'] = 'SNMP console';
|
||||
|
||||
if (enterprise_installed()) {
|
||||
$autorefresh_list_out['general/sap_view'] = 'SAP view';
|
||||
}
|
||||
}
|
||||
|
||||
$autorefresh_list_out['operation/agentes/tactical'] = 'Tactical view';
|
||||
$autorefresh_list_out['operation/agentes/group_view'] = 'Group view';
|
||||
$autorefresh_list_out['operation/agentes/status_monitor'] = 'Monitor detail';
|
||||
$autorefresh_list_out['enterprise/operation/services/services'] = 'Services';
|
||||
$autorefresh_list_out['operation/dashboard/dashboard'] = 'Dashboard';
|
||||
|
||||
$autorefresh_list_out['operation/agentes/pandora_networkmap'] = 'Network map';
|
||||
$autorefresh_list_out['operation/visual_console/render_view'] = 'Visual console';
|
||||
$autorefresh_list_out['operation/events/events'] = 'Events';
|
||||
|
||||
|
||||
if (!isset($autorefresh_list)) {
|
||||
$select = db_process_sql("SELECT autorefresh_white_list FROM tusuario WHERE id_user = '".$config['id_user']."'");
|
||||
$autorefresh_list = json_decode($select[0]['autorefresh_white_list']);
|
||||
if ($autorefresh_list === null) {
|
||||
$autorefresh_list[0] = __('None');
|
||||
} else {
|
||||
$aux = [];
|
||||
$count_autorefresh_list = count($autorefresh_list);
|
||||
for ($i = 0; $i < $count_autorefresh_list; $i++) {
|
||||
$aux[$autorefresh_list[$i]] = $autorefresh_list_out[$autorefresh_list[$i]];
|
||||
unset($autorefresh_list_out[$autorefresh_list[$i]]);
|
||||
$autorefresh_list[$i] = $aux;
|
||||
}
|
||||
|
||||
$autorefresh_list = $aux;
|
||||
}
|
||||
} else {
|
||||
if (is_array($autorefresh_list) === false || empty($autorefresh_list[0]) === true || $autorefresh_list[0] === '0') {
|
||||
$autorefresh_list = [];
|
||||
$autorefresh_list[0] = __('None');
|
||||
} else {
|
||||
$aux = [];
|
||||
$count_autorefresh_list = count($autorefresh_list);
|
||||
for ($i = 0; $i < $count_autorefresh_list; $i++) {
|
||||
$aux[$autorefresh_list[$i]] = $autorefresh_list_out[$autorefresh_list[$i]];
|
||||
unset($autorefresh_list_out[$autorefresh_list[$i]]);
|
||||
$autorefresh_list[$i] = $aux;
|
||||
}
|
||||
|
||||
$autorefresh_list = $aux;
|
||||
}
|
||||
}
|
||||
|
||||
$autorefresh_show = '<p class="edit_user_labels">'._('Autorefresh').ui_print_help_tip(
|
||||
__('This will activate autorefresh in selected pages'),
|
||||
true
|
||||
).'</p>';
|
||||
$select_out = html_print_select(
|
||||
$autorefresh_list_out,
|
||||
'autorefresh_list_out[]',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
'',
|
||||
false,
|
||||
'width:100%'
|
||||
);
|
||||
$arrows = ' ';
|
||||
$select_in = html_print_select(
|
||||
$autorefresh_list,
|
||||
'autorefresh_list[]',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
'',
|
||||
false,
|
||||
'width:100%'
|
||||
);
|
||||
|
||||
$table_ichanges = '<div class="autorefresh_select">
|
||||
$table_ichanges = '<div class="autorefresh_select">
|
||||
<div class="autorefresh_select_list_out">
|
||||
<p class="autorefresh_select_text">'.__('Full list of pages').': </p>
|
||||
<div>'.$select_out.'</div>
|
||||
|
@ -707,26 +695,26 @@ $table_ichanges = '<div class="autorefresh_select">
|
|||
</div>
|
||||
</div>';
|
||||
|
||||
$autorefresh_show .= $table_ichanges;
|
||||
$autorefresh_show .= $table_ichanges;
|
||||
|
||||
// Time autorefresh.
|
||||
$times = get_refresh_time_array();
|
||||
$time_autorefresh = '<div class="label_select"><p class="edit_user_labels">'.__('Time autorefresh');
|
||||
$time_autorefresh .= ui_print_help_tip(
|
||||
__('Interval of autorefresh of the elements, by default they are 30 seconds, needing to enable the autorefresh first'),
|
||||
true
|
||||
).'</p>';
|
||||
$time_autorefresh .= html_print_select(
|
||||
$times,
|
||||
'time_autorefresh',
|
||||
$user_info['time_autorefresh'],
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
false,
|
||||
false
|
||||
).'</div>';
|
||||
// Time autorefresh.
|
||||
$times = get_refresh_time_array();
|
||||
$time_autorefresh = '<div class="label_select"><p class="edit_user_labels">'.__('Time autorefresh');
|
||||
$time_autorefresh .= ui_print_help_tip(
|
||||
__('Interval of autorefresh of the elements, by default they are 30 seconds, needing to enable the autorefresh first'),
|
||||
true
|
||||
).'</p>';
|
||||
$time_autorefresh .= html_print_select(
|
||||
$times,
|
||||
'time_autorefresh',
|
||||
$user_info['time_autorefresh'],
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
false,
|
||||
false
|
||||
).'</div>';
|
||||
|
||||
|
||||
|
||||
|
@ -740,62 +728,62 @@ $time_autorefresh .= html_print_select(
|
|||
|
||||
|
||||
|
||||
$comments = '<p class="edit_user_labels">'.__('Comments').': </p>';
|
||||
$comments .= html_print_textarea(
|
||||
'comments',
|
||||
2,
|
||||
60,
|
||||
$user_info['comments'],
|
||||
(($view_mode) ? 'readonly="readonly"' : ''),
|
||||
true
|
||||
);
|
||||
$comments .= html_print_input_hidden('quick_language_change', 1, true);
|
||||
$comments = '<p class="edit_user_labels">'.__('Comments').': </p>';
|
||||
$comments .= html_print_textarea(
|
||||
'comments',
|
||||
2,
|
||||
60,
|
||||
$user_info['comments'],
|
||||
(($view_mode) ? 'readonly="readonly"' : ''),
|
||||
true
|
||||
);
|
||||
$comments .= html_print_input_hidden('quick_language_change', 1, true);
|
||||
|
||||
$allowedIP = '<p class="edit_user_labels">';
|
||||
$allowedIP .= __('Login allowed IP list').' ';
|
||||
$allowedIP .= ui_print_help_tip(__('Add the source IPs that will allow console access. Each IP must be separated only by comma. * allows all.'), true).' ';
|
||||
$allowedIP .= html_print_checkbox_switch(
|
||||
'allowed_ip_active',
|
||||
0,
|
||||
$user_info['allowed_ip_active'],
|
||||
true
|
||||
);
|
||||
$allowedIP .= '</p>';
|
||||
$allowedIP .= html_print_textarea(
|
||||
'allowed_ip_list',
|
||||
2,
|
||||
65,
|
||||
$user_info['allowed_ip_list'],
|
||||
($view_mode ? 'readonly="readonly"' : ''),
|
||||
true
|
||||
);
|
||||
$allowedIP = '<p class="edit_user_labels">';
|
||||
$allowedIP .= __('Login allowed IP list').' ';
|
||||
$allowedIP .= ui_print_help_tip(__('Add the source IPs that will allow console access. Each IP must be separated only by comma. * allows all.'), true).' ';
|
||||
$allowedIP .= html_print_checkbox_switch(
|
||||
'allowed_ip_active',
|
||||
0,
|
||||
$user_info['allowed_ip_active'],
|
||||
true
|
||||
);
|
||||
$allowedIP .= '</p>';
|
||||
$allowedIP .= html_print_textarea(
|
||||
'allowed_ip_list',
|
||||
2,
|
||||
65,
|
||||
$user_info['allowed_ip_list'],
|
||||
($view_mode ? 'readonly="readonly"' : ''),
|
||||
true
|
||||
);
|
||||
|
||||
|
||||
|
||||
foreach ($timezones as $timezone_name => $tz) {
|
||||
if ($timezone_name == 'America/Montreal') {
|
||||
$timezone_name = 'America/Toronto';
|
||||
} else if ($timezone_name == 'Asia/Chongqing') {
|
||||
$timezone_name = 'Asia/Shanghai';
|
||||
foreach ($timezones as $timezone_name => $tz) {
|
||||
if ($timezone_name == 'America/Montreal') {
|
||||
$timezone_name = 'America/Toronto';
|
||||
} else if ($timezone_name == 'Asia/Chongqing') {
|
||||
$timezone_name = 'Asia/Shanghai';
|
||||
}
|
||||
|
||||
$area_data_timezone_polys .= '';
|
||||
foreach ($tz['polys'] as $coords) {
|
||||
$area_data_timezone_polys .= '<area data-timezone="'.$timezone_name.'" data-country="'.$tz['country'].'" data-pin="'.implode(',', $tz['pin']).'" data-offset="'.$tz['offset'].'" shape="poly" coords="'.implode(',', $coords).'" />';
|
||||
}
|
||||
|
||||
$area_data_timezone_rects .= '';
|
||||
foreach ($tz['rects'] as $coords) {
|
||||
$area_data_timezone_rects .= '<area data-timezone="'.$timezone_name.'" data-country="'.$tz['country'].'" data-pin="'.implode(',', $tz['pin']).'" data-offset="'.$tz['offset'].'" shape="rect" coords="'.implode(',', $coords).'" />';
|
||||
}
|
||||
}
|
||||
|
||||
$area_data_timezone_polys .= '';
|
||||
foreach ($tz['polys'] as $coords) {
|
||||
$area_data_timezone_polys .= '<area data-timezone="'.$timezone_name.'" data-country="'.$tz['country'].'" data-pin="'.implode(',', $tz['pin']).'" data-offset="'.$tz['offset'].'" shape="poly" coords="'.implode(',', $coords).'" />';
|
||||
if (is_metaconsole() === true) {
|
||||
echo '<form id="user_profile_form" name="user_mod" method="post" action="'.ui_get_full_url('index.php?sec=advanced&sec2=advanced/users_setup').'&tab=user_edit&modified=1&pure='.$config['pure'].'">';
|
||||
} else {
|
||||
echo '<form id="user_profile_form" name="user_mod" method="post" action="'.ui_get_full_url('index.php?sec=workspace&sec2=operation/users/user_edit').'&modified=1&pure='.$config['pure'].'">';
|
||||
}
|
||||
|
||||
$area_data_timezone_rects .= '';
|
||||
foreach ($tz['rects'] as $coords) {
|
||||
$area_data_timezone_rects .= '<area data-timezone="'.$timezone_name.'" data-country="'.$tz['country'].'" data-pin="'.implode(',', $tz['pin']).'" data-offset="'.$tz['offset'].'" shape="rect" coords="'.implode(',', $coords).'" />';
|
||||
}
|
||||
}
|
||||
|
||||
if (is_metaconsole() === true) {
|
||||
echo '<form id="user_profile_form" name="user_mod" method="post" action="'.ui_get_full_url('index.php?sec=advanced&sec2=advanced/users_setup').'&tab=user_edit&modified=1&pure='.$config['pure'].'">';
|
||||
} else {
|
||||
echo '<form id="user_profile_form" name="user_mod" method="post" action="'.ui_get_full_url('index.php?sec=workspace&sec2=operation/users/user_edit').'&modified=1&pure='.$config['pure'].'">';
|
||||
}
|
||||
|
||||
html_print_input_hidden('id', $id, false, false, false, 'id');
|
||||
|
||||
echo '<div id="user_form">
|
||||
|
@ -812,13 +800,13 @@ if (is_metaconsole() === true) {
|
|||
|
||||
|
||||
|
||||
if (is_metaconsole() === false) {
|
||||
echo '<div id="timezone-picker">
|
||||
if (is_metaconsole() === false) {
|
||||
echo '<div id="timezone-picker">
|
||||
<img id="timezone-image" src="'.$local_file.'" width="'.$map_width.'" height="'.$map_height.'" usemap="#timezone-map" />
|
||||
<img class="timezone-pin pdd_t_4px" src="include/javascript/timezonepicker/images/pin.png" />
|
||||
<map name="timezone-map" id="timezone-map">'.$area_data_timezone_polys.$area_data_timezone_rects.'</map>
|
||||
</div>';
|
||||
}
|
||||
}
|
||||
|
||||
echo '</div>
|
||||
</div>
|
||||
|
@ -831,216 +819,216 @@ if (is_metaconsole() === false) {
|
|||
</div>
|
||||
</div>';
|
||||
|
||||
if ($config['ehorus_enabled'] && $config['ehorus_user_level_conf']) {
|
||||
// EHorus user remote login.
|
||||
$table_remote = new StdClass();
|
||||
$table_remote->data = [];
|
||||
$table_remote->width = '100%';
|
||||
$table_remote->id = 'ehorus-remote-setup';
|
||||
$table_remote->class = 'white_box';
|
||||
$table_remote->size['name'] = '30%';
|
||||
$table_remote->style['name'] = 'font-weight: bold';
|
||||
if ($config['ehorus_enabled'] && $config['ehorus_user_level_conf']) {
|
||||
// EHorus user remote login.
|
||||
$table_remote = new StdClass();
|
||||
$table_remote->data = [];
|
||||
$table_remote->width = '100%';
|
||||
$table_remote->id = 'ehorus-remote-setup';
|
||||
$table_remote->class = 'white_box';
|
||||
$table_remote->size['name'] = '30%';
|
||||
$table_remote->style['name'] = 'font-weight: bold';
|
||||
|
||||
// Title.
|
||||
$row = [];
|
||||
$row['control'] = '<p class="edit_user_labels">'.__('eHorus user configuration').': </p>';
|
||||
$table_remote->data['ehorus_user_level_conf'] = $row;
|
||||
// Title.
|
||||
$row = [];
|
||||
$row['control'] = '<p class="edit_user_labels">'.__('eHorus user configuration').': </p>';
|
||||
$table_remote->data['ehorus_user_level_conf'] = $row;
|
||||
|
||||
// Enable/disable eHorus for this user.
|
||||
$row = [];
|
||||
$row['name'] = __('eHorus user acces enabled');
|
||||
$row['control'] = html_print_checkbox_switch('ehorus_user_level_enabled', 1, $user_info['ehorus_user_level_enabled'], true);
|
||||
$table_remote->data['ehorus_user_level_enabled'] = $row;
|
||||
// Enable/disable eHorus for this user.
|
||||
$row = [];
|
||||
$row['name'] = __('eHorus user acces enabled');
|
||||
$row['control'] = html_print_checkbox_switch('ehorus_user_level_enabled', 1, $user_info['ehorus_user_level_enabled'], true);
|
||||
$table_remote->data['ehorus_user_level_enabled'] = $row;
|
||||
|
||||
// User.
|
||||
$row = [];
|
||||
$row['name'] = __('User');
|
||||
$row['control'] = html_print_input_text('ehorus_user_level_user', $user_info['ehorus_user_level_user'], '', 30, 100, true);
|
||||
$table_remote->data['ehorus_user_level_user'] = $row;
|
||||
// User.
|
||||
$row = [];
|
||||
$row['name'] = __('User');
|
||||
$row['control'] = html_print_input_text('ehorus_user_level_user', $user_info['ehorus_user_level_user'], '', 30, 100, true);
|
||||
$table_remote->data['ehorus_user_level_user'] = $row;
|
||||
|
||||
// Pass.
|
||||
$row = [];
|
||||
$row['name'] = __('Password');
|
||||
$row['control'] = html_print_input_password('ehorus_user_level_pass', io_output_password($user_info['ehorus_user_level_pass']), '', 30, 100, true);
|
||||
$table_remote->data['ehorus_user_level_pass'] = $row;
|
||||
// Pass.
|
||||
$row = [];
|
||||
$row['name'] = __('Password');
|
||||
$row['control'] = html_print_input_password('ehorus_user_level_pass', io_output_password($user_info['ehorus_user_level_pass']), '', 30, 100, true);
|
||||
$table_remote->data['ehorus_user_level_pass'] = $row;
|
||||
|
||||
// Test.
|
||||
$ehorus_port = db_get_value('value', 'tconfig', 'token', 'ehorus_port');
|
||||
$ehorus_host = db_get_value('value', 'tconfig', 'token', 'ehorus_hostname');
|
||||
// Test.
|
||||
$ehorus_port = db_get_value('value', 'tconfig', 'token', 'ehorus_port');
|
||||
$ehorus_host = db_get_value('value', 'tconfig', 'token', 'ehorus_hostname');
|
||||
|
||||
$row = [];
|
||||
$row['name'] = __('Test');
|
||||
$row['control'] = html_print_button(
|
||||
__('Start'),
|
||||
'test-ehorus',
|
||||
false,
|
||||
'ehorus_connection_test("'.$ehorus_host.'",'.$ehorus_port.')',
|
||||
[ 'icon' => 'next' ],
|
||||
true
|
||||
);
|
||||
$row['control'] .= ' <span id="test-ehorus-spinner" class="invisible"> '.html_print_image('images/spinner.gif', true).'</span>';
|
||||
$row['control'] .= ' <span id="test-ehorus-success" class="invisible"> '.html_print_image('images/status_sets/default/severity_normal.png', true).'</span>';
|
||||
$row['control'] .= ' <span id="test-ehorus-failure" class="invisible"> '.html_print_image('images/status_sets/default/severity_critical.png', true).'</span>';
|
||||
$row['control'] .= '<span id="test-ehorus-message" class="invisible"></span>';
|
||||
$table_remote->data['ehorus_test'] = $row;
|
||||
|
||||
echo '<div class="ehorus_user_conf user_edit_fourth_row">';
|
||||
html_print_table($table_remote);
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
if ($config['integria_enabled'] && $config['integria_user_level_conf']) {
|
||||
// Integria IMS user remote login.
|
||||
$table_remote = new StdClass();
|
||||
$table_remote->data = [];
|
||||
$table_remote->width = '100%';
|
||||
$table_remote->id = 'integria-remote-setup';
|
||||
$table_remote->class = 'white_box';
|
||||
$table_remote->size['name'] = '30%';
|
||||
$table_remote->style['name'] = 'font-weight: bold';
|
||||
|
||||
// Integria IMS user level authentication.
|
||||
// Title.
|
||||
$row = [];
|
||||
$row['control'] = '<p class="edit_user_labels">'.__('Integria user configuration').': </p>';
|
||||
$table_remote->data['integria_user_level_conf'] = $row;
|
||||
|
||||
// Integria IMS user.
|
||||
$row = [];
|
||||
$row['name'] = __('User');
|
||||
$row['control'] = html_print_input_text('integria_user_level_user', $user_info['integria_user_level_user'], '', 30, 100, true);
|
||||
$table_remote->data['integria_user_level_user'] = $row;
|
||||
|
||||
// Integria IMS pass.
|
||||
$row = [];
|
||||
$row['name'] = __('Password');
|
||||
$row['control'] = html_print_input_password('integria_user_level_pass', io_output_password($user_info['integria_user_level_pass']), '', 30, 100, true);
|
||||
$table_remote->data['integria_user_level_pass'] = $row;
|
||||
|
||||
// Test.
|
||||
$integria_host = db_get_value('value', 'tconfig', 'token', 'integria_hostname');
|
||||
$integria_api_pass = db_get_value('value', 'tconfig', 'token', 'integria_api_pass');
|
||||
|
||||
$row = [];
|
||||
$row['name'] = __('Test');
|
||||
$row['control'] = html_print_button(
|
||||
__('Start'),
|
||||
'test-integria',
|
||||
false,
|
||||
'integria_connection_test("'.$integria_host.'",'.$integria_api_pass.')',
|
||||
[ 'icon' => 'next' ],
|
||||
true
|
||||
);
|
||||
$row['control'] .= ' <span id="test-integria-spinner" class="invisible"> '.html_print_image('images/spinner.gif', true).'</span>';
|
||||
$row['control'] .= ' <span id="test-integria-success" class="invisible"> '.html_print_image('images/status_sets/default/severity_normal.png', true).'</span>';
|
||||
$row['control'] .= ' <span id="test-integria-failure" class="invisible"> '.html_print_image('images/status_sets/default/severity_critical.png', true).'</span>';
|
||||
$row['control'] .= '<span id="test-integria-message" class="invisible"></span>';
|
||||
$table_remote->data['integria_test'] = $row;
|
||||
|
||||
echo '<div class="integria_user_conf">';
|
||||
html_print_table($table_remote);
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
|
||||
if ($is_management_allowed === true) {
|
||||
if ((bool) $config['user_can_update_info'] === false) {
|
||||
$outputButton = '<i>'.__('You can not change your user info under the current authentication scheme').'</i>';
|
||||
} else {
|
||||
$outputButton = html_print_submit_button(
|
||||
__('Update'),
|
||||
'uptbutton',
|
||||
$view_mode,
|
||||
[ 'icon' => 'update' ],
|
||||
$row = [];
|
||||
$row['name'] = __('Test');
|
||||
$row['control'] = html_print_button(
|
||||
__('Start'),
|
||||
'test-ehorus',
|
||||
false,
|
||||
'ehorus_connection_test("'.$ehorus_host.'",'.$ehorus_port.')',
|
||||
[ 'icon' => 'next' ],
|
||||
true
|
||||
);
|
||||
$outputButton .= html_print_csrf_hidden(true);
|
||||
$row['control'] .= ' <span id="test-ehorus-spinner" class="invisible"> '.html_print_image('images/spinner.gif', true).'</span>';
|
||||
$row['control'] .= ' <span id="test-ehorus-success" class="invisible"> '.html_print_image('images/status_sets/default/severity_normal.png', true).'</span>';
|
||||
$row['control'] .= ' <span id="test-ehorus-failure" class="invisible"> '.html_print_image('images/status_sets/default/severity_critical.png', true).'</span>';
|
||||
$row['control'] .= '<span id="test-ehorus-message" class="invisible"></span>';
|
||||
$table_remote->data['ehorus_test'] = $row;
|
||||
|
||||
echo '<div class="ehorus_user_conf user_edit_fourth_row">';
|
||||
html_print_table($table_remote);
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
html_print_div(
|
||||
[
|
||||
'class' => 'action-buttons',
|
||||
'content' => $outputButton,
|
||||
]
|
||||
);
|
||||
}
|
||||
if ($config['integria_enabled'] && $config['integria_user_level_conf']) {
|
||||
// Integria IMS user remote login.
|
||||
$table_remote = new StdClass();
|
||||
$table_remote->data = [];
|
||||
$table_remote->width = '100%';
|
||||
$table_remote->id = 'integria-remote-setup';
|
||||
$table_remote->class = 'white_box';
|
||||
$table_remote->size['name'] = '30%';
|
||||
$table_remote->style['name'] = 'font-weight: bold';
|
||||
|
||||
echo '</form>';
|
||||
// Integria IMS user level authentication.
|
||||
// Title.
|
||||
$row = [];
|
||||
$row['control'] = '<p class="edit_user_labels">'.__('Integria user configuration').': </p>';
|
||||
$table_remote->data['integria_user_level_conf'] = $row;
|
||||
|
||||
echo '<div id="edit_user_profiles" class="white_box">';
|
||||
if (is_metaconsole() === false) {
|
||||
echo '<p class="edit_user_labels">'.__('Profiles/Groups assigned to this user').'</p>';
|
||||
}
|
||||
// Integria IMS user.
|
||||
$row = [];
|
||||
$row['name'] = __('User');
|
||||
$row['control'] = html_print_input_text('integria_user_level_user', $user_info['integria_user_level_user'], '', 30, 100, true);
|
||||
$table_remote->data['integria_user_level_user'] = $row;
|
||||
|
||||
$table = new stdClass();
|
||||
$table->width = '100%';
|
||||
$table->class = 'info_table';
|
||||
if (is_metaconsole() === true) {
|
||||
// Integria IMS pass.
|
||||
$row = [];
|
||||
$row['name'] = __('Password');
|
||||
$row['control'] = html_print_input_password('integria_user_level_pass', io_output_password($user_info['integria_user_level_pass']), '', 30, 100, true);
|
||||
$table_remote->data['integria_user_level_pass'] = $row;
|
||||
|
||||
// Test.
|
||||
$integria_host = db_get_value('value', 'tconfig', 'token', 'integria_hostname');
|
||||
$integria_api_pass = db_get_value('value', 'tconfig', 'token', 'integria_api_pass');
|
||||
|
||||
$row = [];
|
||||
$row['name'] = __('Test');
|
||||
$row['control'] = html_print_button(
|
||||
__('Start'),
|
||||
'test-integria',
|
||||
false,
|
||||
'integria_connection_test("'.$integria_host.'",'.$integria_api_pass.')',
|
||||
[ 'icon' => 'next' ],
|
||||
true
|
||||
);
|
||||
$row['control'] .= ' <span id="test-integria-spinner" class="invisible"> '.html_print_image('images/spinner.gif', true).'</span>';
|
||||
$row['control'] .= ' <span id="test-integria-success" class="invisible"> '.html_print_image('images/status_sets/default/severity_normal.png', true).'</span>';
|
||||
$row['control'] .= ' <span id="test-integria-failure" class="invisible"> '.html_print_image('images/status_sets/default/severity_critical.png', true).'</span>';
|
||||
$row['control'] .= '<span id="test-integria-message" class="invisible"></span>';
|
||||
$table_remote->data['integria_test'] = $row;
|
||||
|
||||
echo '<div class="integria_user_conf">';
|
||||
html_print_table($table_remote);
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
|
||||
if ($is_management_allowed === true) {
|
||||
if ((bool) $config['user_can_update_info'] === false) {
|
||||
$outputButton = '<i>'.__('You can not change your user info under the current authentication scheme').'</i>';
|
||||
} else {
|
||||
$outputButton = html_print_submit_button(
|
||||
__('Update'),
|
||||
'uptbutton',
|
||||
$view_mode,
|
||||
[ 'icon' => 'update' ],
|
||||
true
|
||||
);
|
||||
$outputButton .= html_print_csrf_hidden(true);
|
||||
}
|
||||
|
||||
html_print_div(
|
||||
[
|
||||
'class' => 'action-buttons',
|
||||
'content' => $outputButton,
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
echo '</form>';
|
||||
|
||||
echo '<div id="edit_user_profiles" class="white_box">';
|
||||
if (is_metaconsole() === false) {
|
||||
echo '<p class="edit_user_labels">'.__('Profiles/Groups assigned to this user').'</p>';
|
||||
}
|
||||
|
||||
$table = new stdClass();
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox data';
|
||||
$table->title = __('Profiles/Groups assigned to this user');
|
||||
$table->head_colspan[0] = 0;
|
||||
$table->headstyle[] = 'background-color: #82B93C';
|
||||
$table->headstyle[] = 'background-color: #82B93C';
|
||||
$table->headstyle[] = 'background-color: #82B93C';
|
||||
}
|
||||
|
||||
$table->data = [];
|
||||
$table->head = [];
|
||||
$table->align = [];
|
||||
$table->style = [];
|
||||
|
||||
if (is_metaconsole() === false) {
|
||||
$table->style[0] = 'font-weight: bold';
|
||||
$table->style[1] = 'font-weight: bold';
|
||||
}
|
||||
|
||||
$table->head[0] = __('Profile name');
|
||||
$table->head[1] = __('Group');
|
||||
$table->head[2] = __('Tags');
|
||||
$table->align = [];
|
||||
$table->align[1] = 'left';
|
||||
|
||||
$table->data = [];
|
||||
|
||||
$result = db_get_all_rows_field_filter('tusuario_perfil', 'id_usuario', $id);
|
||||
if ($result === false) {
|
||||
$result = [];
|
||||
}
|
||||
|
||||
foreach ($result as $profile) {
|
||||
$data[0] = '<b>'.profile_get_name($profile['id_perfil']).'</b>';
|
||||
if ($config['show_group_name']) {
|
||||
$data[1] = ui_print_group_icon(
|
||||
$profile['id_grupo'],
|
||||
true
|
||||
).'<a href="index.php?sec=estado&sec2=operation/agentes/estado_agente&refr=60&group_id='.$profile['id_grupo'].'"> </a>';
|
||||
} else {
|
||||
$data[1] = ui_print_group_icon(
|
||||
$profile['id_grupo'],
|
||||
true
|
||||
).'<a href="index.php?sec=estado&sec2=operation/agentes/estado_agente&refr=60&group_id='.$profile['id_grupo'].'"> '.ui_print_truncate_text(groups_get_name($profile['id_grupo'], true), GENERIC_SIZE_TEXT).'</a>';
|
||||
$table->class = 'info_table';
|
||||
if (is_metaconsole() === true) {
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox data';
|
||||
$table->title = __('Profiles/Groups assigned to this user');
|
||||
$table->head_colspan[0] = 0;
|
||||
$table->headstyle[] = 'background-color: #82B93C';
|
||||
$table->headstyle[] = 'background-color: #82B93C';
|
||||
$table->headstyle[] = 'background-color: #82B93C';
|
||||
}
|
||||
|
||||
$tags_ids = explode(',', $profile['tags']);
|
||||
$tags = tags_get_tags($tags_ids);
|
||||
$table->data = [];
|
||||
$table->head = [];
|
||||
$table->align = [];
|
||||
$table->style = [];
|
||||
|
||||
$data[2] = tags_get_tags_formatted($tags);
|
||||
if (is_metaconsole() === false) {
|
||||
$table->style[0] = 'font-weight: bold';
|
||||
$table->style[1] = 'font-weight: bold';
|
||||
}
|
||||
|
||||
array_push($table->data, $data);
|
||||
}
|
||||
$table->head[0] = __('Profile name');
|
||||
$table->head[1] = __('Group');
|
||||
$table->head[2] = __('Tags');
|
||||
$table->align = [];
|
||||
$table->align[1] = 'left';
|
||||
|
||||
if (!empty($table->data)) {
|
||||
html_print_table($table);
|
||||
} else {
|
||||
ui_print_info_message(['no_close' => true, 'message' => __('This user doesn\'t have any assigned profile/group.') ]);
|
||||
}
|
||||
$table->data = [];
|
||||
|
||||
// Close edit_user_profiles.
|
||||
echo '</div>';
|
||||
$result = db_get_all_rows_field_filter('tusuario_perfil', 'id_usuario', $id);
|
||||
if ($result === false) {
|
||||
$result = [];
|
||||
}
|
||||
|
||||
if (is_metaconsole() === false) {
|
||||
?>
|
||||
foreach ($result as $profile) {
|
||||
$data[0] = '<b>'.profile_get_name($profile['id_perfil']).'</b>';
|
||||
if ($config['show_group_name']) {
|
||||
$data[1] = ui_print_group_icon(
|
||||
$profile['id_grupo'],
|
||||
true
|
||||
).'<a href="index.php?sec=estado&sec2=operation/agentes/estado_agente&refr=60&group_id='.$profile['id_grupo'].'"> </a>';
|
||||
} else {
|
||||
$data[1] = ui_print_group_icon(
|
||||
$profile['id_grupo'],
|
||||
true
|
||||
).'<a href="index.php?sec=estado&sec2=operation/agentes/estado_agente&refr=60&group_id='.$profile['id_grupo'].'"> '.ui_print_truncate_text(groups_get_name($profile['id_grupo'], true), GENERIC_SIZE_TEXT).'</a>';
|
||||
}
|
||||
|
||||
$tags_ids = explode(',', $profile['tags']);
|
||||
$tags = tags_get_tags($tags_ids);
|
||||
|
||||
$data[2] = tags_get_tags_formatted($tags);
|
||||
|
||||
array_push($table->data, $data);
|
||||
}
|
||||
|
||||
if (!empty($table->data)) {
|
||||
html_print_table($table);
|
||||
} else {
|
||||
ui_print_info_message(['no_close' => true, 'message' => __('This user doesn\'t have any assigned profile/group.') ]);
|
||||
}
|
||||
|
||||
// Close edit_user_profiles.
|
||||
echo '</div>';
|
||||
|
||||
if (is_metaconsole() === false) {
|
||||
?>
|
||||
|
||||
<style>
|
||||
/* Styles for timezone map */
|
||||
|
@ -1062,14 +1050,14 @@ if (is_metaconsole() === false) {
|
|||
});
|
||||
});
|
||||
</script>
|
||||
<?php
|
||||
// Include OpenLayers and timezone user map library.
|
||||
echo '<script type="text/javascript" src="'.ui_get_full_url('include/javascript/timezonepicker/lib/jquery.timezone-picker.min.js').'"></script>'."\n\t";
|
||||
echo '<script type="text/javascript" src="'.ui_get_full_url('include/javascript/timezonepicker/lib/jquery.maphilight.min.js').'"></script>'."\n\t";
|
||||
// Closes no meta condition.
|
||||
}
|
||||
<?php
|
||||
// Include OpenLayers and timezone user map library.
|
||||
echo '<script type="text/javascript" src="'.ui_get_full_url('include/javascript/timezonepicker/lib/jquery.timezone-picker.min.js').'"></script>'."\n\t";
|
||||
echo '<script type="text/javascript" src="'.ui_get_full_url('include/javascript/timezonepicker/lib/jquery.maphilight.min.js').'"></script>'."\n\t";
|
||||
// Closes no meta condition.
|
||||
}
|
||||
|
||||
?>
|
||||
?>
|
||||
|
||||
<script language="javascript" type="text/javascript">
|
||||
|
||||
|
|
|
@ -60,8 +60,10 @@ function visual_map_print_button_editor_refactor(
|
|||
$disabled,
|
||||
'',
|
||||
[
|
||||
'class' => $class,
|
||||
'mode' => 'onlyIcon',
|
||||
'class' => $class,
|
||||
'mode' => 'onlyIcon',
|
||||
'data-title' => $label,
|
||||
'data-use_title_for_force_title' => '1',
|
||||
],
|
||||
false,
|
||||
true
|
||||
|
@ -270,45 +272,45 @@ if ($pure === false) {
|
|||
echo '<div id ="edit-vc" class="fixed_filter_bar">';
|
||||
echo '<div id ="edit-controls" class="visual-console-edit-controls" style="visibility:hidden">';
|
||||
echo '<div class="toolbox-buttons">';
|
||||
$class_camera = 'camera_min link-create-item';
|
||||
$class_percentile = 'percentile_item_min link-create-item';
|
||||
$class_module_graph = 'graph_min link-create-item';
|
||||
$class_donut = 'donut_graph_min link-create-item';
|
||||
$class_bars = 'bars_graph_min link-create-item';
|
||||
$class_value = 'binary_min link-create-item';
|
||||
$class_sla = 'auto_sla_graph_min link-create-item';
|
||||
$class_label = 'label_min link-create-item';
|
||||
$class_icon = 'icon_min link-create-item';
|
||||
$class_clock = 'clock_min link-create-item';
|
||||
$class_group = 'group_item_min link-create-item';
|
||||
$class_box = 'box_item link-create-item';
|
||||
$class_line = 'line_item link-create-item';
|
||||
$class_cloud = 'color_cloud_min link-create-item';
|
||||
$class_nlink = 'network_link_min link-create-item';
|
||||
$class_odometer = 'odometer_min link-create-item';
|
||||
$class_basic_chart = 'basic_chart_min link-create-item';
|
||||
$class_delete = 'delete_item';
|
||||
$class_copy = 'copy_item';
|
||||
$class_camera = 'camera_min link-create-item forced_title';
|
||||
$class_percentile = 'percentile_item_min link-create-item forced_title';
|
||||
$class_module_graph = 'graph_min link-create-item forced_title';
|
||||
$class_donut = 'donut_graph_min link-create-item forced_title';
|
||||
$class_bars = 'bars_graph_min link-create-item forced_title';
|
||||
$class_value = 'binary_min link-create-item forced_title';
|
||||
$class_sla = 'auto_sla_graph_min link-create-item forced_title';
|
||||
$class_label = 'label_min link-create-item forced_title';
|
||||
$class_icon = 'icon_min link-create-item forced_title';
|
||||
$class_clock = 'clock_min link-create-item forced_title';
|
||||
$class_group = 'group_item_min link-create-item forced_title';
|
||||
$class_box = 'box_item link-create-item forced_title';
|
||||
$class_line = 'line_item link-create-item forced_title';
|
||||
$class_cloud = 'color_cloud_min link-create-item forced_title';
|
||||
$class_nlink = 'network_link_min link-create-item forced_title';
|
||||
$class_odometer = 'odometer_min link-create-item forced_title';
|
||||
$class_basic_chart = 'basic_chart_min link-create-item forced_title';
|
||||
$class_delete = 'delete_item forced_title';
|
||||
$class_copy = 'copy_item forced_title';
|
||||
if ($config['style'] === 'pandora_black' && is_metaconsole() === false) {
|
||||
$class_camera .= ' invert_filter';
|
||||
$class_percentile .= ' invert_filter';
|
||||
$class_module_graph .= ' invert_filter';
|
||||
$class_donut .= ' invert_filter';
|
||||
$class_bars .= ' invert_filter';
|
||||
$class_value .= ' invert_filter';
|
||||
$class_sla .= ' invert_filter';
|
||||
$class_label .= ' invert_filter';
|
||||
$class_icon .= ' invert_filter';
|
||||
$class_clock .= ' invert_filter';
|
||||
$class_group .= ' invert_filter';
|
||||
$class_box .= ' invert_filter';
|
||||
$class_line .= ' invert_filter';
|
||||
$class_cloud .= ' invert_filter';
|
||||
$class_nlink .= ' invert_filter';
|
||||
$class_odometer .= ' invert_filter';
|
||||
$class_basic_chart .= ' invert_filter';
|
||||
$class_delete .= ' invert_filter';
|
||||
$class_copy .= ' invert_filter';
|
||||
$class_camera .= ' invert_filter forced_title';
|
||||
$class_percentile .= ' invert_filter forced_title';
|
||||
$class_module_graph .= ' invert_filter forced_title';
|
||||
$class_donut .= ' invert_filter forced_title';
|
||||
$class_bars .= ' invert_filter forced_title';
|
||||
$class_value .= ' invert_filter forced_title';
|
||||
$class_sla .= ' invert_filter forced_title';
|
||||
$class_label .= ' invert_filter forced_title';
|
||||
$class_icon .= ' invert_filter forced_title';
|
||||
$class_clock .= ' invert_filter forced_title';
|
||||
$class_group .= ' invert_filter forced_title';
|
||||
$class_box .= ' invert_filter forced_title';
|
||||
$class_line .= ' invert_filter forced_title';
|
||||
$class_cloud .= ' invert_filter forced_title';
|
||||
$class_nlink .= ' invert_filter forced_title';
|
||||
$class_odometer .= ' invert_filter forced_title';
|
||||
$class_basic_chart .= ' invert_filter forced_title';
|
||||
$class_delete .= ' invert_filter forced_title';
|
||||
$class_copy .= ' invert_filter forced_title';
|
||||
}
|
||||
|
||||
visual_map_print_button_editor_refactor(
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
%define name pandorafms_console
|
||||
%define version 7.0NG.771
|
||||
%define release 1
|
||||
%define release 230517
|
||||
|
||||
# User and Group under which Apache is running
|
||||
%define httpd_name httpd
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
%define name pandorafms_console
|
||||
%define version 7.0NG.771
|
||||
%define release 1
|
||||
%define release 230517
|
||||
|
||||
# User and Group under which Apache is running
|
||||
%define httpd_name httpd
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
%define name pandorafms_console
|
||||
%define version 7.0NG.771
|
||||
%define release 1
|
||||
%define release 230517
|
||||
%define httpd_name httpd
|
||||
# User and Group under which Apache is running
|
||||
%define httpd_name apache2
|
||||
|
|
|
@ -2018,7 +2018,7 @@ SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @compon
|
|||
SET @group_id = '';
|
||||
SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name;
|
||||
|
||||
INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','cisco',1,2,'1.3.6.1.4.1.9.9.13.1.5.1.3','',0,'1.3.6.1.4.1.9.9.13.1.5.1.2','','','','',1);
|
||||
INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','cisco',1,2,'1.3.6.1.4.1.9.9.13.1.5.1.3','',1,'1.3.6.1.4.1.9.9.13.1.5.1.2','','','','',1);
|
||||
|
||||
SET @component_name = 'F5 Power supply _nameOID_ status';
|
||||
SET @component_description = 'The status of the indexed power supply on the system: bad(0), good(1), notpresent(2)';
|
||||
|
|
|
@ -338,7 +338,7 @@ class Client
|
|||
public function __construct(?array $settings)
|
||||
{
|
||||
// Default values.
|
||||
$this->umHost = 'licensing.artica.es';
|
||||
$this->umHost = 'licensing.pandorafms.com';
|
||||
$this->umPort = 443;
|
||||
$this->endPoint = '/';
|
||||
$this->insecure = false;
|
||||
|
|
|
@ -0,0 +1,85 @@
|
|||
#Plugin for monitoring Microsoft Exchange Server.
|
||||
#
|
||||
# Pandora FMS Agent Plugin for dchp.
|
||||
#
|
||||
#(c) Alejandro Sánchez <alejandro.sanchez@pandorafms.com>
|
||||
# v1.2, 26 enero 2023
|
||||
# ------------------------------------------------------------------------
|
||||
|
||||
|
||||
function print_module {
|
||||
|
||||
param ([string]$module_name,[string]$module_type,[string]$module_value,[string]$module_desc)
|
||||
|
||||
echo "<module>"
|
||||
echo "<name>$module_name</name>"
|
||||
echo "<type>$module_type</type>"
|
||||
echo "<data><![CDATA[$module_value]]></data>"
|
||||
echo "<description><![CDATA[$module_desc]]></description>"
|
||||
echo "</module>"
|
||||
|
||||
}
|
||||
|
||||
#$LinuxCurrentIP=$() 2> $NULL
|
||||
$WindowsCurrentIP=$((Get-NetIPConfiguration | Where-Object { $_.IPv4DefaultGateway -ne $null -and $_.NetAdapter.Status -ne "Disconnected" }).IPv4Address.IPAddress) 2> $NULL
|
||||
$Scopes=$(get-dhcpserverv4scope | ConvertTo-Csv -NoTypeInformation) 2> $NULL
|
||||
$Scopes=$(get-dhcpserverv4scope | Select ScopeId |ConvertTo-Csv -NoTypeInformation) 2> $NULL
|
||||
$ScopeIds=$(((get-dhcpserverv4scope).ScopeId).IPAddressToString) 2> $NULL
|
||||
|
||||
$avalaible_ips=0
|
||||
$count_reservation=0
|
||||
$count_leases=0
|
||||
ForEach($scope_ids in $Scopes)
|
||||
{
|
||||
if($scope_ids -notmatch 'ScopeId')
|
||||
{
|
||||
$scope_ids = $scope_ids -replace '"', ""
|
||||
$scope_ids =[IPAddress]$scope_ids
|
||||
$ScopeRange=$(get-dhcpserverv4scope -ScopeId $scope_ids | ConvertTo-Csv -NoTypeInformation)
|
||||
$ScopeMask=$(((get-dhcpserverv4scope -ScopeId $scope_ids).SubnetMask).IPAddressToString) 2> $NULL
|
||||
$PercentageInUse=$((get-dhcpserverv4scopestatistics -ScopeId $scope_ids).PercentageInUse) 2> $NULL
|
||||
# $Free=$((get-dhcpserverv4scopestatistics -ScopeId $scope_ids).Free) 2> $NULL
|
||||
# $InUse=$((get-dhcpserverv4scopestatistics -ScopeId $scope_ids).InUse) 2> $NULL
|
||||
# $Reserved=$((get-dhcpserverv4scopestatistics -ScopeId $scope_ids).Reserved) 2> $NULL
|
||||
# $Pending=$((get-dhcpserverv4scopestatistics -ScopeId $scope_ids).Pending) 2> $NULL
|
||||
#$AddressAssignedList=$(Get-DhcpServerv4Lease -ScopeId $scope_ids | ConvertTo-Csv -NoTypeInformation) 2> $NULL
|
||||
$AddressAssignedList=$((Get-DhcpServerv4Lease -ScopeId $scope_ids).AddressState) 2> $NULL
|
||||
#$Reservations=$(Get-DhcpServerv4Reservation -ScopeId $scope_ids | ConvertTo-Csv -NoTypeInformation) 2> $NULL
|
||||
$Reservations=$((Get-DhcpServerv4Reservation -ScopeId $scope_ids).AddressState) 2> $NULL
|
||||
$ExclusionRanges=$(Get-DhcpServerv4ExclusionRange -ScopeId $scope_ids | ConvertTo-Csv -NoTypeInformation) 2> $NULL
|
||||
$Start_range=((Get-DhcpServerv4ExclusionRange -ScopeId $scope_ids).StartRange.IPAddressToString) 2> $NULL
|
||||
$End_range=((Get-DhcpServerv4ExclusionRange -ScopeId $scope_ids).EndRange.IPAddressToString) 2> $NULL
|
||||
|
||||
|
||||
## reservation
|
||||
ForEach($reservation in $Reservations){
|
||||
if ($Reservations -match "InactiveReservation"){$count_reservation=$count_reservation+0}else {if ($Reservations){$count_reservation=$count_reservation+1}else {$count_reservation=$count_reservation+0} }
|
||||
}
|
||||
## leases
|
||||
ForEach($lease in $AddressAssignedList){
|
||||
if ($AddressAssignedList -match "InactiveReservation"){$count_leases=$count_leases+0}else {if ($Reservations){$count_reservation=$count_reservation+1}else {$count_reservation=$count_reservation+0} }
|
||||
}
|
||||
|
||||
$count_assigned=$count_reservation+$count_leases
|
||||
|
||||
# last octet value of an IP address
|
||||
$exc_start=$Start_range.Split('.')[-1]
|
||||
$exc_end=$End_range.Split('.')[-1]
|
||||
|
||||
# avalaible end range - start range +1
|
||||
$avalaible=[int]$exc_end - [int]$exc_start +1
|
||||
|
||||
$free= $avalaible - $count_reservation
|
||||
|
||||
print_module "[$scope_ids] - dhcp usage" "generic_data" "$PercentageInUse" "Used percentage"
|
||||
print_module "[$scope_ids] - dhcp reserved ips" "generic_data" "$count_reservation" "reservations"
|
||||
print_module "[$scope_ids] - dhcp assigned ips" "generic_data" "$count_assigned" "assigned ips"
|
||||
print_module "[$scope_ids] - dhcp avalaible ips" "generic_data" "$avalaible" "Available and reserved ips"
|
||||
print_module "[$scope_ids] - dhcp free ips" "generic_data" "$free" "Available ips (not reserved)"
|
||||
|
||||
#reset
|
||||
$count_reservation=0
|
||||
$count_leases=0
|
||||
}
|
||||
}
|
||||
|
|
@ -6,6 +6,7 @@ import argparse,json,sys
|
|||
from oauth2client.service_account import ServiceAccountCredentials
|
||||
from pprint import pprint
|
||||
from os import remove
|
||||
import re
|
||||
|
||||
import base64
|
||||
|
||||
|
@ -21,7 +22,7 @@ Version = {__version__}
|
|||
|
||||
Manual execution
|
||||
|
||||
python3 pandora_googlesheets.py --creds_json/creds_base64 <file credentials> --name <name document> --sheet <name-sheet> --cell <Number cell> --row <number-row> --column <number-column>
|
||||
./pandora_googlesheets --creds_json/creds_base64 <file credentials> --name <name document> --sheet <name-sheet> --cell <Number cell> --row <number-row> --column <number-column>
|
||||
|
||||
"""
|
||||
|
||||
|
@ -33,13 +34,16 @@ parser.add_argument('--cell', help='To collect the value of a cell.')
|
|||
parser.add_argument('--row', help='To collect the value of a row.',type=int)
|
||||
parser.add_argument('--column', help='To collect the value of a column.',type=int)
|
||||
parser.add_argument('--sheet', help='To indicate the name of the document sheet, put it in quotation marks and count spaces and capital letters.',type=str)
|
||||
parser.add_argument('--onlydigits', help='To parse the value of the cell if its not a digit',default=0)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
scope = ["https://spreadsheets.google.com/feeds",'https://www.googleapis.com/auth/spreadsheets',"https://www.googleapis.com/auth/drive.file","https://www.googleapis.com/auth/drive"]
|
||||
|
||||
|
||||
|
||||
def convert_to_number(s):
|
||||
cleaned_value = re.sub("[^0-9]", "", s)
|
||||
return int(cleaned_value) if cleaned_value else 0
|
||||
|
||||
## authenticate with file json input
|
||||
if args.creds_json is not None and args.creds_base64 == None:
|
||||
|
@ -56,14 +60,34 @@ else:
|
|||
print("You need to use the --creds_json or creds_base 64 parameter to authenticate. You can only select one.")
|
||||
sys.exit()
|
||||
|
||||
client = gspread.authorize(creds)
|
||||
try:
|
||||
client = gspread.authorize(creds)
|
||||
except Exception as e:
|
||||
print("Error authenticating with credentials:", e)
|
||||
sys.exit()
|
||||
|
||||
sheet = client.open(args.name) # Open the spreadhseet
|
||||
worksheet = sheet.worksheet(args.sheet) # Open worksheet
|
||||
try:
|
||||
sheet = client.open(args.name) # Open the spreadsheet
|
||||
except gspread.exceptions.SpreadsheetNotFound as e:
|
||||
print(f"Error: Spreadsheet '{args.name}' not found.")
|
||||
sys.exit()
|
||||
try:
|
||||
worksheet = sheet.worksheet(args.sheet) # Open worksheet
|
||||
except gspread.exceptions.WorksheetNotFound as e:
|
||||
print(f"Error: Worksheet '{args.sheet}' not found.")
|
||||
sys.exit()
|
||||
|
||||
if args.cell is not None and args.row==None and args.column==None :
|
||||
|
||||
val = worksheet.acell(args.cell).value
|
||||
|
||||
if int(args.onlydigits)==1:
|
||||
|
||||
try:
|
||||
val = convert_to_number(val)
|
||||
except ValueError as e:
|
||||
print(e)
|
||||
|
||||
|
||||
elif args.row is not None and args.column==None and args.cell == None:
|
||||
|
||||
|
@ -77,5 +101,4 @@ else:
|
|||
print("To search for data in a cell use the --cell parameter, for data in a column --column and in a row --row, only one of these parameters can be used at a time.")
|
||||
sys.exit()
|
||||
|
||||
|
||||
print(val)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-server
|
||||
Version: 7.0NG.771
|
||||
Version: 7.0NG.771-230517
|
||||
Architecture: all
|
||||
Priority: optional
|
||||
Section: admin
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
pandora_version="7.0NG.771"
|
||||
pandora_version="7.0NG.771-230517"
|
||||
|
||||
package_cpan=0
|
||||
package_pandora=1
|
||||
|
|
|
@ -46,7 +46,7 @@ our @EXPORT = qw(
|
|||
|
||||
# version: Defines actual version of Pandora Server for this module only
|
||||
my $pandora_version = "7.0NG.771";
|
||||
my $pandora_build = "230509";
|
||||
my $pandora_build = "230517";
|
||||
our $VERSION = $pandora_version." ".$pandora_build;
|
||||
|
||||
# Setup hash
|
||||
|
|
|
@ -34,7 +34,7 @@ our @ISA = qw(Exporter);
|
|||
|
||||
# version: Defines actual version of Pandora Server for this module only
|
||||
my $pandora_version = "7.0NG.771";
|
||||
my $pandora_build = "230509";
|
||||
my $pandora_build = "230517";
|
||||
our $VERSION = $pandora_version." ".$pandora_build;
|
||||
|
||||
our %EXPORT_TAGS = ( 'all' => [ qw() ] );
|
||||
|
|
|
@ -135,8 +135,9 @@ sub data_producer ($) {
|
|||
###############################################################################
|
||||
# Data consumer.
|
||||
###############################################################################
|
||||
sub data_consumer ($$) {
|
||||
my ($self, $module_id) = @_;
|
||||
#sub data_consumer ($$;$) {
|
||||
sub data_consumer {
|
||||
my ($self, $module_id, $none) = @_;
|
||||
my ($pa_config, $dbh) = ($self->getConfig (), $self->getDBH ());
|
||||
|
||||
my $module = get_db_single_row ($dbh, 'SELECT * FROM tagente_modulo WHERE id_agente_modulo = ?', $module_id);
|
||||
|
@ -247,6 +248,14 @@ sub data_consumer ($$) {
|
|||
};
|
||||
}
|
||||
|
||||
# Every once in a while a WMI module seems to return None and we don't know the
|
||||
# cause yet. Calling data_consumer again is not the most efficient way to retry the module,
|
||||
# but it reduces the complexity of the function and this should only happen on rare occasions.
|
||||
if ($module_data eq 'None' && !defined($none)) {
|
||||
data_consumer($self, $module_id, 'None');
|
||||
return;
|
||||
}
|
||||
|
||||
my $utimestamp = time ();
|
||||
my $timestamp = strftime ("%Y-%m-%d %H:%M:%S", localtime($utimestamp));
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
%global __os_install_post %{nil}
|
||||
%define name pandorafms_server
|
||||
%define version 7.0NG.771
|
||||
%define release 1
|
||||
%define release 230517
|
||||
|
||||
Summary: Pandora FMS Server
|
||||
Name: %{name}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
%global __os_install_post %{nil}
|
||||
%define name pandorafms_server
|
||||
%define version 7.0NG.771
|
||||
%define release 1
|
||||
%define release 230517
|
||||
|
||||
Summary: Pandora FMS Server
|
||||
Name: %{name}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
# **********************************************************************
|
||||
|
||||
PI_VERSION="7.0NG.771"
|
||||
PI_BUILD="230509"
|
||||
PI_BUILD="230517"
|
||||
|
||||
MODE=$1
|
||||
if [ $# -gt 1 ]; then
|
||||
|
|
|
@ -35,7 +35,7 @@ use PandoraFMS::Config;
|
|||
use PandoraFMS::DB;
|
||||
|
||||
# version: define current version
|
||||
my $version = "7.0NG.771 Build 230509";
|
||||
my $version = "7.0NG.771 Build 230517";
|
||||
|
||||
# Pandora server configuration
|
||||
my %conf;
|
||||
|
|
|
@ -36,7 +36,7 @@ use Encode::Locale;
|
|||
Encode::Locale::decode_argv;
|
||||
|
||||
# version: define current version
|
||||
my $version = "7.0NG.771 Build 230509";
|
||||
my $version = "7.0NG.771 Build 230517";
|
||||
|
||||
# save program name for logging
|
||||
my $progname = basename($0);
|
||||
|
@ -4504,7 +4504,7 @@ sub cli_create_event() {
|
|||
print_log "[INFO] Adding event '$event' for agent '$agent_name' \n\n";
|
||||
|
||||
pandora_event ($conf, $event, $id_group, $id_agent, $severity,
|
||||
$id_alert_agent_module, $id_agentmodule, $event_type, $event_status, $dbh, $source, $user_name, safe_input($comment), $id_extra, $tags, $c_instructions, $w_instructions, $u_instructions, $custom_data, undef, undef, $server_id);
|
||||
$id_alert_agent_module, $id_agentmodule, $event_type, $event_status, $dbh, safe_input($source), $user_name, safe_input($comment), safe_input($id_extra), safe_input($tags), safe_input($c_instructions), safe_input($w_instructions), safe_input($u_instructions), $custom_data, undef, undef, $server_id);
|
||||
}
|
||||
} else {
|
||||
if (! $agent_name) {
|
||||
|
@ -4551,7 +4551,7 @@ sub cli_create_event() {
|
|||
print_log "[INFO] Adding event '$event' for agent '$agent_name' \n\n";
|
||||
|
||||
pandora_event ($conf, $event, $id_group, $id_agent, $severity,
|
||||
$id_alert_agent_module, $id_agentmodule, $event_type, $event_status, $dbh, $source, $user_name, safe_input($comment), $id_extra, $tags, $c_instructions, $w_instructions, $u_instructions, $custom_data, undef, undef, $server_id);
|
||||
$id_alert_agent_module, $id_agentmodule, $event_type, $event_status, $dbh, safe_input($source), $user_name, safe_input($comment), safe_input($id_extra), safe_input($tags), safe_input($c_instructions), safe_input($w_instructions), safe_input($u_instructions), $custom_data, undef, undef, $server_id);
|
||||
|
||||
}
|
||||
}
|
||||
|
|