2008-08-22 20:07:32 +02:00
< ? php
2007-02-27 20:03:56 +01:00
2009-06-08 20:21:21 +02:00
// Pandora FMS - http://pandorafms.com
// ==================================================
2010-03-02 17:41:27 +01:00
// Copyright (c) 2005-2010 Artica Soluciones Tecnologicas
2009-06-08 20:21:21 +02:00
// Please see http://pandorafms.org for full contribution list
2007-03-12 18:58:52 +01:00
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
2008-04-01 15:53:11 +02:00
// as published by the Free Software Foundation for version 2.
2007-03-12 18:58:52 +01:00
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
2018-03-22 13:34:15 +01:00
// Load global vars
2019-01-30 16:18:44 +01:00
enterprise_include ( 'godmode/agentes/agent_manager.php' );
require_once 'include/functions_clippy.php' ;
require_once 'include/functions_servers.php' ;
require_once 'include/functions_gis.php' ;
require_once $config [ 'homedir' ] . '/include/functions_agents.php' ;
require_once $config [ 'homedir' ] . '/include/functions_users.php' ;
if ( is_ajax ()) {
global $config ;
$search_parents_2 = ( bool ) get_parameter ( 'search_parents_2' );
if ( $search_parents_2 ) {
include_once 'include/functions_agents.php' ;
$id_agent = ( int ) get_parameter ( 'id_agent' );
$string = ( string ) get_parameter ( 'q' );
// q is what autocomplete plugin gives
$filter = [];
switch ( $config [ 'dbtype' ]) {
case 'mysql' :
case 'postgresql' :
$filter [] = '(nombre COLLATE utf8_general_ci LIKE "%' . $string . '%" OR direccion LIKE "%' . $string . '%" OR comentarios LIKE "%' . $string . '%" OR alias LIKE "%' . $string . '%")' ;
break ;
case 'oracle' :
$filter [] = '(upper(nombre) LIKE upper(\'%' . $string . '%\') OR upper(direccion) LIKE upper(\'%' . $string . '%\') OR upper(comentarios) LIKE upper(\'%' . $string . '%\') OR upper(alias) LIKE upper(\'%' . $string . '%\'))' ;
break ;
}
$filter [] = 'id_agente != ' . $id_agent ;
$agents = agents_get_agents ( $filter , [ 'id_agente' , 'nombre' , 'direccion' ]);
if ( $agents === false ) {
$agents = [];
}
$data = [];
foreach ( $agents as $agent ) {
$data [] = [
'id' => $agent [ 'id_agente' ],
'name' => io_safe_output ( $agent [ 'nombre' ]),
'ip' => io_safe_output ( $agent [ 'direccion' ]),
];
}
echo io_json_mb_encode ( $data );
return ;
}
$get_modules_json_for_multiple_snmp = ( bool ) get_parameter ( 'get_modules_json_for_multiple_snmp' , 0 );
if ( $get_modules_json_for_multiple_snmp ) {
include_once 'include/graphs/functions_utils.php' ;
$idSNMP = get_parameter ( 'id_snmp' );
$id_snmp_serialize = get_parameter ( 'id_snmp_serialize' );
$snmp = unserialize_in_temp ( $id_snmp_serialize , false );
$oid_snmp = [];
$out = false ;
foreach ( $idSNMP as $id ) {
foreach ( $snmp [ $id ] as $key => $value ) {
// Check if it has "ifXXXX" syntax and skip it
if ( ! preg_match ( '/if/' , $key )) {
continue ;
}
$oid_snmp [ $value [ 'oid' ]] = $key ;
}
if ( $out === false ) {
$out = $oid_snmp ;
} else {
$out = array_intersect ( $out , $oid_snmp );
}
$oid_snmp = [];
}
echo io_json_mb_encode ( $out );
}
// And and remove groups use the same function
$add_secondary_groups = get_parameter ( 'add_secondary_groups' );
$remove_secondary_groups = get_parameter ( 'remove_secondary_groups' );
if ( $add_secondary_groups || $remove_secondary_groups ) {
$id_agent = get_parameter ( 'id_agent' );
$groups_to_add = get_parameter ( 'groups' );
if ( enterprise_installed ()) {
if ( empty ( $groups_to_add )) {
return 0 ;
}
enterprise_include ( 'include/functions_agents.php' );
$ret = enterprise_hook (
'agents_update_secondary_groups' ,
[
$id_agent ,
$add_secondary_groups ? $groups_to_add : [],
$remove_secondary_groups ? $groups_to_add : [],
]
);
// Echo 0 in case of error. 0 Otherwise.
echo $ret ? 1 : 0 ;
}
}
return ;
2009-06-09 13:25:47 +02:00
}
2009-04-13 17:05:21 +02:00
2011-04-13 18:11:02 +02:00
ui_require_javascript_file ( 'openlayers.pandora' );
2010-02-09 18:06:25 +01:00
2019-01-30 16:18:44 +01:00
$new_agent = ( bool ) get_parameter ( 'new_agent' );
2009-04-13 17:05:21 +02:00
2019-01-30 16:18:44 +01:00
if ( ! isset ( $id_agente ) && ! $new_agent ) {
db_pandora_audit ( 'ACL Violation' , 'Trying to access agent manager witout an agent' );
include 'general/noaccess.php' ;
return ;
2008-06-17 Esteban Sanchez <estebans@artica.es>
* ajax.php: Added to repository. AJAX interface for Pandora. A new
time is coming...
* pandoradb.sql: Added id_group to treport. A report is now assigned
to a group of agents. Changes in treport_content to add an order
field, drop sla fields and use an enum for the type. NOTE: This will
break all your current defined reports, update under your
responsabillity. Added table treport_content_sla_combined to define
SLAs in the SLA types reports.
* godmode/reporting/graph_builder.php: Use Pandora functions. Adde
javascript code to display the module icon when changing from the
dropdown menu.
* godmode/reporting/reporting_builder.php: Almost complet rewritten to
use Pandora HTML functions. Style correction.
* include/functions.php: Added new report types. Style correction.
* include/functions_db.php: Use Pandora database functions to get
simple values. Added functions get_agents_in_group(),
get_modules_in_agent(), get_simple_alerts_in_agent(),
get_combined_alerts_in_agent(), get_alerts_in_agent(),
get_monitor_downs_in_period(),
get_monitor_last_down_timestamp_in_period(),
get_alert_fires_in_period(),
get_alert_last_fire_timestamp_in_period(). Deleted debug output and
fixed calling to an inexistent function in
return_moduledata_sum_value().
* include/functions_html.php: Tab style correction. Thanks to Ramon
for the advice. Fixed some errors on print_table that was causing not
to work fine if rowclass or colspan was defined.
* include/functions_reporting.php: Adde date support to
return_module_SLA(), event_reporting(). Added alert_reporting(),
monitor_health_reporting(), general_group_reporting() and
agents_detailed_reporting() to implement new report types. Style
correction.
* include/javascript/pandora.js: Added html_entity_decode() function
to decode some AJAX results.
* javascript/jquery.js: Added to repository. jQuery version 1.2.4a
* include/javascript/jquery.timeentry.js: jQuery plugin to manage time
inputs.
* include/javascript/jquery.ui.datepicker.js: jQuery plugin to manage
date inputs in a dropdown calendar.
* include/languages/date_*.js, include/languages/time_*.js: Added to
repository. Translation of date and time strings for the new calendar
javascript support.
* include/languages/language_en.php: Added new strings relatives to
reports.
* include/languages/language_de.php,
include/languages/language_fr.php, include/languages/language_gl.php,
include/languages/language_pt_br.php: Fixed a variable name.
* godmode/groups/group_list.php: Avoid the use of an extra indentation
by returning if no success on comprueba_login().
* include/styles/pandora.css: Add some classes. Tab style correction.
* operation/agentes/ver_agente.php: Added AJAX support to agent
operations.
* operation/reporting/graph_viewer.php: Period dropdown selection
improved and printed with Pandora functions.
* operation/reporting/reporting_viewer.php: Massive rewritten.
Implemented date and time support, added new report types, use Pandora
functions...
* reporting/fgraph.php: Documentation fix. Added a new graphic to show
monitors health.
* godmode/agentes/agent_manager.php,
operation/reporting/custom_reporting.php: Style correction.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@869 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2008-06-17 16:30:44 +02:00
}
2007-02-27 20:03:56 +01:00
2009-05-27 16:12:40 +02:00
if ( $new_agent ) {
2019-01-30 16:18:44 +01:00
if ( ! empty ( $direccion_agente ) && empty ( $nombre_agente )) {
$nombre_agente = $direccion_agente ;
}
$servers = servers_get_names ();
if ( ! empty ( $servers )) {
$array_keys_servers = array_keys ( $servers );
$server_name = reset ( $array_keys_servers );
}
2009-05-27 16:12:40 +02:00
}
2009-10-20 17:23:26 +02:00
if ( ! $new_agent ) {
2019-01-30 16:18:44 +01:00
// Agent remote configuration editor
enterprise_include_once ( 'include/functions_config_agents.php' );
if ( enterprise_installed ()) {
$filename = config_agents_get_agent_config_filenames ( $id_agente );
}
2013-01-09 17:19:20 +01:00
}
2008-11-20 15:09:26 +01:00
2019-01-30 16:18:44 +01:00
$disk_conf_delete = ( bool ) get_parameter ( 'disk_conf_delete' );
2008-06-19 02:24:05 +02:00
// Agent remote configuration DELETE
2009-04-13 17:05:21 +02:00
if ( $disk_conf_delete ) {
2019-01-30 16:18:44 +01:00
// TODO: Get this working on computers where the Pandora server(s) are not on the webserver
// TODO: Get a remote_config editor working in the open version
@ unlink ( $filename [ 'md5' ]);
@ unlink ( $filename [ 'conf' ]);
2008-06-19 02:24:05 +02:00
}
2012-04-24 Dario Rodriguez <dario.rodriguez@artica.es>
* operation/agentes/estado_agente.php,
operation/agentes/ver_agente.php,
operation/menu.php,
godmode/agentes/agent_template.php,
godmode/agentes/fields_manager.php,
godmode/agentes/agent_conf_gis.php,
godmode/agentes/module_manager.php,
godmode/agentes/modificar_agente.php,
godmode/agentes/configurar_agente.php,
godmode/agentes/configure_field.php,
godmode/agentes/planned_downtime.php,
godmode/agentes/agent_manager.php,
godmode/menu.php: Fixed some problems with links and new menu structure.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6127 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2012-04-24 12:02:06 +02:00
echo '<form name="conf_agent" method="post" action="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente">' ;
2008-11-20 15:09:26 +01:00
2019-01-30 16:18:44 +01:00
if ( ! $new_agent && $alias != '' ) {
2019-04-17 09:27:15 +02:00
$table_agent_name = '<div class="label_select"><p class="input_label">' . __ ( 'Agent name' ) . ': ' . ui_print_help_tip ( __ ( " The agent's name must be the same as the one defined at the console " ), true ) . '</p>' ;
$table_agent_name .= '<div class="label_select_parent">' ;
$table_agent_name .= '<div class="label_select_child_left">' . html_print_input_text ( 'agente' , $nombre_agente , '' , 50 , 100 , true ) . '</div>' ;
$table_agent_name .= '<div class="label_select_child_right agent_info_agent_name">' ;
2019-01-30 16:18:44 +01:00
2019-04-17 09:27:15 +02:00
$table_qr_code = '<div class="agent_qr white_box"><p class="input_label">' . __ ( 'QR Code Agent view' ) . ': </p>' ;
2019-01-30 16:18:44 +01:00
if ( $id_agente ) {
2019-04-17 09:27:15 +02:00
$table_agent_name .= '<span>' . __ ( 'ID' ) . ' ' . $id_agente . '</span>' ;
$table_agent_name .= '<a href="index.php?sec=gagente&sec2=operation/agentes/ver_agente&id_agente=' . $id_agente . '">' ;
$table_agent_name .= html_print_image (
2019-01-30 16:18:44 +01:00
'images/zoom.png' ,
true ,
[
'border' => 0 ,
'title' => __ ( 'Agent detail' ),
]
);
2019-04-17 09:27:15 +02:00
$table_agent_name .= '</a>' ;
2019-01-30 16:18:44 +01:00
}
2019-04-17 09:27:15 +02:00
} else {
$agent_info_new = 'agent_info_new' ;
2008-11-20 15:09:26 +01:00
}
2019-04-17 09:27:15 +02:00
// Delete link from here.
if ( ! $new_agent ) {
$table_agent_name .= " <a onClick= \" if (!confirm(' " . __ ( 'Are you sure?' ) . " ')) return false; \" href='index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&borrar_agente= $id_agente &search=&offset=0&sort_field=&sort=none'> " . html_print_image ( 'images/cross.png' , true , [ 'title' => __ ( 'Delete agent' )]) . '</a>' ;
}
// Remote configuration available.
2009-10-20 17:23:26 +02:00
if ( ! $new_agent ) {
2019-01-30 16:18:44 +01:00
if ( isset ( $filename )) {
if ( file_exists ( $filename [ 'md5' ])) {
$agent_name = agents_get_name ( $id_agente );
$agent_name = io_safe_output ( $agent_name );
$agent_md5 = md5 ( $agent_name , false );
2019-04-17 09:27:15 +02:00
$table_agent_name .= '<a href="index.php?' . 'sec=gagente&' . 'sec2=godmode/agentes/configurar_agente&' . 'tab=remote_configuration&' . 'id_agente=' . $id_agente . '&' . 'disk_conf=' . $agent_md5 . '">' ;
$table_agent_name .= html_print_image (
2019-01-30 16:18:44 +01:00
'images/application_edit.png' ,
true ,
[
'border' => 0 ,
'title' => __ ( 'This agent can be remotely configured' ),
]
);
2019-04-17 09:27:15 +02:00
$table_agent_name .= '</a>' . ui_print_help_tip (
2019-01-30 16:18:44 +01:00
__ ( 'You can remotely edit this agent configuration' ),
true
);
}
}
2008-06-09 15:17:29 +02:00
}
2007-04-18 11:58:26 +02:00
2011-06-22 19:21:50 +02:00
if ( ! $new_agent ) {
2019-04-17 09:27:15 +02:00
$table_agent_name .= '</div></div></div>' ;
2011-06-22 19:21:50 +02:00
}
2019-01-30 16:18:44 +01:00
if ( $new_agent ) {
2019-04-17 09:27:15 +02:00
$label_select_child_left = 'label_select_child_left' ;
$label_select_parent = 'label_select_parent' ;
2017-03-06 15:22:01 +01:00
}
2011-06-22 19:21:50 +02:00
2019-04-17 09:27:15 +02:00
$table_alias = '<div class="label_select"><p class="input_label">' . __ ( 'Alias' ) . ': ' . ui_print_help_tip ( __ ( 'Characters /,\,|,%,#,&,$ will be ignored' ), true ) . '</p>' ;
$table_alias .= '<div class=' . $label_select_parent . '>' ;
$table_alias .= '<div class=' . $label_select_child_left . '>' . html_print_input_text ( 'alias' , $alias , '' , 50 , 100 , true ) . '</div>' ;
if ( $new_agent ) {
$table_alias .= '<div class="label_select_child_right">' . html_print_checkbox_switch ( 'alias_as_name' , 1 , $config [ 'alias_as_name' ], true ) . __ ( 'Use alias as name' ) . '</div>' ;
}
2007-04-18 11:58:26 +02:00
2019-04-17 09:27:15 +02:00
$table_alias .= '</div></div>' ;
$table_ip = '<div class="label_select"><p class="input_label">' . __ ( 'IP Address' ) . ': </p>' ;
$table_ip .= '<div class="label_select_parent">' ;
$table_ip .= '<div class="label_select_child_left">' . html_print_input_text ( 'direccion' , $direccion_agente , '' , 16 , 100 , true ) . '</div>' ;
$table_ip .= '<div class="label_select_child_right">' . html_print_checkbox_switch ( 'unique_ip' , 1 , $config [ 'unique_ip' ], true ) . __ ( 'Unique IP' ) . ui_print_help_tip ( __ ( 'Set the primary IP address as the unique IP, preventing the same primary IP address from being used in more than one agent' ), true ) . '</div>' ;
$table_ip .= '</div></div>' ;
2016-09-22 10:27:35 +02:00
2019-04-17 09:27:15 +02:00
if ( $id_agente ) {
2019-01-30 16:18:44 +01:00
$ip_all = agents_get_addresses ( $id_agente );
2016-09-22 10:27:35 +02:00
2019-04-17 09:27:15 +02:00
$table_ip .= '<div class="label_select">' ;
$table_ip .= '<div class="label_select_parent">' ;
$table_ip .= '<div class="label_select_child_left">' . html_print_select ( $ip_all , 'address_list' , $direccion_agente , '' , '' , 0 , true ) . '</div>' ;
$table_ip .= '<div class="label_select_child_right">' . html_print_checkbox_switch ( 'delete_ip' , 1 , false , true ) . __ ( 'Delete selected' ) . '</div>' ;
$table_ip .= '</div></div>' ;
2007-08-23 17:52:42 +02:00
}
2007-04-18 11:58:26 +02:00
2014-05-30 12:51:33 +02:00
?>
< style type = " text/css " >
2019-01-30 16:18:44 +01:00
#qr_code_agent_view img {
display : inline ! important ;
}
2014-05-30 12:51:33 +02:00
</ style >
< ? php
2019-01-30 16:18:44 +01:00
if ( ! $new_agent ) {
if ( $id_agente ) {
2019-04-17 09:27:15 +02:00
$table_qr_code .= " <a id='qr_code_agent_view' href='javascript: show_dialog_qrcode(null, \" " . ui_get_full_url ( 'mobile/index.php?page=agent&id=' . $id_agente ) . " \" );'></a> " ;
2019-01-30 16:18:44 +01:00
} else {
2019-04-17 09:27:15 +02:00
$table_qr_code .= __ ( 'Only it is show when<br />the agent is saved.' );
2019-01-30 16:18:44 +01:00
}
2019-04-17 09:27:15 +02:00
$table_qr_code .= '</div>' ;
2014-07-22 18:03:27 +02:00
}
2014-05-30 12:51:33 +02:00
2019-01-30 16:18:44 +01:00
$groups = users_get_groups ( $config [ 'id_user' ], 'AR' , false );
2017-02-16 16:05:21 +01:00
2019-01-30 16:18:44 +01:00
$modules = db_get_all_rows_sql (
' SELECT id_agente_modulo as id_module , nombre as name FROM tagente_modulo
WHERE id_agente = ' . $id_parent
);
$modules_values = [];
2017-01-25 13:59:14 +01:00
$modules_values [ 0 ] = __ ( 'Any' );
2019-01-30 16:18:44 +01:00
if ( is_array ( $modules )) {
foreach ( $modules as $m ) {
$modules_values [ $m [ 'id_module' ]] = $m [ 'name' ];
}
2017-01-25 13:59:14 +01:00
}
2019-04-17 09:27:15 +02:00
$table_primary_group = '<div class="label_select"><p class="input_label">' . __ ( 'Primary group' ) . ': </p>' ;
$table_primary_group .= '<div class="label_select_parent">' ;
// Cannot change primary group if user have not permission for that group.
2018-03-27 16:38:17 +02:00
if ( isset ( $groups [ $grupo ]) || $new_agent ) {
2019-04-17 09:27:15 +02:00
$table_primary_group .= html_print_select_groups ( false , 'AR' , false , 'grupo' , $grupo , '' , '' , 0 , true );
2018-03-27 16:38:17 +02:00
} else {
2019-04-17 09:27:15 +02:00
$table_primary_group .= groups_get_name ( $grupo );
$table_primary_group .= html_print_input_hidden ( 'grupo' , $grupo , true );
2018-03-27 16:38:17 +02:00
}
2019-01-30 16:18:44 +01:00
2019-04-17 09:27:15 +02:00
$table_primary_group .= '<div class="label_select_child_icons"><span id="group_preview">' ;
$table_primary_group .= ui_print_group_icon ( $grupo , true );
$table_primary_group .= '</span></div></div></div>' ;
2009-10-06 21:27:57 +02:00
2019-04-17 09:27:15 +02:00
$table_interval = '<div class="label_select"><p class="input_label">' . __ ( 'Interval' ) . ': </p>' ;
$table_interval .= '<div class="label_select_parent">' ;
$table_interval .= html_print_extended_select_for_time ( 'intervalo' , $intervalo , '' , '' , '0' , 10 , true );
2015-06-08 11:05:19 +02:00
if ( $intervalo < SECONDS_5MINUTES ) {
2019-04-17 09:27:15 +02:00
$table_interval .= clippy_context_help ( 'interval_agent_min' );
2015-02-03 16:08:41 +01:00
}
2019-01-30 16:18:44 +01:00
2019-04-17 09:27:15 +02:00
$table_interval .= '</div></div>' ;
$table_os = '<div class="label_select"><p class="input_label">' . __ ( 'OS' ) . ': </p>' ;
$table_os .= '<div class="label_select_parent">' ;
$table_os .= html_print_select_from_sql (
2019-01-30 16:18:44 +01:00
'SELECT id_os, name FROM tconfig_os' ,
'id_os' ,
$id_os ,
'' ,
'' ,
'0' ,
true
);
2019-04-17 09:27:15 +02:00
$table_os .= '<div class="label_select_child_icons"> <span id="os_preview">' ;
$table_os .= ui_print_os_icon ( $id_os , false , true );
$table_os .= '</span></div></div></div>' ;
2008-03-06 Sancho Lerena <slerena@gmail.com>
Pandora FMS 2.0 development first commit. 1.4 version is now 2.0
* pandoradb_data.sql: Added correct tnetwork_components, fixed
ttipo_modulo (categoria values).
* include/styles/pandora.css: Added some server icons, tab style
for module editor has been improved.
* include/functions_db.php: added new functions, lang_string and
check_login, and a first review of several functions that currently
need change for new config session parameters in array $config[]
* include/javascript/pandora.js: Added a new global include for
spare javascript functions before included into a few pages.
* include/languages/language_en.php: New tokens.
* include/help*: New contextual help system.
* include/config_process.php: New way to manage config.
* include/functions.php: Added new functions to manage global
* operation/agentes/estado_ultimopaquete.php: removed old javascript
code from there.
* operation/agentes/estado_agente.php: Removed references to deprecated
field "agent_type".
* operation/agentes/tactical.php: Some code cleanup and progressbar
issues merged from 1.3.1 branch. Need to add support to new server
types and new module types.
* operation/servers/view_server.php: Added support to new servers, code
cleanup.
* reporting/fgraph.php: Code cleanup, changes to use new config method,
and a lot of style change.
* general/pandora_help.php: New source for contextual help in the way
of moodle.
* general/footer.php, general/noaccess.php: Code cleanup and uses of
new config.
* module_manager_editor: New editors for each module family. Need
finish and implement EDITION of data, now only inserts data.
* godmode/agentes/agent_manager.php: Implemented new server assigment
and edition.
* godmode/agentes/configurar_agente.php: Small changes that affects
module management, visualization and agent management.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@739 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2008-03-07 17:22:16 +01:00
2019-04-17 09:27:15 +02:00
// Network server.
2013-06-13 13:41:56 +02:00
$servers = servers_get_names ();
if ( ! array_key_exists ( $server_name , $servers )) {
2019-01-30 16:18:44 +01:00
$server_Name = 0 ;
// Set the agent have not server.
2013-06-13 13:41:56 +02:00
}
2019-01-30 16:18:44 +01:00
2019-04-17 09:27:15 +02:00
$table_server = '<div class="label_select"><p class="input_label">' . __ ( 'Server' ) . ': </p>' ;
$table_server .= '<div class="label_select_parent">' ;
2013-01-09 17:19:20 +01:00
if ( $new_agent ) {
2019-01-30 16:18:44 +01:00
// Set first server by default.
$servers_get_names = servers_get_names ();
$array_keys_servers_get_names = array_keys ( $servers_get_names );
$server_name = reset ( $array_keys_servers_get_names );
2013-01-09 17:19:20 +01:00
}
2019-01-30 16:18:44 +01:00
2019-04-17 09:27:15 +02:00
$table_server .= html_print_select (
2019-01-30 16:18:44 +01:00
servers_get_names (),
'server_name' ,
$server_name ,
'' ,
__ ( 'None' ),
0 ,
true
2019-04-17 09:27:15 +02:00
) . '<div class="label_select_child_icons">' . ui_print_help_icon ( 'agent_server' , true ) . '</div></div></div>' ;
2008-10-22 14:01:36 +02:00
2019-04-17 09:27:15 +02:00
// Description.
$table_description = '<div class="label_select"><p class="input_label">' . __ ( 'Description' ) . ': </p>' ;
$table_description .= html_print_input_text (
2019-01-30 16:18:44 +01:00
'comentarios' ,
$comentarios ,
'' ,
45 ,
200 ,
true
2019-04-17 09:27:15 +02:00
) . '</div>' ;
2019-01-30 16:18:44 +01:00
2019-04-17 09:27:15 +02:00
echo ' < div class = " first_row " >
< div class = " agent_info '. $agent_info_new .' white_box " >
< div class = " agent_info_left " > '.$table_agent_name.$table_alias.$table_ip.$table_primary_group.' </ div >
< div class = " agent_info_right " > '.$table_interval.$table_os.$table_server.$table_description.' </ div >
</ div > ' ;
if ( ! $new_agent ) {
echo $table_qr_code ;
}
echo '</div>' ;
2010-08-25 14:04:42 +02:00
2015-06-25 10:07:53 +02:00
$table = new stdClass ();
2015-04-10 09:43:44 +02:00
$table -> width = '100%' ;
2019-01-30 16:18:44 +01:00
$table -> class = 'databox filters' ;
2010-08-25 14:04:42 +02:00
2019-01-30 16:18:44 +01:00
$table -> head = [];
$table -> style = [];
2015-06-12 15:50:46 +02:00
$table -> style [ 0 ] = 'font-weight: bold; ' ;
2017-10-17 16:58:05 +02:00
$table -> style [ 4 ] = 'font-weight: bold;' ;
2019-01-30 16:18:44 +01:00
$table -> data = [];
2010-08-25 14:04:42 +02:00
2018-03-21 16:27:01 +01:00
if ( enterprise_installed ()) {
2019-01-30 16:18:44 +01:00
$secondary_groups_selected = enterprise_hook ( 'agents_get_secondary_groups' , [ $id_agente ]);
$table -> data [ 'secondary_groups' ][ 0 ] = __ ( 'Secondary groups' ) . ui_print_help_icon ( 'secondary_groups' , true );
$table -> data [ 'secondary_groups' ][ 1 ] = html_print_select_groups (
false ,
// Use the current user to select the groups
'AR' ,
// ACL permission
false ,
// Not all group
'secondary_groups' ,
// HTML id
'' ,
// No select any by default
'' ,
// Javascript onChange code
'' ,
// Do not user no selected value
0 ,
// Do not use no selected value
true ,
// Return HTML (not echo)
true ,
// Multiple selection
true ,
// Sorting by default
'' ,
// CSS classnames (default)
false ,
// Not disabled (default)
false ,
// Inline styles (default)
false ,
// Option style select (default)
false ,
// Do not truncate the users tree (default)
'id_grupo' ,
// Key to get as value (default)
false ,
// Not strict user (default)
$secondary_groups_selected [ 'plain' ]
// Do not show the primary group in this selection
);
$table -> data [ 'secondary_groups' ][ 2 ] = html_print_input_image (
'add_secondary' ,
'images/darrowright.png' ,
1 ,
'' ,
true ,
[
'title' => __ ( 'Add secondary groups' ),
'onclick' => 'agent_manager_add_secondary_groups(event, ' . $id_agente . ');' ,
]
) . '<br /><br /><br /><br />' . html_print_input_image (
'remove_secondary' ,
'images/darrowleft.png' ,
1 ,
'' ,
true ,
[
'title' => __ ( 'Remove secondary groups' ),
'onclick' => 'agent_manager_remove_secondary_groups(event, ' . $id_agente . ');' ,
]
);
$table -> data [ 'secondary_groups' ][ 3 ] = html_print_select (
$secondary_groups_selected [ 'for_select' ],
// Values
'secondary_groups_selected' ,
// HTML id
'' ,
// Selected
'' ,
// Javascript onChange code
'' ,
// Nothing selected
0 ,
// Nothing selected
true ,
// Return HTML (not echo)
true
// Multiple selection
);
// safe operation mode
if ( $id_agente ) {
$sql_modules = db_get_all_rows_sql (
' SELECT id_agente_modulo as id_module , nombre as name FROM tagente_modulo
WHERE id_agente = ' . $id_agente
);
$safe_mode_modules = [];
$safe_mode_modules [ 0 ] = __ ( 'Any' );
foreach ( $sql_modules as $m ) {
$safe_mode_modules [ $m [ 'id_module' ]] = $m [ 'name' ];
}
$table -> data [ 2 ][ 0 ] = __ ( 'Safe operation mode' ) . ui_print_help_tip (
__ (
' This mode allow % s to disable all modules
of this agent while the selected module is on CRITICAL status ' ,
get_product_name ()
),
true
);
$table -> data [ 2 ][ 1 ] = html_print_checkbox ( 'safe_mode' , 1 , $safe_mode , true );
$table -> data [ 2 ][ 1 ] .= ' ' . __ ( 'Module' ) . ' ' . html_print_select ( $safe_mode_modules , 'safe_mode_module' , $safe_mode_module , '' , '' , 0 , true );
}
// Remote configuration
$table -> data [ 5 ][ 0 ] = __ ( 'Remote configuration' );
if ( ! $new_agent ) {
$table -> data [ 5 ][ 1 ] = '<em>' . __ ( 'Not available' ) . '</em>' ;
if ( isset ( $filename )) {
if ( file_exists ( $filename [ 'md5' ])) {
$table -> data [ 5 ][ 1 ] = date ( 'F d Y H:i:s' , fileatime ( $filename [ 'md5' ]));
// Delete remote configuration
$table -> data [ 5 ][ 1 ] .= '<a href="index.php?' . 'sec=gagente&' . 'sec2=godmode/agentes/configurar_agente&' . 'tab=main&' . 'disk_conf_delete=1&' . 'id_agente=' . $id_agente . '">' ;
$table -> data [ 5 ][ 1 ] .= html_print_image (
'images/cross.png' ,
true ,
[
'title' => __ ( 'Delete remote configuration file' ),
'style' => 'vertical-align: middle;' ,
]
) . '</a>' ;
$table -> data [ 5 ][ 1 ] .= '</a>' . ui_print_help_tip (
__ ( 'Delete this conf file implies that for restore you must reactive remote config in the local agent.' ),
true
);
}
}
} else {
$table -> data [ 5 ][ 1 ] = '<em>' . __ ( 'Not available' ) . '</em>' ;
}
$cps_array [ - 1 ] = __ ( 'Disabled' );
if ( $cps > 0 ) {
$cps_array [ $cps ] = __ ( 'Enabled' );
} else {
$cps_inc = 0 ;
if ( $id_agente ) {
$cps_inc = service_agents_cps ( $id_agente );
}
$cps_array [ $cps_inc ] = __ ( 'Enabled' );
}
$table -> data [ 6 ][ 0 ] = __ ( 'Cascade protection services' );
$table -> data [ 6 ][ 0 ] .= ui_print_help_tip ( __ ( 'Disable the alerts and events of the elements that belong to this service' ), true );
$table -> data [ 6 ][ 1 ] = html_print_select ( $cps_array , 'cps' , $cps , '' , '' , 0 , true );
2018-08-23 08:28:02 +02:00
}
// Custom ID
$table -> data [ 0 ][ 0 ] = __ ( 'Custom ID' );
2019-01-30 16:18:44 +01:00
$table -> data [ 0 ][ 1 ] = html_print_input_text ( 'custom_id' , $custom_id , '' , 16 , 255 , true );
2018-08-23 08:28:02 +02:00
$table -> data [ 1 ][ 0 ] = __ ( 'Parent' );
2019-01-30 16:18:44 +01:00
$params = [];
2018-08-23 08:28:02 +02:00
$params [ 'return' ] = true ;
$params [ 'show_helptip' ] = true ;
$params [ 'input_name' ] = 'id_parent' ;
$params [ 'print_hidden_input_idagent' ] = true ;
$params [ 'hidden_input_idagent_name' ] = 'id_agent_parent' ;
$params [ 'hidden_input_idagent_value' ] = $id_parent ;
2019-01-30 16:18:44 +01:00
$params [ 'value' ] = db_get_value ( 'alias' , 'tagente' , 'id_agente' , $id_parent );
2018-08-23 08:28:02 +02:00
$params [ 'selectbox_id' ] = 'cascade_protection_module' ;
$params [ 'javascript_is_function_select' ] = true ;
$params [ 'cascade_protection' ] = true ;
$table -> data [ 1 ][ 1 ] = ui_print_agent_autocomplete_input ( $params );
if ( enterprise_installed ()) {
2019-01-30 16:18:44 +01:00
$table -> data [ 1 ][ 1 ] .= html_print_checkbox ( 'cascade_protection' , 1 , $cascade_protection , true ) . __ ( 'Cascade protection' ) . ' ' . ui_print_help_icon ( 'cascade_protection' , true );
2018-08-23 08:28:02 +02:00
}
2019-01-30 16:18:44 +01:00
$table -> data [ 1 ][ 1 ] .= ' ' . __ ( 'Module' ) . ' ' . html_print_select ( $modules_values , 'cascade_protection_module' , $cascade_protection_module , '' , '' , 0 , true );
2018-08-23 08:28:02 +02:00
// Learn mode / Normal mode
2019-01-30 16:18:44 +01:00
$table -> data [ 3 ][ 0 ] = __ ( 'Module definition' ) . ui_print_help_icon ( 'module_definition' , true );
$table -> data [ 3 ][ 1 ] = __ ( 'Learning mode' ) . ' ' . html_print_radio_button_extended (
'modo' ,
1 ,
'' ,
$modo ,
false ,
'show_modules_not_learning_mode_context_help();' ,
'style="margin-right: 40px;"' ,
true
);
$table -> data [ 3 ][ 1 ] .= __ ( 'Normal mode' ) . ' ' . html_print_radio_button_extended (
'modo' ,
0 ,
'' ,
$modo ,
false ,
'show_modules_not_learning_mode_context_help();' ,
'style="margin-right: 40px;"' ,
true
);
$table -> data [ 3 ][ 1 ] .= __ ( 'Autodisable mode' ) . ' ' . html_print_radio_button_extended (
'modo' ,
2 ,
'' ,
$modo ,
false ,
'show_modules_not_learning_mode_context_help();' ,
'style="margin-right: 40px;"' ,
true
);
2018-08-23 08:28:02 +02:00
// Status (Disabled / Enabled)
$table -> data [ 4 ][ 0 ] = __ ( 'Status' );
2019-01-30 16:18:44 +01:00
$table -> data [ 4 ][ 1 ] = __ ( 'Disabled' ) . ' ' . ui_print_help_tip ( __ ( 'If the remote configuration is enabled, it will also go into standby mode when disabling it.' ), true ) . ' ' . html_print_radio_button_extended ( 'disabled' , 1 , '' , $disabled , false , '' , 'style="margin-right: 40px;"' , true );
$table -> data [ 4 ][ 1 ] .= __ ( 'Enabled' ) . ' ' . html_print_radio_button_extended ( 'disabled' , 0 , '' , $disabled , false , '' , 'style="margin-right: 40px;"' , true );
if ( enterprise_installed ()) {
$table -> data [ 4 ][ 2 ] = __ ( 'Url address' ) . ui_print_help_tip ( __ ( 'URL address must be complete, for example: https://pandorafms.com/' ), true );
$table -> data [ 4 ][ 3 ] = html_print_input_text (
'url_description' ,
$url_description ,
'' ,
45 ,
255 ,
true
);
} else {
$table -> data [ 5 ][ 0 ] = __ ( 'Url address' );
$table -> data [ 5 ][ 1 ] = html_print_input_text (
'url_description' ,
$url_description ,
'' ,
45 ,
255 ,
true
);
}
2018-08-23 08:28:02 +02:00
$table -> data [ 5 ][ 2 ] = __ ( 'Quiet' );
$table -> data [ 5 ][ 3 ] .= ui_print_help_tip ( __ ( 'The agent still runs but the alerts and events will be stop' ), true );
$table -> data [ 5 ][ 3 ] = html_print_checkbox ( 'quiet' , 1 , $quiet , true );
2011-04-27 15:43:31 +02:00
$listIcons = gis_get_array_list_icons ();
2010-02-04 10:42:46 +01:00
2019-01-30 16:18:44 +01:00
$arraySelectIcon = [];
foreach ( $listIcons as $index => $value ) {
$arraySelectIcon [ $index ] = $index ;
}
2010-02-04 10:42:46 +01:00
2019-01-30 16:18:44 +01:00
$path = 'images/gis_map/icons/' ;
// TODO set better method the path
$table -> data [ 0 ][ 2 ] = __ ( 'Agent icon' ) . ui_print_help_tip ( __ ( 'Agent icon for GIS Maps.' ), true );
2013-02-27 10:51:48 +01:00
if ( $icon_path == '' ) {
2019-01-30 16:18:44 +01:00
$display_icons = 'none' ;
// Hack to show no icon. Use any given image to fix not found image errors
$path_without = 'images/spinner.png' ;
$path_default = 'images/spinner.png' ;
$path_ok = 'images/spinner.png' ;
$path_bad = 'images/spinner.png' ;
$path_warning = 'images/spinner.png' ;
} else {
$display_icons = '' ;
$path_without = $path . $icon_path . '.default.png' ;
$path_default = $path . $icon_path . '.default.png' ;
$path_ok = $path . $icon_path . '.ok.png' ;
$path_bad = $path . $icon_path . '.bad.png' ;
$path_warning = $path . $icon_path . '.warning.png' ;
2011-07-19 18:24:10 +02:00
}
2011-07-20 09:53:03 +02:00
2019-01-30 16:18:44 +01:00
$table -> data [ 0 ][ 3 ] = html_print_select (
$arraySelectIcon ,
'icon_path' ,
$icon_path ,
'changeIcons();' ,
__ ( 'None' ),
'' ,
true
) . ' ' . html_print_image (
$path_ok ,
true ,
[
'id' => 'icon_ok' ,
'style' => 'display:' . $display_icons . ';' ,
]
) . ' ' . html_print_image (
$path_bad ,
true ,
[
'id' => 'icon_bad' ,
'style' => 'display:' . $display_icons . ';' ,
]
) . ' ' . html_print_image (
$path_warning ,
true ,
[
'id' => 'icon_warning' ,
'style' => 'display:' . $display_icons . ';' ,
]
);
2010-02-04 10:42:46 +01:00
if ( $config [ 'activate_gis' ]) {
2019-01-30 16:18:44 +01:00
$table -> data [ 3 ][ 2 ] = __ ( 'Ignore new GIS data:' );
$table -> data [ 3 ][ 3 ] = __ ( 'Yes' ) . ' ' . html_print_radio_button_extended (
'update_gis_data' ,
0 ,
'' ,
$update_gis_data ,
false ,
'' ,
'style="margin-right: 40px;"' ,
true
);
$table -> data [ 3 ][ 3 ] .= __ ( 'No' ) . ' ' . html_print_radio_button_extended (
'update_gis_data' ,
1 ,
'' ,
$update_gis_data ,
false ,
'' ,
'style="margin-right: 40px;"' ,
true
);
2010-02-04 10:42:46 +01:00
}
2007-05-20 19:12:31 +02:00
2019-04-17 10:35:32 +02:00
echo '<div class="ui_toggle">' ;
ui_toggle ( html_print_table ( $table , true ), __ ( 'Advanced options' ), '' , true , false , 'white_box white_box_opened' );
echo '</div>' ;
2010-08-25 14:04:42 +02:00
unset ( $table );
2015-06-25 10:07:53 +02:00
$table = new stdClass ();
2015-04-10 09:43:44 +02:00
$table -> width = '100%' ;
2019-04-17 09:27:15 +02:00
$table -> class = 'custom_fields_table' ;
2010-08-25 14:04:42 +02:00
2019-01-30 16:18:44 +01:00
$table -> head = [];
$table -> style = [];
2019-04-17 09:27:15 +02:00
$table -> style [ 0 ] = 'font-weight: bold;' ;
2019-01-30 16:18:44 +01:00
$table -> data = [];
2010-08-25 14:04:42 +02:00
* include/functions_graph.php
include/functions_html.php
include/functions_messages.php
include/db/postgresql.php
include/db/mysql.php
include/db/oracle.php
include/functions_reporting.php
include/functions_filemanager.php
include/functions_gis.php
include/auth/ldap.php
include/auth/mysql.php
include/functions_networkmap.php
include/functions_network_components.php
include/ajax/skins.ajax.php
include/ajax/reporting.ajax.php
include/ajax/visual_console_builder.ajax.php
include/ajax/alert_list.ajax.php
include/ajax/module.php
include/functions_config.php
include/functions_api.php
include/help/en/help_timesource.php
include/help/es/help_timesource.php
include/help/ja/help_timesource.php
include/config_process.php
include/functions_ui.php
include/functions_custom_graphs.php
include/fgraph.php
include/functions_incidents.php
include/api.php
include/functions_reports.php
include/functions_ui_renders.php
extensions/insert_data.php
extensions/system_info.php
extensions/extension_uploader.php
extensions/pandora_logs.php
extensions/agents_modules.php
extensions/update_manager.php
extensions/ssh_console.php
extensions/dbmanager.php
extensions/vnc_view.php
extensions/resource_registration.php
extensions/resource_exportation.php
extensions/users_connected.php
extensions/module_groups.php
extensions/update_manager/load_updatemanager.php
extensions/update_manager/lib/libupdate_manager_client.php
extensions/update_manager/lib/libupdate_manager.php
extensions/update_manager/lib/libupdate_manager_components.php
extensions/update_manager/lib/libupdate_manager_updates.php
extensions/update_manager/settings.php
extensions/update_manager/main.php
extensions/plugin_registration.php
operation/incidents/incident.php
operation/incidents/incident_detail.php
operation/incidents/incident_statistics.php
operation/search_modules.php
operation/visual_console/render_view.php
operation/visual_console/index.php
operation/extensions.php
operation/agentes/status_monitor.php
operation/agentes/export_csv.php
operation/agentes/estado_ultimopaquete.php
operation/agentes/datos_agente.php
operation/agentes/alerts_status.php
operation/agentes/estado_generalagente.php
operation/agentes/custom_fields.php
operation/agentes/estado_agente.php
operation/agentes/networkmap.topology.php
operation/agentes/networkmap.groups.php
operation/agentes/sla_view.php
operation/agentes/exportdata.php
operation/agentes/gis_view.php
operation/agentes/estado_monitores.php
operation/agentes/ver_agente.php
operation/agentes/graphs.php
operation/agentes/agent_fields.php
operation/agentes/tactical.php
operation/agentes/group_view.php
operation/agentes/networkmap.php
operation/agentes/stat_win.php
operation/servers/view_server.php
operation/servers/view_server_detail.php
operation/menu.php
operation/search_agents.php
operation/search_graphs.php
operation/snmpconsole/snmp_view.php
operation/users/user_edit.php
operation/gis_maps/render_view.php
operation/gis_maps/ajax.php
operation/integria_incidents/incident.php
operation/integria_incidents/incident_detail.php
operation/integria_incidents/incident_statistics.php
operation/events/event_statistics.php
operation/events/events_rss.php
operation/events/export_csv.php
operation/events/sound_events.php
operation/events/events_validate.php
operation/events/events_list.php
operation/events/events_marquee.php
operation/events/events.php
operation/search_alerts.php
operation/messages/message.php
operation/reporting/reporting_xml.php
operation/reporting/reporting_viewer.php
operation/reporting/graph_viewer.php
operation/search_reports.php
operation/search_maps.php
operation/search_users.php
extras/pandora_diag.php
mobile/operation/agents/monitor_status.php
mobile/operation/agents/view_agents.php
mobile/operation/agents/view_alerts.php
mobile/operation/agents/group_view.php
mobile/operation/events/events.php
mobile/index.php
general/error_authconfig.php
general/links_menu.php
general/logon_ok.php
general/error_dbconfig.php
general/ui/agents_list.php
general/header.php
godmode/groups/modu_group_list.php
godmode/groups/configure_group.php
godmode/groups/configure_modu_group.php
godmode/groups/group_list.php
godmode/admin_access_logs.php
godmode/db/db_main.php
godmode/db/db_audit.php
godmode/db/db_sanity.php
godmode/db/db_refine.php
godmode/db/db_info.php
godmode/db/db_event.php
godmode/db/db_purge.php
godmode/extensions.php
godmode/agentes/agent_template.php
godmode/agentes/module_manager_editor_common.php
godmode/agentes/fields_manager.php
godmode/agentes/agent_conf_gis.php
godmode/agentes/module_manager_editor_prediction.php
godmode/agentes/module_manager.php
godmode/agentes/modificar_agente.php
godmode/agentes/configurar_agente.php
godmode/agentes/configure_field.php
godmode/agentes/module_manager_editor.php
godmode/agentes/planned_downtime.php
godmode/agentes/manage_config_remote.php
godmode/agentes/agent_manager.php
godmode/servers/recon_script.php
godmode/servers/plugin.php
godmode/servers/manage_recontask.php
godmode/servers/modificar_server.php
godmode/servers/manage_recontask_form.php
godmode/alerts/alert_list.list.php
godmode/alerts/configure_alert_compound.php
godmode/alerts/alert_compounds.php
godmode/alerts/alert_list.php
godmode/alerts/configure_alert_template.php
godmode/alerts/alert_templates.php
godmode/alerts/configure_alert_action.php
godmode/alerts/configure_alert_command.php
godmode/alerts/alert_actions.php
godmode/alerts/alert_list.builder.php
godmode/alerts/alert_commands.php
godmode/setup/file_manager.php
godmode/setup/os.list.php
godmode/setup/news.php
godmode/setup/gis_step_2.php
godmode/setup/links.php
godmode/setup/setup.php
godmode/setup/os.php
godmode/setup/performance.php
godmode/setup/setup_auth.php
godmode/setup/gis.php
godmode/setup/os.builder.php
godmode/setup/setup_visuals.php
godmode/snmpconsole/snmp_alert.php
godmode/snmpconsole/snmp_filters.php
godmode/users/user_list.php
godmode/users/configure_profile.php
godmode/gis_maps/configure_gis_map.php
godmode/gis_maps/index.php
godmode/massive/massive_add_alerts.php
godmode/massive/massive_copy_modules.php
godmode/massive/massive_delete_agents.php
godmode/massive/massive_enable_disable_alerts.php
godmode/massive/massive_operations.php
godmode/massive/massive_delete_profiles.php
godmode/massive/massive_edit_agents.php
godmode/massive/massive_delete_action_alerts.php
godmode/massive/massive_delete_modules.php
godmode/massive/massive_add_profiles.php
godmode/massive/massive_delete_alerts.php
godmode/massive/massive_edit_modules.php
godmode/massive/massive_standby_alerts.php
godmode/massive/massive_add_action_alerts.php
godmode/modules/manage_network_components_form.php
godmode/modules/manage_nc_groups_form.php
godmode/modules/manage_network_templates.php
godmode/modules/module_list.php
godmode/modules/manage_network_components_form_common.php
godmode/modules/manage_network_components_form_network.php
godmode/modules/manage_network_templates_form.php
godmode/modules/manage_network_components_form_wmi.php
godmode/modules/manage_network_components.php
godmode/modules/manage_nc_groups.php
godmode/reporting/visual_console_builder.wizard.php
godmode/reporting/graph_builder.main.php
godmode/reporting/reporting_builder.list_items.php
godmode/reporting/visual_console_builder.php
godmode/reporting/reporting_builder.preview.php
godmode/reporting/reporting_builder.main.php
godmode/reporting/visual_console_builder.data.php
godmode/reporting/visual_console_builder.elements.php
godmode/reporting/graph_builder.php
godmode/reporting/visual_console_builder.preview.php
godmode/reporting/graph_builder.graph_editor.php
godmode/reporting/reporting_builder.php
godmode/reporting/visual_console_builder.editor.php
godmode/reporting/reporting_builder.item_editor.php
godmode/reporting/map_builder.php
godmode/reporting/graphs.php
godmode/reporting/graph_builder.preview.php
include/functions_db.php: Added some includes and functions of this code have "db_" prefix.
* include/functions.php: Moved function check_login(), check_acl(),
dame_nombre_pluginid(), get_os_name() from functions_db.php to functions.php.
* include/functions_groups.php: Moved functions get_childrens(), safe_acl_group()
and get_parents(), give_disabled_group(), isAllGroups(), get_group_icon(), get_all_groups(),
get_id_groups_recursive(), get_user_groups_tree_recursive(), get_group_status(),
get_group_name(), get_group_users() from functions_db.php to this code.
* include/functions_profile.php: New library with profile functions. Moved functions
get_profile_name(), get_profiles(), create_user_profile(), delete_user_profile(),
delete_profile() from functions_db.php to this code. Added new parameter in function
get_profile() to retrieve profiles with filter conditions applied.
* include/functions_users.php: New library with users functions. Moved functions
get_users_info(), get_all_model_groups(), get_user_groups(), get_user_groups_tree(),
get_user_first_group(), user_access_to_agent() from funtions_db.php to this code.
* godmode/users/configure_user.php: Changed get_profile_filter() function to get_profile().
* include/functions_agents.php: Moved functions get_group_agents(), get_agent_modules(),
get_agent_module_id(), get_agent_id(), get_agent_name(), get_agent_modules_data_count(),
check_alert_fired(), get_agent_interval(), get_agent_os(), give_agentmodule_flag(),
agent_add_address(), agent_delete_address(), get_agent_address(), get_agent_with_ip(),
get_agent_addresses(), get_agent_status(), delete_agent(), get_agentmodule_group(),
get_agent_group() from functions_db.php to this code.
* include/functions_modules.php: Moved functions get_agentmodule(), get_agentmodule_id(),
get_agentmodule_is_init(), get_agent_modules_count(), get_module_type_name(),
get_module_type_icon(), get_agentmodule_agent(), get_agentmodule_agent_name(),
get_agentmodule_name(), get_agentmodule_type(), get_monitor_downs_in_period(),
get_monitor_last_down_timestamp_in_period(), get_monitors_in_group(),
get_monitors_in_agent(), get_monitors_down(), get_moduletype_name(),
get_moduletype_description(), get_moduletypes(), get_module_interval(), show_icon_type(),
give_modulecategory_name(),
give_agent_id_from_module_id(), get_module_status(), get_agent_module_last_value(),
get_previous_data(), get_agentmodule_modulegroup(), get_modulegroups(),
get_modulegroup_name() from functions_db.php to this code.
* include/functions_alerts.php: Moved functions get_alert_type(), get_agent_alert_fired(),
get_module_alert_fired(), get_alert_fires_in_period(), get_group_alerts(), get_alerts_fired(),
get_alert_last_fire_timestamp_in_period(), get_agentmodule_status(),
get_agentmodule_last_status() from functions_db.php to this code.
* include/functions_exportserver.php: Moved function dame_nombre_servidorexportacion()
from functions_db.php to this code.
* include/functions_events.php: Moved functions get_group_events(), get_agent_events(),
get_module_events() from functions_db.php to this code.
* include/functions_servers.php: Moved functions get_server_name(), show_server_type(),
check_server_status(), server_status() from functions_db.php to this code.
* include/functions_network_profiles.php: Moved function get_networkprofile_name()
from functions_db.php to this code.
* include/functions_visual_map.php: Moved functions get_layoutdata_x(), get_layoutdata_y()
from fucntions_db.php to this code.
* include/functions_io.php: Moved function __() from functions_db.php to this code.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4258 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2011-04-19 20:42:49 +02:00
$fields = db_get_all_fields_in_table ( 'tagent_custom_fields' );
2010-08-25 14:04:42 +02:00
2019-01-30 16:18:44 +01:00
if ( $fields === false ) {
$fields = [];
}
2010-08-25 14:04:42 +02:00
foreach ( $fields as $field ) {
2019-04-17 09:27:15 +02:00
$id_custom_field = $field [ 'id_field' ];
2019-04-17 10:35:32 +02:00
$data [ 0 ] = '<div class="field_title" onclick="show_custom_field_row(' . $id_custom_field . ')">' ;
2019-04-17 09:27:15 +02:00
$data [ 0 ] .= '<b>' . $field [ 'name' ] . '</b>' ;
2019-01-30 16:18:44 +01:00
$data [ 0 ] .= ui_print_help_tip (
__ ( 'This field allows url insertion using the BBCode\'s url tag' ) . '.<br />' . __ ( 'The format is: [url=\'url to navigate\']\'text to show\'[/url]' ) . '.<br /><br />' . __ ( 'e.g.: [url=google.com]Google web search[/url]' ),
true
);
2019-04-17 09:27:15 +02:00
$data [ 0 ] .= '</div>' ;
2019-03-07 13:37:36 +01:00
$combo = [];
$combo = $field [ 'combo_values' ];
$combo = explode ( ',' , $combo );
$combo_values = [];
foreach ( $combo as $value ) {
$combo_values [ $value ] = $value ;
}
2019-01-30 16:18:44 +01:00
$custom_value = db_get_value_filter (
'description' ,
'tagent_custom_data' ,
[
'id_field' => $field [ 'id_field' ],
'id_agent' => $id_agente ,
]
);
if ( $custom_value === false ) {
$custom_value = '' ;
}
if ( $field [ 'is_password_type' ]) {
2019-04-17 09:27:15 +02:00
$data_field [ 1 ] = html_print_input_text_extended (
2019-01-30 16:18:44 +01:00
'customvalue_' . $field [ 'id_field' ],
$custom_value ,
'customvalue_' . $field [ 'id_field' ],
'' ,
30 ,
100 ,
$view_mode ,
'' ,
'' ,
true ,
true
);
} else {
2019-04-17 09:27:15 +02:00
$data_field [ 1 ] = html_print_textarea (
2019-01-30 16:18:44 +01:00
'customvalue_' . $field [ 'id_field' ],
2 ,
65 ,
$custom_value ,
2019-04-17 09:27:15 +02:00
'style="min-height: 30px;"' ,
2019-01-30 16:18:44 +01:00
true
);
}
2019-03-07 13:37:36 +01:00
if ( $field [ 'combo_values' ] !== '' ) {
2019-04-17 09:27:15 +02:00
$data_field [ 1 ] = html_print_select (
2019-03-07 13:37:36 +01:00
$combo_values ,
'customvalue_' . $field [ 'id_field' ],
$custom_value ,
'' ,
__ ( 'None' ),
'' ,
true ,
false ,
false ,
'' ,
false ,
false ,
false ,
false ,
false ,
'' ,
false
);
};
2019-04-17 09:27:15 +02:00
$table -> rowid [] = 'name_field-' . $id_custom_field ;
2019-01-30 16:18:44 +01:00
array_push ( $table -> data , $data );
2019-04-17 09:27:15 +02:00
$table -> rowid [] = 'field-' . $id_custom_field ;
array_push ( $table -> data , $data_field );
2010-08-25 14:04:42 +02:00
}
2013-02-27 10:51:48 +01:00
if ( ! empty ( $fields )) {
2019-04-17 10:35:32 +02:00
echo '<div class="ui_toggle">' ;
ui_toggle ( html_print_table ( $table , true ), __ ( 'Custom fields' ), '' , true , false , 'white_box white_box_opened' );
echo '</div>' ;
2010-08-25 14:04:42 +02:00
}
2008-11-20 15:09:26 +01:00
2019-01-30 16:18:44 +01:00
echo '<div class="action-buttons" style="width: ' . $table -> width . '">' ;
2014-09-22 13:37:23 +02:00
2019-03-07 13:37:36 +01:00
// The context help about the learning mode.
2014-09-22 13:37:23 +02:00
if ( $modo == 0 ) {
2019-01-30 16:18:44 +01:00
echo " <span id='modules_not_learning_mode_context_help' style=''> " ;
} else {
echo " <span id='modules_not_learning_mode_context_help' style='display: none;'> " ;
2014-09-22 13:37:23 +02:00
}
2019-01-30 16:18:44 +01:00
echo clippy_context_help ( 'modules_not_learning_mode' );
echo '</span>' ;
2018-08-28 10:23:25 +02:00
2014-09-22 13:37:23 +02:00
2009-04-13 17:05:21 +02:00
if ( $id_agente ) {
2019-01-30 16:18:44 +01:00
echo '<div class="action-buttons" style="width: ' . $table -> width . '">' ;
html_print_submit_button (
__ ( 'Update' ),
'updbutton' ,
false ,
'class="sub upd"'
);
html_print_input_hidden ( 'update_agent' , 1 );
html_print_input_hidden ( 'id_agente' , $id_agente );
} else {
html_print_submit_button (
__ ( 'Create' ),
'crtbutton' ,
false ,
'class="sub wand"'
);
html_print_input_hidden ( 'create_agent' , 1 );
2007-02-27 20:03:56 +01:00
}
2019-01-30 16:18:44 +01:00
2009-02-24 17:31:02 +01:00
echo '</div></form>' ;
2009-04-13 17:05:21 +02:00
2016-06-08 19:15:43 +02:00
ui_require_jquery_file ( 'pandora.controls' );
ui_require_jquery_file ( 'ajaxqueue' );
ui_require_jquery_file ( 'bgiframe' );
2009-03-04 Sancho Lerena <slerena@artica.es>
* extras/: New directory with extra contents (scripts, tools, samples)
* index.php: Add new permission check for /attachment directory. Probably
could be extended and wrapped into a function. This should be only called
once, this is the reason why is placed here and not in config_process.
* pandora_console_upgrade: Force MYSQL run, even if SQL return error (useful
for applying over a older 3.0 version for example).
* pandoradb_data.sql: Was missing some tconfig variables.
* extras/*.sql: Missing somre tconfig variables and other minor issues fixed
* extensions/update_manager/main.php: Description of update manager patch
wider. Probably needs more formatting in the future.
* extras/sample_login.php: Sample on how to implement autologin feature.
* footer.php: I hope solve the frakkin image problem.
* godmode/agents/agent_manager.php: proper ACL check notice.
* godmode/alerts/alert_list.php: Fixed notice.
* godmode/reporting/map_builder.php: Added link to wizard and item count.
* godmode/reporting/map_builder_wizard.php: Added new feature, a wizard
to populate the visual map, using agents from a combo, depending on the
map selected. Could have a lot of improvements, it's a basic start. Allow
to choose agents and image maps and space between images. Puts in a reticle
automatically adjusting at 600px width.
* godmode/setup.php: Checkbox for trap_forward was bad, fixed.
* config_process.php: Fixed version to 3.0-dev
* functions_html.php: Default of 0 in text boxes makes them unusable on
default values, funny :-)
* include/functions_reporting.php: Fixed a notice on unknown variable
on function get_group_stat().
* operation/agentes/alerts_status.php: Filter on module status is made now
with combos, like the rest of the filters in the GUI.
* operation/events/events.php: a missing div makes graph float outside the
filter box. TODO: Hidder filter makes free-width style buggy here.
* operation/reporting/reporting_viewer.php: Fixed layout issue.
* operation/visual_console/render_view.php: Added ACL check.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1510 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-03-04 18:57:00 +01:00
?>
2016-06-08 19:15:43 +02:00
2009-04-13 17:05:21 +02:00
< script type = " text/javascript " >
2019-04-17 09:27:15 +02:00
// Show/Hide custom field row.
function show_custom_field_row ( id ){
if ( $ ( '#field-' + id ) . css ( 'display' ) == 'none' ){
$ ( '#field-' + id ) . css ( 'display' , 'table-row' );
$ ( '#name_field-' + id ) . addClass ( 'custom_field_row_opened' );
}
else {
$ ( '#field-' + id ) . css ( 'display' , 'none' );
$ ( '#name_field-' + id ) . removeClass ( 'custom_field_row_opened' );
}
}
2019-01-30 16:18:44 +01:00
//Use this function for change 3 icons when change the selectbox
function changeIcons () {
var icon = $ ( " #icon_path :selected " ) . val ();
$ ( " #icon_without_status " ) . attr ( " src " , " images/spinner.png " );
$ ( " #icon_default " ) . attr ( " src " , " images/spinner.png " );
$ ( " #icon_ok " ) . attr ( " src " , " images/spinner.png " );
$ ( " #icon_bad " ) . attr ( " src " , " images/spinner.png " );
$ ( " #icon_warning " ) . attr ( " src " , " images/spinner.png " );
if ( icon . length == 0 ) {
$ ( " #icon_without_status " ) . attr ( " style " , " display:none; " );
$ ( " #icon_default " ) . attr ( " style " , " display:none; " );
$ ( " #icon_ok " ) . attr ( " style " , " display:none; " );
$ ( " #icon_bad " ) . attr ( " style " , " display:none; " );
$ ( " #icon_warning " ) . attr ( " style " , " display:none; " );
}
else {
$ ( " #icon_without_status " ) . attr ( " src " ,
" <?php echo $path ; ?> " + icon + " .default.png " );
$ ( " #icon_default " ) . attr ( " src " ,
" <?php echo $path ; ?> " + icon + " .default.png " );
$ ( " #icon_ok " ) . attr ( " src " ,
" <?php echo $path ; ?> " + icon + " .ok.png " );
$ ( " #icon_bad " ) . attr ( " src " ,
" <?php echo $path ; ?> " + icon + " .bad.png " );
$ ( " #icon_warning " ) . attr ( " src " ,
" <?php echo $path ; ?> " + icon + " .warning.png " );
$ ( " #icon_without_status " ) . attr ( " style " , " " );
$ ( " #icon_default " ) . attr ( " style " , " " );
$ ( " #icon_ok " ) . attr ( " style " , " " );
$ ( " #icon_bad " ) . attr ( " style " , " " );
$ ( " #icon_warning " ) . attr ( " style " , " " );
}
}
function show_modules_not_learning_mode_context_help () {
if ( $ ( " input[name='modo'][value=0] " ) . is ( ':checked' )) {
$ ( " #modules_not_learning_mode_context_help " ) . show ();
}
else {
$ ( " #modules_not_learning_mode_context_help " ) . hide ();
}
}
function agent_manager_add_secondary_groups ( event , id_agent ) {
event . preventDefault ();
var primary_value = $ ( " #grupo " ) . val ()
// The selected primary value cannot be selected like secondary
if ( $ ( " #secondary_groups option:selected[value= " + primary_value + " ] " ) . length > 0 ) {
alert ( " <?php echo __('Primary group cannot be secondary too.'); ?> " )
return
}
// On agent creation PHP will update the secondary groups table (not via AJAX)
if ( id_agent == 0 ) {
agent_manager_add_secondary_groups_ui ();
agent_manager_update_hidden_input_secondary ();
return ;
}
var selected_items = new Array ();
$ ( " #secondary_groups option:selected " ) . each ( function (){
selected_items . push ( $ ( this ) . val ())
})
var data = {
page : " godmode/agentes/agent_manager " ,
id_agent : id_agent ,
groups : selected_items ,
add_secondary_groups : 1 ,
}
// Make the AJAX call to update the secondary groups
$ . ajax ({
type : " POST " ,
url : " ajax.php " ,
dataType : " html " ,
data : data ,
success : function ( data ) {
if ( data == 1 ) {
agent_manager_add_secondary_groups_ui ();
} else {
console . error ( " Error in AJAX call to add secondary groups " )
}
},
error : function ( data ) {
console . error ( " Fatal error in AJAX call to add secondary groups " )
}
});
}
function agent_manager_remove_secondary_groups ( event , id_agent ) {
event . preventDefault ();
// On agent creation PHP will update the secondary groups table (not via AJAX)
if ( id_agent == 0 ) {
agent_manager_remove_secondary_groups_ui ();
agent_manager_update_hidden_input_secondary ();
return ;
}
var selected_items = new Array ();
$ ( " #secondary_groups_selected option:selected " ) . each ( function (){
selected_items . push ( $ ( this ) . val ())
})
var data = {
page : " godmode/agentes/agent_manager " ,
id_agent : id_agent ,
groups : selected_items ,
remove_secondary_groups : 1 ,
}
// Make the AJAX call to update the secondary groups
$ . ajax ({
type : " POST " ,
url : " ajax.php " ,
dataType : " html " ,
data : data ,
success : function ( data ) {
if ( data == 1 ) {
agent_manager_remove_secondary_groups_ui ();
} else {
console . error ( " Error in AJAX call to add secondary groups " )
}
},
error : function ( data ) {
console . error ( " Fatal error in AJAX call to add secondary groups " )
}
});
}
// Move from left input to right input
function agent_manager_add_secondary_groups_ui () {
$ ( " #secondary_groups_selected option[value=0] " ) . remove ()
$ ( " #secondary_groups option:selected " ) . each ( function () {
$ ( this ) . remove () . appendTo ( " #secondary_groups_selected " )
})
}
// Move from right input to left input
function agent_manager_remove_secondary_groups_ui () {
// Remove the groups selected if success
$ ( " #secondary_groups_selected option:selected " ) . each ( function (){
$ ( this ) . remove () . appendTo ( " #secondary_groups " )
})
// Add none if empty select
if ( $ ( " #secondary_groups_selected option " ) . length == 0 ) {
$ ( " #secondary_groups_selected " ) . append ( $ ( '<option>' ,{
value : 0 ,
text : " <?php echo __('None'); ?> "
}))
}
}
function agent_manager_update_hidden_input_secondary () {
var groups = [];
if ( ! $ ( 'form[name="conf_agent"] #secondary_hidden' ) . length ) {
$ ( 'form[name="conf_agent"]' ) . append (
'<input name="secondary_hidden" type="hidden" id="secondary_hidden">'
);
}
var groups = new Array ();
$ ( " #secondary_groups_selected option " ) . each ( function () {
groups . push ( $ ( this ) . val ())
})
$ ( " #secondary_hidden " ) . val ( groups . join ( ',' ));
}
$ ( document ) . ready ( function () {
$ ( " select#id_os " ) . pandoraSelectOS ();
var checked = $ ( " #checkbox-cascade_protection " ) . is ( " :checked " );
if ( checked ) {
$ ( " #cascade_protection_module " ) . removeAttr ( " disabled " );
}
else {
$ ( " #cascade_protection_module " ) . attr ( " disabled " , 'disabled' );
}
$ ( " #checkbox-cascade_protection " ) . change ( function () {
var checked = $ ( " #checkbox-cascade_protection " ) . is ( " :checked " );
if ( checked ) {
$ ( " #cascade_protection_module " ) . removeAttr ( " disabled " );
}
else {
$ ( " #cascade_protection_module " ) . val ( 0 );
$ ( " #cascade_protection_module " ) . attr ( " disabled " , 'disabled' );
}
});
var safe_mode_checked = $ ( " #checkbox-safe_mode " ) . is ( " :checked " );
if ( safe_mode_checked ) {
$ ( " #safe_mode_module " ) . removeAttr ( " disabled " );
}
else {
$ ( " #safe_mode_module " ) . attr ( " disabled " , 'disabled' );
}
$ ( " #checkbox-safe_mode " ) . change ( function () {
var safe_mode_checked = $ ( " #checkbox-safe_mode " ) . is ( " :checked " );
if ( safe_mode_checked ) {
$ ( " #safe_mode_module " ) . removeAttr ( " disabled " );
}
else {
$ ( " #safe_mode_module " ) . val ( 0 );
$ ( " #safe_mode_module " ) . attr ( " disabled " , 'disabled' );
}
});
paint_qrcode (
2019-02-01 09:55:29 +01:00
" <?php echo ui_get_full_url('mobile/index.php?page=agent&id='. $id_agente ); ?> " ,
" #qr_code_agent_view " ,
128 ,
128
);
2019-01-30 16:18:44 +01:00
$ ( " #text-agente " ) . prop ( 'disabled' , true );
});
2013-03-01 12:13:58 +01:00
</ script >