Merge remote-tracking branch 'origin/develop' into ent-8161-deshabilitar-reglas-de-autoconfiguracion-en-nodos-a-demanda

Conflicts:
	pandora_console/extras/mr/52.sql
	pandora_console/pandoradb.sql
This commit is contained in:
fbsanchez 2022-02-10 18:52:51 +01:00
commit 9ba2eb0c74
377 changed files with 61995 additions and 27506 deletions

View File

@ -82,10 +82,10 @@ execute_cmd "[ $PANDORA_SERVER_IP ]" 'Check Server IP Address' 'Please define e
# Check OS.
OS=$([[ $(grep '^ID_LIKE=' /etc/os-release) ]] && grep ^ID_LIKE= /etc/os-release | cut -d '=' -f2 | tr -d '"' || grep ^ID= /etc/os-release | cut -d '=' -f2 | tr -d '"')
[[ $OS == 'rhel fedora' ]] && OS_RELEASE=$OS
[[ $OS == 'fedora' ]] && OS_RELEASE=$OS
[[ $OS == 'centos rhel fedora' ]] && OS_RELEASE=$OS
[[ $OS == 'debian' ]] && OS_RELEASE=$OS
[[ $OS =~ 'rhel' ]] && OS_RELEASE=$OS
[[ $OS =~ 'debian' ]] && OS_RELEASE=$OS
#[[ $OS == 'rhel fedora' ]] && OS_RELEASE=$OS
#[[ $OS == 'centos rhel fedora' ]] && OS_RELEASE=$OS
# initialice logfile
execute_cmd "echo 'Starting community deployment' > $LOGFILE" "All installer activity is logged on $LOGFILE"
@ -113,7 +113,7 @@ execute_cmd "cd $HOME/pandora_deploy_tmp" "Moving to workspace: $HOME/pandora_d
# Downloading and installing packages
if [[ $OS_RELEASE == 'rhel fedora' ]] || [[ $OS_RELEASE == 'centos rhel fedora' ]]; then
if [[ $OS_RELEASE =~ 'rhel' ]]; then
yum install -y perl wget curl perl-Sys-Syslog unzip &>> $LOGFILE
echo -e "${cyan}Instaling agent dependencies...${reset}" ${green}OK${reset}

View File

@ -1,5 +1,5 @@
package: pandorafms-agent-unix
Version: 7.0NG.759-220207
Version: 7.0NG.759-220210
Architecture: all
Priority: optional
Section: admin

View File

@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
pandora_version="7.0NG.759-220207"
pandora_version="7.0NG.759-220210"
echo "Test if you has the tools for to make the packages."
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null

View File

@ -1015,7 +1015,7 @@ my $Sem = undef;
my $ThreadSem = undef;
use constant AGENT_VERSION => '7.0NG.759';
use constant AGENT_BUILD => '220207';
use constant AGENT_BUILD => '220210';
# Agent log default file size maximum and instances
use constant DEFAULT_MAX_LOG_SIZE => 600000;

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_agent_unix
%define version 7.0NG.759
%define release 220207
%define release 220210
Summary: Pandora FMS Linux agent, PERL version
Name: %{name}

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_agent_unix
%define version 7.0NG.759
%define release 220207
%define release 220210
Summary: Pandora FMS Linux agent, PERL version
Name: %{name}

View File

@ -10,7 +10,7 @@
# **********************************************************************
PI_VERSION="7.0NG.759"
PI_BUILD="220207"
PI_BUILD="220210"
OS_NAME=`uname -s`
FORCE=0

View File

@ -186,7 +186,7 @@ UpgradeApplicationID
{}
Version
{220207}
{220210}
ViewReadme
{Yes}

View File

@ -30,7 +30,7 @@ using namespace Pandora;
using namespace Pandora_Strutils;
#define PATH_SIZE _MAX_PATH+1
#define PANDORA_VERSION ("7.0NG.759 Build 220207")
#define PANDORA_VERSION ("7.0NG.759 Build 220210")
string pandora_path;
string pandora_dir;

View File

@ -11,7 +11,7 @@ BEGIN
VALUE "LegalCopyright", "Artica ST"
VALUE "OriginalFilename", "PandoraAgent.exe"
VALUE "ProductName", "Pandora FMS Windows Agent"
VALUE "ProductVersion", "(7.0NG.759(Build 220207))"
VALUE "ProductVersion", "(7.0NG.759(Build 220210))"
VALUE "FileVersion", "1.0.0.0"
END
END

View File

@ -1,5 +1,5 @@
package: pandorafms-console
Version: 7.0NG.759-220207
Version: 7.0NG.759-220210
Architecture: all
Priority: optional
Section: admin

View File

@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
pandora_version="7.0NG.759-220207"
pandora_version="7.0NG.759-220210"
package_pear=0
package_pandora=1

View File

@ -89,7 +89,11 @@ if (isset($_GET['loginhash']) === true) {
$config['id_user'] = $loginhash_user;
} else {
include_once 'general/login_page.php';
db_pandora_audit('Logon Failed (loginhash', '', 'system');
db_pandora_audit(
AUDIT_LOG_USER_REGISTRATION,
'Loginhash failed',
'system'
);
while (ob_get_length() > 0) {
ob_end_flush();
}
@ -111,8 +115,8 @@ if (class_exists($auth_class) === false || $public_hash === false) {
} else {
if ($auth_class::validatePublicHash($public_hash) === false) {
db_pandora_audit(
'Invalid public hash',
'Trying to access public dashboard'
AUDIT_LOG_USER_REGISTRATION,
'Trying to access public dashboard (Invalid public hash)'
);
include 'general/noaccess.php';
exit;

View File

@ -284,7 +284,7 @@ function mainAgentsModules()
// ACL Check.
if (! check_acl($config['id_user'], 0, 'AR')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Agent view (Grouped)'
);
include 'general/noaccess.php';
@ -304,7 +304,10 @@ function mainAgentsModules()
db_process_sql_update('tagente_modulo', ['flag' => 1], $where);
} else {
db_pandora_audit('ACL Violation', 'Trying to set flag for groups');
db_pandora_audit(
AUDIT_LOG_ACL_VIOLATION,
'Trying to set flag for groups'
);
include 'general/noaccess.php';
exit;
}

View File

@ -63,7 +63,7 @@ function extension_api_checker()
if (! check_acl($config['id_user'], 0, 'PM')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Profile Management'
);
include 'general/noaccess.php';

View File

@ -32,7 +32,7 @@ function extension_db_status()
if (!is_user_admin($config['id_user'])) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access db status'
);
include 'general/noaccess.php';

View File

@ -89,7 +89,10 @@ function dbmgr_extension_main()
global $config;
if (!is_user_admin($config['id_user'])) {
db_pandora_audit('ACL Violation', 'Trying to access Setup Management');
db_pandora_audit(
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Setup Management'
);
include 'general/noaccess.php';
return;
}
@ -143,7 +146,13 @@ function dbmgr_extension_main()
echo '<strong>An error has occured when querying the database.</strong><br />';
echo $error;
db_pandora_audit('DB Interface Extension', 'Error in SQL', false, false, $sql);
db_pandora_audit(
AUDIT_LOG_SYSTEM,
'DB Interface Extension. Error in SQL',
false,
false,
$sql
);
return;
}
@ -151,7 +160,13 @@ function dbmgr_extension_main()
if (! is_array($result)) {
echo '<strong>Output: <strong>'.$result;
db_pandora_audit('DB Interface Extension', 'SQL', false, false, $sql);
db_pandora_audit(
AUDIT_LOG_SYSTEM,
'DB Interface Extension. SQL',
false,
false,
$sql
);
return;
}

View File

@ -16,7 +16,10 @@ function load_matrix_console()
global $config;
if (! check_acl($config['id_user'], 0, 'ER')) {
db_pandora_audit('ACL Violation', 'Trying to access event viewer');
db_pandora_audit(
AUDIT_LOG_ACL_VIOLATION,
'Trying to access event viewer'
);
include 'general/noaccess.php';
return;
}

View File

@ -17,7 +17,7 @@ function extension_uploader_extensions()
if (!check_acl($config['id_user'], 0, 'PM')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Group Management'
);
include 'general/noaccess.php';
@ -61,7 +61,10 @@ function extension_uploader_extensions()
}
if ($result) {
db_pandora_audit('Extension manager', 'Upload extension '.$_FILES['extension']['name']);
db_pandora_audit(
AUDIT_LOG_EXTENSION_MANAGER,
'Upload extension '.$_FILES['extension']['name']
);
}
ui_print_result_message(

View File

@ -106,7 +106,10 @@ function pandora_files_repo_godmode()
// ACL Check
check_login();
if (! check_acl($config['id_user'], 0, 'PM')) {
db_pandora_audit('ACL Violation', 'Trying to access to Files repository');
db_pandora_audit(
AUDIT_LOG_ACL_VIOLATION,
'Trying to access to Files repository'
);
include 'general/noaccess.php';
return;
}

View File

@ -58,7 +58,10 @@ function mainInsertData()
ui_print_page_header(__('Insert data'), 'images/extensions.png', false, '', true, '');
if (! check_acl($config['id_user'], 0, 'AW') && ! is_user_admin($config['id_user'])) {
db_pandora_audit('ACL Violation', 'Trying to access Setup Management');
db_pandora_audit(
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Setup Management'
);
include 'general/noaccess.php';
return;
}

View File

@ -15,7 +15,10 @@ global $config;
if (is_ajax()) {
if (! check_acl($config['id_user'], 0, 'ER')) {
db_pandora_audit('ACL Violation', 'Trying to access event viewer');
db_pandora_audit(
AUDIT_LOG_ACL_VIOLATION,
'Trying to access event viewer'
);
return;
}

View File

@ -33,7 +33,7 @@ check_login();
// ACL Check.
if (!check_acl($config['id_user'], 0, 'AR')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Module Groups view'
);
include 'general/noaccess.php';

View File

@ -56,7 +56,10 @@ function pandoralogs_extension_main()
global $config;
if (! check_acl($config['id_user'], 0, 'PM') && ! is_user_admin($config['id_user'])) {
db_pandora_audit('ACL Violation', 'Trying to access Setup Management');
db_pandora_audit(
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Setup Management'
);
include 'general/noaccess.php';
return;
}

View File

@ -46,7 +46,7 @@ function quickShell()
if (check_acl($config['id_user'], 0, 'PM') === false) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Profile Management'
);
include 'general/noaccess.php';

View File

@ -29,7 +29,10 @@ if (isset($_GET['get_ptr'])) {
if (! check_acl($config['id_user'], 0, 'PM') && ! is_user_admin($config['id_user'])) {
db_pandora_audit('ACL Violation', 'Trying to access Setup Management');
db_pandora_audit(
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Setup Management'
);
include 'general/noaccess.php';
return;
}
@ -404,7 +407,10 @@ function resource_exportation_extension_main()
check_login();
if (! check_acl($config['id_user'], 0, 'PM') && ! is_user_admin($config['id_user'])) {
db_pandora_audit('ACL Violation', 'Trying to access Setup Management');
db_pandora_audit(
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Setup Management'
);
include 'general/noaccess.php';
return;
}

View File

@ -143,14 +143,14 @@ function process_upload_xml_report($xml, $group_filter=0)
if ($id_report) {
db_pandora_audit(
'Report management',
AUDIT_LOG_REPORT_MANAGEMENT,
'Create report '.$id_report,
false,
false
);
} else {
db_pandora_audit(
'Report management',
AUDIT_LOG_REPORT_MANAGEMENT,
'Fail to create report',
false,
false
@ -554,7 +554,11 @@ function process_upload_xml_visualmap($xml, $filter_group=0)
);
if ($id_visual_map !== false) {
db_pandora_audit('CREATE VISUAL CONSOLE', $id_visual_map, $config['id_user']);
db_pandora_audit(
AUDIT_LOG_VISUAL_CONSOLE_MANAGEMENT,
sprintf('Create Visual Console #%s', $id_visual_map),
$config['id_user']
);
} else {
break;
}
@ -716,7 +720,11 @@ function process_upload_xml_visualmap($xml, $filter_group=0)
);
if ($id_item !== false) {
db_pandora_audit('CREATE ITEM VISUAL CONSOLE', $values['id_layout'].' - '.$id_item, $config['id_user']);
db_pandora_audit(
AUDIT_LOG_VISUAL_CONSOLE_MANAGEMENT,
sprintf('Create Item %s in Visual Console #%s', $id_item, $values['id_layout']),
$config['id_user']
);
}
} else {
foreach ($agents_in_item as $id => $agent) {
@ -725,7 +733,7 @@ function process_upload_xml_visualmap($xml, $filter_group=0)
$id_item = db_process_sql_insert('tlayout_data', $values);
if (isset($item->other_id)) {
if (isset($item->other_id) === true) {
$relation_other_ids[(string) $item->other_id] = $id_item;
}
@ -736,9 +744,14 @@ function process_upload_xml_visualmap($xml, $filter_group=0)
);
if ($id_item !== false) {
db_pandora_audit('CREATE ITEM VISUAL CONSOLE', $values['id_layout'].' - '.$id_item, $config['id_user']);
db_pandora_audit(
AUDIT_LOG_VISUAL_CONSOLE_MANAGEMENT,
sprintf('Create Item %s in Visual Console #%s', $id_item, $values['id_layout']),
$config['id_user']
);
}
} else {
// TODO: Review this else.
foreach ($agent['modules'] as $id_module => $module) {
$values['id_agent'] = $id;
$values['id_agente_modulo'] = $id_module;
@ -752,7 +765,11 @@ function process_upload_xml_visualmap($xml, $filter_group=0)
);
if ($id_item !== false) {
db_pandora_audit('CREATE ITEM VISUAL CONSOLE', $values['id_layout'].' - '.$id_item, $config['id_user']);
db_pandora_audit(
AUDIT_LOG_VISUAL_CONSOLE_MANAGEMENT,
sprintf('Create Item %s in Visual Console #%s', $id_item, $values['id_layout']),
$config['id_user']
);
}
}
}
@ -1063,7 +1080,10 @@ function resource_registration_extension_main()
global $config;
if (! check_acl($config['id_user'], 0, 'PM') && ! is_user_admin($config['id_user'])) {
db_pandora_audit('ACL Violation', 'Trying to access Setup Management');
db_pandora_audit(
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Setup Management'
);
include 'general/noaccess.php';
return;
}

View File

@ -117,4 +117,6 @@ mobile/include/style/jquery.mobile-1.3.1.css
godmode/alerts/configure_alert_special_days.php
godmode/admin_access_logs.php
enterprise/extensions/backup/main.php
enterprise/extensions/backup.php
enterprise/extensions/backup.php
mobile/include/javascript/jquery.mobile-1.4.5.js
mobile/include/style/jquery.mobile-1.4.5.css

View File

@ -3,6 +3,17 @@ ALTER TABLE `tpolicy_queue` MODIFY COLUMN `progress` int(10) NOT NULL default '0
CREATE INDEX `IDX_tservice_element` ON `tservice_element`(`id_service`,`id_agente_modulo`);
ALTER TABLE tevent_response ADD COLUMN display_command tinyint(1) default 0;
ALTER TABLE `talert_templates` ADD COLUMN `schedule` TEXT;
ALTER TABLE `tevent_alert` ADD COLUMN `schedule` TEXT;
SOURCE procedures/alertTemplates.sql;
CALL `migrateRanges`();
DROP PROCEDURE `migrateRanges`;
SOURCE procedures/alertEvents.sql;
CALL `migrateEventRanges`();
DROP PROCEDURE `migrateEventRanges`;
ALTER TABLE `tautoconfig` ADD COLUMN `disabled` TINYINT DEFAULT 0;
COMMIT;
COMMIT;

View File

@ -0,0 +1,40 @@
CREATE PROCEDURE migrateEventRanges()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE i INT;
DECLARE r TEXT;
DECLARE cur1 CURSOR FOR SELECT `id` FROM `tevent_alert`;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
UPDATE `tevent_alert` SET `schedule` = '{"monday":_1_,"tuesday":_2_,"wednesday":_3_,"thursday":_4_,"friday":_5_,"saturday":_6_,"sunday":_7_}';
UPDATE `tevent_alert` SET `time_from` = "00:00:00", `time_to` = "00:00:00" WHERE `time_from` = `time_to`;
OPEN cur1;
read_loop: LOOP
FETCH cur1 INTO i;
IF done THEN
LEAVE read_loop;
END IF;
SELECT concat('[{"start":"', `time_from`, '","end":"', `time_to`, '"}]') into r FROM `tevent_alert` WHERE `id` = i;
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_1_", r) WHERE `monday` > 0 AND `id` = i;
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_2_", r) WHERE `tuesday` > 0 AND `id` = i;
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_3_", r) WHERE `wednesday` > 0 AND `id` = i;
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_4_", r) WHERE `thursday` > 0 AND `id` = i;
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_5_", r) WHERE `friday` > 0 AND `id` = i;
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_6_", r) WHERE `saturday` > 0 AND `id` = i;
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_7_", r) WHERE `sunday` > 0 AND `id` = i;
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_1_", '""') WHERE `monday` = 0 AND `id` = i;
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_2_", '""') WHERE `tuesday` = 0 AND `id` = i;
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_3_", '""') WHERE `wednesday` = 0 AND `id` = i;
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_4_", '""') WHERE `thursday` = 0 AND `id` = i;
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_5_", '""') WHERE `friday` = 0 AND `id` = i;
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_6_", '""') WHERE `saturday` = 0 AND `id` = i;
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_7_", '""') WHERE `sunday` = 0 AND `id` = i;
END LOOP;
CLOSE cur1;
END ;

View File

@ -0,0 +1,40 @@
CREATE PROCEDURE migrateRanges()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE i INT;
DECLARE r TEXT;
DECLARE cur1 CURSOR FOR SELECT `id` FROM `talert_templates`;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
UPDATE `talert_templates` SET `schedule` = '{"monday":_1_,"tuesday":_2_,"wednesday":_3_,"thursday":_4_,"friday":_5_,"saturday":_6_,"sunday":_7_}';
UPDATE `talert_templates` SET `time_from` = "00:00:00", `time_to` = "00:00:00" WHERE `time_from` = `time_to`;
OPEN cur1;
read_loop: LOOP
FETCH cur1 INTO i;
IF done THEN
LEAVE read_loop;
END IF;
SELECT concat('[{"start":"', `time_from`, '","end":"', `time_to`, '"}]') into r FROM `talert_templates` WHERE `id` = i;
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_1_", r) WHERE `monday` > 0 AND `id` = i;
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_2_", r) WHERE `tuesday` > 0 AND `id` = i;
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_3_", r) WHERE `wednesday` > 0 AND `id` = i;
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_4_", r) WHERE `thursday` > 0 AND `id` = i;
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_5_", r) WHERE `friday` > 0 AND `id` = i;
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_6_", r) WHERE `saturday` > 0 AND `id` = i;
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_7_", r) WHERE `sunday` > 0 AND `id` = i;
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_1_", '""') WHERE `monday` = 0 AND `id` = i;
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_2_", '""') WHERE `tuesday` = 0 AND `id` = i;
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_3_", '""') WHERE `wednesday` = 0 AND `id` = i;
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_4_", '""') WHERE `thursday` = 0 AND `id` = i;
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_5_", '""') WHERE `friday` = 0 AND `id` = i;
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_6_", '""') WHERE `saturday` = 0 AND `id` = i;
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_7_", '""') WHERE `sunday` = 0 AND `id` = i;
END LOOP;
CLOSE cur1;
END ;

View File

@ -715,6 +715,7 @@ ALTER TABLE `tevent_alert` ADD COLUMN `id_template_conditions` int(10) unsigned
ALTER TABLE `tevent_alert` ADD COLUMN `id_template_fields` int(10) unsigned NOT NULL default 0;
ALTER TABLE `tevent_alert` ADD COLUMN `last_evaluation` bigint(20) NOT NULL default 0;
ALTER TABLE `tevent_alert` ADD COLUMN `pool_occurrences` int unsigned not null default 0;
ALTER TABLE `tevent_alert` ADD COLUMN `schedule` TEXT;
-- -----------------------------------------------------
-- Table `tevent_alert_action`
@ -1317,6 +1318,7 @@ ALTER TABLE talert_templates ADD COLUMN `field18_recovery` TEXT NOT NULL DEFAULT
ALTER TABLE talert_templates ADD COLUMN `field19_recovery` TEXT NOT NULL DEFAULT "";
ALTER TABLE talert_templates ADD COLUMN `field20_recovery` TEXT NOT NULL DEFAULT "";
ALTER TABLE `talert_templates` ADD COLUMN `disable_event` tinyint(1) DEFAULT 0;
ALTER TABLE `talert_templates` ADD COLUMN `schedule` TEXT;
-- ---------------------------------------------------------------------
-- Table `talert_snmp`
@ -1451,13 +1453,13 @@ ALTER TABLE `ttag` MODIFY COLUMN `name` text NOT NULL default '';
INSERT INTO `tconfig` (`token`, `value`) VALUES ('big_operation_step_datos_purge', '100');
INSERT INTO `tconfig` (`token`, `value`) VALUES ('small_operation_step_datos_purge', '1000');
INSERT INTO `tconfig` (`token`, `value`) VALUES ('days_autodisable_deletion', '30');
INSERT INTO `tconfig` (`token`, `value`) VALUES ('MR', 51);
INSERT INTO `tconfig` (`token`, `value`) VALUES ('MR', 52);
INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_docs_logo', 'default_docs.png');
INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_support_logo', 'default_support.png');
INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_logo_white_bg_preview', 'pandora_logo_head_white_bg.png');
UPDATE tconfig SET value = 'https://licensing.artica.es/pandoraupdate7/server.php' WHERE token='url_update_manager';
DELETE FROM `tconfig` WHERE `token` = 'current_package_enterprise';
INSERT INTO `tconfig` (`token`, `value`) VALUES ('current_package', 759);
INSERT INTO `tconfig` (`token`, `value`) VALUES ('current_package', 760);
INSERT INTO `tconfig` (`token`, `value`) VALUES ('status_monitor_fields', 'policy,agent,data_type,module_name,server_type,interval,status,graph,warn,data,timestamp');
UPDATE `tconfig` SET `value` = 'mini_severity,evento,id_agente,estado,timestamp' WHERE `token` LIKE 'event_fields';
DELETE FROM `tconfig` WHERE `token` LIKE 'integria_api_password';

View File

@ -26,7 +26,7 @@ check_login();
if (! check_acl($config['id_user'], 0, 'PM')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access HA cluster'
);
include 'general/noaccess.php';

View File

@ -17,7 +17,7 @@ check_login();
if (! check_acl($config['id_user'], 0, 'AR') && ! check_acl($config['id_user'], 0, 'AW')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Inventory'
);
include 'general/noaccess.php';

View File

@ -27,7 +27,7 @@ $group = $id_grupo;
if (! check_acl($config['id_user'], $group, 'AW', $id_agente)) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access agent manager'
);
include 'general/noaccess.php';

View File

@ -154,7 +154,10 @@ ui_require_javascript_file('openlayers.pandora');
$new_agent = (empty($id_agente)) ? true : false;
if (! isset($id_agente) && ! $new_agent) {
db_pandora_audit('ACL Violation', 'Trying to access agent manager witout an agent');
db_pandora_audit(
AUDIT_LOG_ACL_VIOLATION,
'Trying to access agent manager witout an agent'
);
include 'general/noaccess.php';
return;
}

View File

@ -70,7 +70,7 @@ if (!check_acl_one_of_groups($config['id_user'], $all_groups, 'AW')) {
if (!$access_granted) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access agent manager'
);
include 'general/noaccess.php';
@ -198,7 +198,10 @@ if ($create_agent) {
$grupo = (int) get_parameter_post('grupo');
if ((bool) check_acl($config['id_user'], $grupo, 'AW') === false) {
db_pandora_audit('ACL Violation', 'Trying to access agent manager');
db_pandora_audit(
AUDIT_LOG_ACL_VIOLATION,
'Trying to access agent manager'
);
include $config['homedir'].'/general/noaccess.php';
return;
}
@ -352,7 +355,7 @@ if ($create_agent) {
$unsafe_alias = io_safe_output($alias);
db_pandora_audit(
'Agent management',
AUDIT_LOG_AGENT_MANAGEMENT,
'Created agent '.$unsafe_alias,
false,
true,
@ -1243,7 +1246,7 @@ if ($update_agent) {
ui_print_success_message(__('Successfully updated'));
db_pandora_audit(
'Agent management',
AUDIT_LOG_AGENT_MANAGEMENT,
'Updated agent '.io_safe_output($alias),
false,
false,
@ -1259,7 +1262,10 @@ if ($id_agente) {
// This has been done in the beginning of the page, but if an agent was created, this id might change.
$id_grupo = agents_get_agent_group($id_agente);
if (!check_acl_one_of_groups($config['id_user'], $all_groups, 'AW') && !check_acl_one_of_groups($config['id_user'], $all_groups, 'AD')) {
db_pandora_audit('ACL Violation', 'Trying to admin an agent without access');
db_pandora_audit(
AUDIT_LOG_ACL_VIOLATION,
'Trying to admin an agent without access'
);
include 'general/noaccess.php';
exit;
}
@ -1319,7 +1325,7 @@ if ($update_module || $create_module) {
if (! check_acl_one_of_groups($config['id_user'], $all_groups, 'AW')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to create a module without admin rights'
);
include 'general/noaccess.php';
@ -1803,7 +1809,7 @@ if ($update_module) {
$edit_module = true;
db_pandora_audit(
'Agent management',
AUDIT_LOG_AGENT_MANAGEMENT,
"Fail to try update module '".io_safe_output($name)."' for agent ".io_safe_output($agent['alias'])
);
} else {
@ -1827,7 +1833,7 @@ if ($update_module) {
$agent = db_get_row('tagente', 'id_agente', $id_agente);
db_pandora_audit(
'Agent management',
AUDIT_LOG_AGENT_MANAGEMENT,
"Updated module '".io_safe_output($name)."' for agent ".io_safe_output($agent['alias']),
false,
false,
@ -1989,7 +1995,7 @@ if ($create_module) {
$edit_module = true;
$moduletype = $id_module;
db_pandora_audit(
'Agent management',
AUDIT_LOG_AGENT_MANAGEMENT,
"Fail to try added module '".io_safe_output($name)."' for agent ".io_safe_output($agent['alias'])
);
} else {
@ -2014,7 +2020,7 @@ if ($create_module) {
$agent = db_get_row('tagente', 'id_agente', $id_agente);
db_pandora_audit(
'Agent management',
AUDIT_LOG_AGENT_MANAGEMENT,
"Added module '".io_safe_output($name)."' for agent ".io_safe_output($agent['alias']),
false,
true,
@ -2049,12 +2055,12 @@ if ($enable_module) {
$success_action = $result;
if ($result === NOERR) {
db_pandora_audit(
'Module management',
AUDIT_LOG_MODULE_MANAGEMENT,
'Enable #'.$enable_module.' | '.$module_name.' | '.io_safe_output($agent['alias'])
);
} else {
db_pandora_audit(
'Module management',
AUDIT_LOG_MODULE_MANAGEMENT,
'Fail to enable #'.$enable_module.' | '.$module_name.' | '.io_safe_output($agent['alias'])
);
}
@ -2084,12 +2090,12 @@ if ($disable_module) {
if ($result === NOERR) {
db_pandora_audit(
'Module management',
AUDIT_LOG_MODULE_MANAGEMENT,
'Disable #'.$disable_module.' | '.$module_name.' | '.io_safe_output($agent['alias'])
);
} else {
db_pandora_audit(
'Module management',
AUDIT_LOG_MODULE_MANAGEMENT,
'Fail to disable #'.$disable_module.' | '.$module_name.' | '.io_safe_output($agent['alias'])
);
}
@ -2133,7 +2139,7 @@ if ($delete_module) {
if (! check_acl_one_of_groups($config['id_user'], $all_groups, 'AW')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to delete a module without admin rights'
);
include 'general/noaccess.php';
@ -2143,7 +2149,7 @@ if ($delete_module) {
if (empty($module_data) || $id_borrar_modulo < 1) {
db_pandora_audit(
'HACK Attempt',
AUDIT_LOG_HACK_ATTEMPT,
'Expected variable from form is not correct'
);
include 'general/noaccess.php';
@ -2165,7 +2171,7 @@ if ($delete_module) {
$agent = db_get_row('tagente', 'id_agente', $id_agente);
db_pandora_audit(
'Agent management',
AUDIT_LOG_AGENT_MANAGEMENT,
"Deleted module '".io_safe_output($module_data['nombre'])."' for agent ".io_safe_output($agent['alias'])
);
}
@ -2206,12 +2212,12 @@ if (!empty($duplicate_module)) {
if ($result) {
db_pandora_audit(
'Agent management',
AUDIT_LOG_AGENT_MANAGEMENT,
"Duplicate module '".$id_duplicate_module."' for agent ".$agent['alias'].' with the new id for clon '.$result
);
} else {
db_pandora_audit(
'Agent management',
AUDIT_LOG_AGENT_MANAGEMENT,
"Fail to try duplicate module '".$id_duplicate_module."' for agent ".$agent['alias']
);
}
@ -2225,9 +2231,15 @@ if ($enable_module) {
if ($result === NOERR) {
enterprise_hook('config_agents_enable_module_conf', [$id_agente, $enable_module]);
db_pandora_audit('Module management', 'Enable #'.$enable_module.' | '.$modulo_nombre.' | '.$agent['alias']);
db_pandora_audit(
AUDIT_LOG_MODULE_MANAGEMENT,
'Enable #'.$enable_module.' | '.$modulo_nombre.' | '.$agent['alias']
);
} else {
db_pandora_audit('Module management', 'Fail to enable #'.$enable_module.' | '.$modulo_nombre.' | '.$agent['alias']);
db_pandora_audit(
AUDIT_LOG_MODULE_MANAGEMENT,
'Fail to enable #'.$enable_module.' | '.$modulo_nombre.' | '.$agent['alias']
);
}
ui_print_result_message(
@ -2244,9 +2256,15 @@ if ($disable_module) {
if ($result === NOERR) {
enterprise_hook('config_agents_disable_module_conf', [$id_agente, $disable_module]);
db_pandora_audit('Module management', 'Disable #'.$disable_module.' | '.$modulo_nombre.' | '.$agent['alias']);
db_pandora_audit(
AUDIT_LOG_MODULE_MANAGEMENT,
'Disable #'.$disable_module.' | '.$modulo_nombre.' | '.$agent['alias']
);
} else {
db_pandora_audit('Module management', 'Fail to disable #'.$disable_module.' | '.$modulo_nombre.' | '.$agent['alias']);
db_pandora_audit(
AUDIT_LOG_MODULE_MANAGEMENT,
'Fail to disable #'.$disable_module.' | '.$modulo_nombre.' | '.$agent['alias']
);
}
ui_print_result_message(

View File

@ -16,7 +16,10 @@ global $config;
check_login();
if (! check_acl($config['id_user'], 0, 'PM')) {
db_pandora_audit('ACL Violation', 'Trying to access Group Management2');
db_pandora_audit(
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Group Management'
);
include 'general/noaccess.php';
return;
}

View File

@ -18,7 +18,7 @@ check_login();
if (!check_acl($config['id_user'], 0, 'PM')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Group Management'
);
include 'general/noaccess.php';

View File

@ -58,7 +58,7 @@ if (! check_acl(
)
) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access agent manager'
);
include 'general/noaccess.php';
@ -158,7 +158,7 @@ if ($agent_to_delete) {
} else {
// NO permissions.
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
"Trying to delete agent \'".agents_get_name($id_agente)."\'"
);
include 'general/noaccess.php';
@ -219,12 +219,12 @@ if ($enable_agent) {
]
);
db_pandora_audit(
'Agent management',
AUDIT_LOG_AGENT_MANAGEMENT,
'Enable '.$alias
);
} else {
db_pandora_audit(
'Agent management',
AUDIT_LOG_AGENT_MANAGEMENT,
'Fail to enable '.$alias
);
}
@ -262,12 +262,12 @@ if ($disable_agent) {
);
db_pandora_audit(
'Agent management',
AUDIT_LOG_AGENT_MANAGEMENT,
'Disable '.$alias
);
} else {
db_pandora_audit(
'Agent management',
AUDIT_LOG_AGENT_MANAGEMENT,
'Fail to disable '.$alias
);
}

View File

@ -261,7 +261,7 @@ if ($module_action === 'delete') {
if (! check_acl_one_of_groups($config['id_user'], $all_groups, 'AW')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to delete a module without admin rights'
);
include 'general/noaccess.php';

View File

@ -549,7 +549,7 @@ if ($is_function_policies !== ENTERPRISE_NOT_HOOK) {
);
db_pandora_audit(
'Agent management',
AUDIT_LOG_AGENT_MANAGEMENT,
'Re-link module '.$id_agent_module
);
}
@ -562,7 +562,10 @@ if ($is_function_policies !== ENTERPRISE_NOT_HOOK) {
__('Module will be unlinked in the next application')
);
db_pandora_audit('Agent management', 'Unlink module '.$id_agent_module);
db_pandora_audit(
AUDIT_LOG_AGENT_MANAGEMENT,
'Unlink module '.$id_agent_module
);
}
}
@ -582,7 +585,7 @@ if ($__code_from !== 'policies') {
if (!$tag_acl) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access agent manager'
);
include 'general/noaccess.php';

View File

@ -73,7 +73,7 @@ if ($edit_networkmap) {
if (!$networkmap_write && !$networkmap_manage) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access networkmap'
);
include 'general/noaccess.php';

View File

@ -38,7 +38,7 @@ $agent_w = check_acl($config['id_user'], 0, 'AW');
$access = ($agent_d == true) ? 'AD' : (($agent_w == true) ? 'AW' : 'AD');
if (!$agent_d && !$agent_w) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access downtime scheduler'
);
include 'general/noaccess.php';
@ -170,7 +170,7 @@ if ($delete_downtime_agent === 1) {
|| !in_array($downtime_group, $user_groups_ad)
) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access downtime scheduler'
);
include 'general/noaccess.php';
@ -189,7 +189,7 @@ if ($delete_downtime_agent === 1) {
|| !in_array($agent_group, $user_groups_ad)
) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access downtime scheduler'
);
include 'general/noaccess.php';
@ -266,7 +266,7 @@ if ($create_downtime || $update_downtime) {
// Check AD permission on new downtime.
if (!in_array($id_group, $user_groups_ad)) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access downtime scheduler'
);
include 'general/noaccess.php';
@ -324,7 +324,7 @@ if ($create_downtime || $update_downtime) {
// Check AD permission on OLD downtime.
if (empty($old_downtime) || !in_array($old_downtime['id_group'], $user_groups_ad)) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access downtime scheduler'
);
include 'general/noaccess.php';
@ -334,7 +334,7 @@ if ($create_downtime || $update_downtime) {
// Check AD permission on NEW downtime group.
if (!in_array($id_group, $user_groups_ad)) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access downtime scheduler'
);
include 'general/noaccess.php';
@ -498,7 +498,7 @@ if ($id_downtime > 0) {
// Permission check for the downtime with the AD user groups
if (empty($result) || !in_array($result['id_group'], $user_groups_ad)) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access downtime scheduler'
);
include 'general/noaccess.php';
@ -639,20 +639,20 @@ $table->data[5][1] = "
<tr><td>".ui_get_using_system_timezone_warning().'</td></tr>
<tr>
<td>'.__('Type Periodicity:').'&nbsp;'.html_print_select(
[
'weekly' => __('Weekly'),
'monthly' => __('Monthly'),
],
'type_periodicity',
$type_periodicity,
'change_type_periodicity();',
'',
0,
true,
false,
true,
'',
$disabled_in_execution
[
'weekly' => __('Weekly'),
'monthly' => __('Monthly'),
],
'type_periodicity',
$type_periodicity,
'change_type_periodicity();',
'',
0,
true,
false,
true,
'',
$disabled_in_execution
)."</td>
</tr>
<tr>
@ -672,31 +672,31 @@ $table->data[5][1] = "
<tr>
<td>".__('From day:').'</td>
<td>'.html_print_select(
$days,
'periodically_day_from',
$periodically_day_from,
'',
'',
0,
true,
false,
true,
'',
$disabled_in_execution
$days,
'periodically_day_from',
$periodically_day_from,
'',
'',
0,
true,
false,
true,
'',
$disabled_in_execution
).'</td>
<td>'.__('To day:').'</td>
<td>'.html_print_select(
$days,
'periodically_day_to',
$periodically_day_to,
'',
'',
0,
true,
false,
true,
'',
$disabled_in_execution
$days,
'periodically_day_to',
$periodically_day_to,
'',
'',
0,
true,
false,
true,
'',
$disabled_in_execution
).'</td>
<td>'.ui_print_help_tip(__('The end day must be higher than the start day'), true).'</td>
</tr>
@ -705,26 +705,26 @@ $table->data[5][1] = "
<tr>
<td>'.__('From hour:').'</td>
<td>'.html_print_input_text(
'periodically_time_from',
$periodically_time_from,
'',
7,
7,
true,
$disabled_in_execution
'periodically_time_from',
$periodically_time_from,
'',
7,
7,
true,
$disabled_in_execution
).ui_print_help_tip(
__('The end time must be higher than the start time'),
true
).'</td>
<td>'.__('To hour:').'</td>
<td>'.html_print_input_text(
'periodically_time_to',
$periodically_time_to,
'',
7,
7,
true,
$disabled_in_execution
'periodically_time_to',
$periodically_time_to,
'',
7,
7,
true,
$disabled_in_execution
).ui_print_help_tip(
__('The end time must be higher than the start time'),
true
@ -1008,13 +1008,13 @@ $table->data['module'][1] = "
<td class='cell_delete_button' style='text-align: right; width:10%;' id=''>".'<a class="link_delete"
onclick="if(!confirm(\''.__('Are you sure?').'\')) return false;"
href="">'.html_print_image(
'images/cross.png',
true,
[
'border' => '0',
'alt' => __('Delete'),
'class' => 'invert_filter',
]
'images/cross.png',
true,
[
'border' => '0',
'alt' => __('Delete'),
'class' => 'invert_filter',
]
).'</a>'."</td>
</tr>
<tr class='datos2' id='add_modules_row'>
@ -1093,7 +1093,7 @@ function insert_downtime_agent($id_downtime, $user_groups_ad)
|| !in_array($downtime_group, $user_groups_ad)
) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access downtime scheduler'
);
include 'general/noaccess.php';

View File

@ -23,7 +23,10 @@ require_once '../../include/functions_reporting.php';
$config['id_user'] = $_SESSION['id_usuario'];
if (! check_acl($config['id_user'], 0, 'AR')) {
db_pandora_audit('ACL Violation', 'Trying to access downtime scheduler');
db_pandora_audit(
AUDIT_LOG_ACL_VIOLATION,
'Trying to access downtime scheduler'
);
include 'general/noaccess.php';
return;
}

View File

@ -23,7 +23,7 @@ $access = ($read_permisson == true) ? 'AR' : (($write_permisson == true) ? 'AD'
if (! $read_permisson && !$manage_permisson) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access downtime scheduler'
);
include 'general/noaccess.php';
@ -70,7 +70,7 @@ if ($stop_downtime) {
// Check AD permission on the downtime
if (empty($downtime) || (! check_acl($config['id_user'], $downtime['id_group'], 'AD') && ! check_acl($config['id_user'], $downtime['id_group'], 'AW'))) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access downtime scheduler'
);
include 'general/noaccess.php';
@ -94,7 +94,7 @@ if ($delete_downtime) {
// Check AD permission on the downtime
if (empty($downtime) || (! check_acl($config['id_user'], $downtime['id_group'], 'AD') && ! check_acl($config['id_user'], $downtime['id_group'], 'AW'))) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access downtime scheduler'
);
include 'general/noaccess.php';

View File

@ -20,7 +20,7 @@ if (! check_acl($config['id_user'], 0, 'AR')
&& ! check_acl($config['id_user'], 0, 'AM')
) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Agent Management'
);
include 'general/noaccess.php';

View File

@ -42,7 +42,7 @@ enterprise_hook('open_meta_frame');
if (! check_acl($config['id_user'], 0, 'LM')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Alert actions'
);
include 'general/noaccess.php';
@ -104,7 +104,7 @@ if ($copy_action) {
// Then action group have to be in his own groups.
if (!$is_in_group) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Alert Management'
);
include 'general/noaccess.php';
@ -115,17 +115,14 @@ if ($copy_action) {
$result = alerts_clone_alert_action($id, $al_action['id_group']);
if ($result) {
db_pandora_audit(
'Command management',
'Duplicate alert action '.$id.' clone to '.$result
);
} else {
db_pandora_audit(
'Command management',
'Fail try to duplicate alert action '.$id
);
}
$auditMessage = ((bool) $result === true)
? sprintf('Duplicate alert action %s clone to %s', $id, $result)
: sprintf('Fail try to duplicate alert action %s', $id);
db_pandora_audit(
AUDIT_LOG_ALERT_MANAGEMENT,
$auditMessage
);
ui_print_result_message(
$result,
@ -145,7 +142,7 @@ if ($delete_action) {
if (!check_acl_restricted_all($config['id_user'], $al_action['id_group'], 'LM')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Alert Management'
);
include 'general/noaccess.php';
@ -158,7 +155,7 @@ if ($delete_action) {
// Then must have "PM" access privileges.
if (! check_acl($config['id_user'], 0, 'PM')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Alert Management'
);
include 'general/noaccess.php';
@ -182,7 +179,7 @@ if ($delete_action) {
// Then action group have to be in his own groups.
if (!$is_in_group) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Alert Management'
);
include 'general/noaccess.php';
@ -194,17 +191,14 @@ if ($delete_action) {
$result = alerts_delete_alert_action($id);
if ($result) {
db_pandora_audit(
'Command management',
'Delete alert action #'.$id
);
} else {
db_pandora_audit(
'Command management',
'Fail try to delete alert action #'.$id
);
}
$auditMessage = ((bool) $result === true)
? sprintf('Delete alert action #%s', $id)
: sprintf('Fail try to delete alert action #%s', $id);
db_pandora_audit(
AUDIT_LOG_ALERT_MANAGEMENT,
$auditMessage
);
ui_print_result_message(
$result,

View File

@ -21,7 +21,7 @@ check_login();
if (! check_acl($config['id_user'], 0, 'LM')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Alert Management'
);
include 'general/noaccess.php';
@ -538,9 +538,20 @@ if ($create_command) {
}
if ($result) {
db_pandora_audit('Command management', 'Create alert command #'.$result, false, false, $info);
db_pandora_audit(
AUDIT_LOG_ALERT_MANAGEMENT,
'Create alert command #'.$result,
false,
false,
$info
);
} else {
db_pandora_audit('Command management', 'Fail try to create alert command', false, false);
db_pandora_audit(
AUDIT_LOG_ALERT_MANAGEMENT,
'Fail try to create alert command',
false,
false
);
}
// Show errors.
@ -570,7 +581,7 @@ if ($delete_command) {
// Internal commands cannot be deleted.
if (alerts_get_alert_command_internal($id)) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Alert Management'
);
include 'general/noaccess.php';
@ -579,11 +590,14 @@ if ($delete_command) {
$result = alerts_delete_alert_command($id);
if ($result) {
db_pandora_audit('Command management', 'Delete alert command #'.$id);
} else {
db_pandora_audit('Command management', 'Fail try to delete alert command #'.$id);
}
$auditMessage = ((bool) $result === true)
? sprintf('Delete alert command #%s', $id)
: sprintf('Fail try to delete alert command #%s', $id);
db_pandora_audit(
AUDIT_LOG_ALERT_MANAGEMENT,
$auditMessage
);
ui_print_result_message(
$result,

View File

@ -18,7 +18,7 @@ check_login();
if (! check_acl($config['id_user'], 0, 'LW')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Alert Management'
);
include 'general/noaccess.php';

View File

@ -22,7 +22,7 @@ if (! check_acl($config['id_user'], 0, 'LW')
&& ! check_acl($config['id_user'], 0, 'LM')
) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Alert Management'
);
include 'general/noaccess.php';

View File

@ -21,7 +21,7 @@ if (! check_acl($config['id_user'], 0, 'LW')
&& ! check_acl($config['id_user'], 0, 'LM')
) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Alert Management'
);
include 'general/noaccess.php';
@ -146,7 +146,7 @@ if ($create_alert) {
$unsafe_agent_alias = io_safe_output($agent_alias);
if ($id) {
db_pandora_audit(
'Alert management',
AUDIT_LOG_ALERT_MANAGEMENT,
"Added alert '$unsafe_alert_template_name' for module '$unsafe_module_name' in agent '$unsafe_agent_alias'",
false,
false,
@ -154,7 +154,7 @@ if ($create_alert) {
);
} else {
db_pandora_audit(
'Alert management',
AUDIT_LOG_ALERT_MANAGEMENT,
"Fail Added alert '$unsafe_alert_template_name' for module '$unsafe_module_name' in agent '$unsafe_agent_alias'"
);
}
@ -217,12 +217,12 @@ if ($delete_alert) {
if ($result) {
db_pandora_audit(
'Alert management',
AUDIT_LOG_ALERT_MANAGEMENT,
"Deleted alert '$unsafe_alert_template_name' for module '$unsafe_module_name' in agent '$unsafe_agent_alias'"
);
} else {
db_pandora_audit(
'Alert management',
AUDIT_LOG_ALERT_MANAGEMENT,
"Fail to deleted alert '$unsafe_alert_template_name' for module '$unsafe_module_name' in agent '$unsafe_agent_alias'"
);
}
@ -255,9 +255,15 @@ if ($add_action) {
$result = alerts_add_alert_agent_module_action($id_alert_module, $id_action, $values);
if ($result) {
db_pandora_audit('Alert management', 'Add action '.$id_action.' in alert '.$id_alert_module);
db_pandora_audit(
AUDIT_LOG_ALERT_MANAGEMENT,
'Add action '.$id_action.' in alert '.$id_alert_module
);
} else {
db_pandora_audit('Alert management', 'Fail to add action '.$id_action.' in alert '.$id_alert_module);
db_pandora_audit(
AUDIT_LOG_ALERT_MANAGEMENT,
'Fail to add action '.$id_action.' in alert '.$id_alert_module
);
}
$messageAction = ui_print_result_message(
@ -290,9 +296,15 @@ if ($update_action) {
$result = alerts_update_alert_agent_module_action($id_module_action, $values);
if ($result) {
db_pandora_audit('Alert management', 'Update action '.$id_action.' in alert '.$id_alert_module);
db_pandora_audit(
AUDIT_LOG_ALERT_MANAGEMENT,
'Update action '.$id_action.' in alert '.$id_alert_module
);
} else {
db_pandora_audit('Alert management', 'Fail to updated action '.$id_action.' in alert '.$id_alert_module);
db_pandora_audit(
AUDIT_LOG_ALERT_MANAGEMENT,
'Fail to updated action '.$id_action.' in alert '.$id_alert_module
);
}
$messageAction = ui_print_result_message(
@ -311,9 +323,15 @@ if ($delete_action) {
$result = alerts_delete_alert_agent_module_action($id_action);
if ($result) {
db_pandora_audit('Alert management', 'Delete action '.$id_action.' in alert '.$id_alert);
db_pandora_audit(
AUDIT_LOG_ALERT_MANAGEMENT,
'Delete action '.$id_action.' in alert '.$id_alert
);
} else {
db_pandora_audit('Alert management', 'Fail to delete action '.$id_action.' in alert '.$id_alert);
db_pandora_audit(
AUDIT_LOG_ALERT_MANAGEMENT,
'Fail to delete action '.$id_action.' in alert '.$id_alert
);
}
$messageAction = ui_print_result_message(
@ -332,9 +350,15 @@ if ($enable_alert) {
$result = alerts_agent_module_disable($id_alert, false);
if ($result) {
db_pandora_audit('Alert management', 'Enable '.$id_alert);
db_pandora_audit(
AUDIT_LOG_ALERT_MANAGEMENT,
'Enable '.$id_alert
);
} else {
db_pandora_audit('Alert management', 'Fail to enable '.$id_alert);
db_pandora_audit(
AUDIT_LOG_ALERT_MANAGEMENT,
'Fail to enable '.$id_alert
);
}
$messageAction = ui_print_result_message(
@ -353,9 +377,15 @@ if ($disable_alert) {
$result = alerts_agent_module_disable($id_alert, true);
if ($result) {
db_pandora_audit('Alert management', 'Disable '.$id_alert);
db_pandora_audit(
AUDIT_LOG_ALERT_MANAGEMENT,
'Disable '.$id_alert
);
} else {
db_pandora_audit('Alert management', 'Fail to disable '.$id_alert);
db_pandora_audit(
AUDIT_LOG_ALERT_MANAGEMENT,
'Fail to disable '.$id_alert
);
}
$messageAction = ui_print_result_message(
@ -374,9 +404,15 @@ if ($standbyon_alert) {
$result = alerts_agent_module_standby($id_alert, true);
if ($result) {
db_pandora_audit('Alert management', 'Standby '.$id_alert);
db_pandora_audit(
AUDIT_LOG_ALERT_MANAGEMENT,
'Standby '.$id_alert
);
} else {
db_pandora_audit('Alert management', 'Fail to standby '.$id_alert);
db_pandora_audit(
AUDIT_LOG_ALERT_MANAGEMENT,
'Fail to standby '.$id_alert
);
}
$messageAction = ui_print_result_message(
@ -395,9 +431,15 @@ if ($standbyoff_alert) {
$result = alerts_agent_module_standby($id_alert, false);
if ($result) {
db_pandora_audit('Alert management', 'Standbyoff '.$id_alert);
db_pandora_audit(
AUDIT_LOG_ALERT_MANAGEMENT,
'Standbyoff '.$id_alert
);
} else {
db_pandora_audit('Alert management', 'Fail to standbyoff '.$id_alert);
db_pandora_audit(
AUDIT_LOG_ALERT_MANAGEMENT,
'Fail to standbyoff '.$id_alert
);
}
$messageAction = ui_print_result_message(

View File

@ -108,7 +108,7 @@ if (is_ajax()) {
if (! check_acl($config['id_user'], 0, 'LM')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Alert Management'
);
include 'general/noaccess.php';
@ -118,12 +118,7 @@ if (! check_acl($config['id_user'], 0, 'LM')) {
$update_template = (bool) get_parameter('update_template');
$delete_template = (bool) get_parameter('delete_template');
$pure = get_parameter('pure', 0);
if (defined('METACONSOLE')) {
$sec = 'advanced';
} else {
$sec = 'galertas';
}
$sec = (is_metaconsole() === true) ? 'advanced' : 'galertas';
// This prevents to duplicate the header in
// case delete_templete action is performed.
@ -175,7 +170,7 @@ if ($delete_template) {
if ($al_template['id_group'] == 0) {
if (! check_acl($config['id_user'], 0, 'PM')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Alert Management'
);
include 'general/noaccess.php';
@ -217,7 +212,7 @@ if ($delete_template) {
}
} else {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Alert Management'
);
include 'general/noaccess.php';
@ -242,12 +237,12 @@ if ($delete_template) {
if ($result) {
db_pandora_audit(
'Template alert management',
AUDIT_LOG_ALERT_MANAGEMENT,
'Delete alert template #'.$id
);
} else {
db_pandora_audit(
'Template alert management',
AUDIT_LOG_ALERT_MANAGEMENT,
'Fail try to delete alert template #'.$id
);
}

View File

@ -1,24 +1,39 @@
<?php
/**
* Alerts details for agent.
*
* @category Alert
* @package Pandora FMS
* @subpackage Community
* @version 1.0.0
* @license See below
*
* ______ ___ _______ _______ ________
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
*
* ============================================================================
* Copyright (c) 2005-2022 Artica Soluciones Tecnologicas
* Please see http://pandorafms.org for full contribution list
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation for version 2.
* 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.
* ============================================================================
*/
// Pandora FMS - http://pandorafms.com
// ==================================================
// Copyright (c) 2005-2021 Artica Soluciones Tecnologicas
// Please see http://pandorafms.org for full contribution list
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation for version 2.
// 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.
// Load global vars
// Load global vars.
global $config;
check_login();
if (! check_acl($config['id_user'], 0, 'LM')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Alert View (In management section)'
);
include 'general/noaccess.php';
@ -28,7 +43,7 @@ if (! check_acl($config['id_user'], 0, 'LM')) {
enterprise_include_once('include/functions_policies.php');
$id_alert = get_parameter('id_alert', 0);
// ID given as parameter
// ID given as parameter.
$alert = alerts_get_alert_agent_module($id_alert);
$template = alerts_get_alert_template($alert['id_alert_template']);
$actions = alerts_get_alert_agent_module_actions($id_alert);
@ -36,19 +51,27 @@ $agent_alias = modules_get_agentmodule_agent_alias($alert['id_agent_module']);
$agent = modules_get_agentmodule_agent($alert['id_agent_module']);
$module_name = modules_get_agentmodule_name($alert['id_agent_module']);
// Default action
// Default action.
$default_action = $template['id_alert_action'];
if ($default_action != 0) {
$default_action = alerts_get_alert_action($default_action);
$default_action['name'] .= ' '.'('.__('Default').')';
$default_action['name'] .= ' ('.__('Default').')';
$default_action['default'] = 1;
$default_action['module_action_threshold'] = '0';
}
// Header
ui_print_page_header(__('Alert details'), 'images/op_alerts.png', false, '', false, '');
// Header.
ui_print_page_header(
__('Alert details'),
'images/op_alerts.png',
false,
'',
false,
''
);
// TABLE DETAILS
// TABLE DETAILS.
$table_details = new stdClass;
$table_details->class = 'databox';
$table_details->width = '100%';
$table_details->size = [];
@ -103,7 +126,7 @@ $data[1] = '<span title="'.$priorities[$template['priority']].'" class="'.get_pr
$table_details->data[] = $data;
$data[0] = __('Stand by');
$data[1] = $alert['standby'] == 1 ? __('Yes') : __('No');
$data[1] = ($alert['standby'] == 1) ? __('Yes') : __('No');
$table_details->data[] = $data;
if (enterprise_installed() && $alert['id_policy_alerts'] != 0) {
@ -113,7 +136,13 @@ if (enterprise_installed() && $alert['id_policy_alerts'] != 0) {
} else {
$img = 'images/policies_mc.png';
$policy = '<a href="?sec=gmodules&amp;sec2=enterprise/godmode/policies/policies&amp;id='.$policyInfo['id'].'">'.html_print_image($img, true, ['title' => $policyInfo['name']]).'</a>';
$policy = '<a href="?sec=gmodules&amp;sec2=enterprise/godmode/policies/policies&amp;id='.$policyInfo['id'].'">';
$policy .= html_print_image(
$img,
true,
['title' => $policyInfo['name']]
);
$policy .= '</a>';
}
$data[0] = __('Policy');
@ -121,8 +150,7 @@ if (enterprise_installed() && $alert['id_policy_alerts'] != 0) {
$table_details->data[] = $data;
}
// TABLE DETAILS END
// TABLE CONDITIONS
$table_conditions = new stdClass;
$table_conditions->class = 'databox';
$table_conditions->width = '100%';
$table_conditions->size = [];
@ -155,9 +183,13 @@ switch ($template['type']) {
case 'max_min':
if ($template['matches_value']) {
$condition = __('The alert would fire when the value is between <span id="min"></span> and <span id="max"></span>');
$condition = __(
'The alert would fire when the value is between <span id="min"></span> and <span id="max"></span>'
);
} else {
$condition = __('The alert would fire when the value is not between <span id="min"></span> and <span id="max"></span>');
$condition = __(
'The alert would fire when the value is not between <span id="min"></span> and <span id="max"></span>'
);
}
$condition = str_replace('<span id="min"></span>', $template['min_value'], $condition);
@ -200,111 +232,27 @@ switch ($template['type']) {
case 'always':
$condition = __('Always');
break;
default:
// Not possible.
break;
}
$data[0] = $condition;
$table_conditions->data[] = $data;
// DAYS
$table_days->class = 'databox alert_days';
$table_days->width = '100%';
$table_days->size = [];
$table_days->data = [];
$table_days->style = [];
$table_days->styleTable = 'padding: 1px; margin: 0px; text-align: center; height: 80px;';
$table_days->head[0] = __('Mon');
$table_days->head[1] = __('Tue');
$table_days->head[2] = __('Wed');
$table_days->head[3] = __('Thu');
$table_days->head[4] = __('Fri');
$table_days->head[5] = __('Sat');
$table_days->head[6] = __('Sun');
$table_days->data[0] = array_fill(0, 7, html_print_image('images/blade.png', true));
$table_conditions->colspan[1][0] = 2;
$schedule = io_safe_output(
$template['schedule']
);
$days = [];
if ($template['monday']) {
$table_days->data[0][0] = html_print_image('images/tick.png', true, ['class' => 'invert_filter']);
}
if ($template['tuesday']) {
$table_days->data[0][1] = html_print_image('images/tick.png', true, ['class' => 'invert_filter']);
}
if ($template['wednesday']) {
$table_days->data[0][2] = html_print_image('images/tick.png', true, ['class' => 'invert_filter']);
}
if ($template['thursday']) {
$table_days->data[0][3] = html_print_image('images/tick.png', true, ['class' => 'invert_filter']);
}
if ($template['friday']) {
$table_days->data[0][4] = html_print_image('images/tick.png', true, ['class' => 'invert_filter']);
}
if ($template['saturday']) {
$table_days->data[0][5] = html_print_image('images/tick.png', true, ['class' => 'invert_filter']);
}
if ($template['sunday']) {
$table_days->data[0][6] = html_print_image('images/tick.png', true, ['class' => 'invert_filter']);
}
$data[0] = html_print_table($table_days, true);
unset($table_days);
// TIME
$table_time->class = 'databox alert_time';
$table_time->width = '100%';
$table_time->size = [];
$table_time->data = [];
$table_time->style = [];
$table_time->styleTable = 'padding: 1px; margin: 0px; text-align: center; height: 80px; width: 100%;';
// $data[0] = __('Time from') . ' / ' . __('Time to');
if ($template['time_from'] == $template['time_to']) {
$table_time->head[0] = '00:00:00<br>-<br>23:59:59';
$table_time->data[0][0] = html_print_image('images/tick.png', true, ['class' => 'invert_filter']);
} else {
$from_array = explode(':', $template['time_from']);
$from = ($from_array[0] * SECONDS_1HOUR + $from_array[1] * SECONDS_1MINUTE + $from_array[2]);
$to_array = explode(':', $template['time_to']);
$to = ($to_array[0] * SECONDS_1HOUR + $to_array[1] * SECONDS_1MINUTE + $to_array[2]);
if ($to > $from) {
if ($template['time_from'] != '00:00:00') {
$table_time->head[0] = '00:00:00<br>-<br>'.$template['time_from'];
$table_time->data[0][0] = html_print_image('images/blade.png', true);
}
$table_time->head[1] = $template['time_from'].'<br>-<br>'.$template['time_to'];
$table_time->data[0][1] = html_print_image('images/tick.png', true, ['class' => 'invert_filter']);
if ($template['time_to'] != '23:59:59') {
$table_time->head[2] = $template['time_to'].'<br>-<br>23:59:59';
$table_time->data[0][2] = html_print_image('images/blade.png', true);
}
} else {
if ($template['time_to'] != '00:00:00') {
$table_time->head[0] = '00:00:00<br>-<br>'.$template['time_to'];
$table_time->data[0][0] = html_print_image('images/tick.png', true, ['class' => 'invert_filter']);
}
$table_time->head[1] = $template['time_to'].'<br>-<br>'.$template['time_from'];
$table_time->data[0][1] = html_print_image('images/blade.png', true, ['class' => 'invert_filter']);
if ($template['time_from'] != '23:59:59') {
$table_time->head[2] = $template['time_from'].'<br>-<br>23:59:59';
$table_time->data[0][2] = html_print_image('images/tick.png', true, ['class' => 'invert_filter']);
}
}
$data[1] = $template['time_from'].' / '.$template['time_to'];
}
$data[1] = html_print_table($table_time, true);
unset($table_time);
$data[0] = '';
$data[0] .= html_print_input_hidden('schedule', $schedule, true);
$data[0] .= '<div id="calendar_map"></div>';
$data[1] = '';
$table_conditions->data[] = $data;
$data[0] = __('Use special days list');
@ -319,7 +267,8 @@ $data[0] = __('Number of alerts').' ('.__('Min').'/'.__('Max').')';
$data[1] = $template['min_alerts'].'/'.$template['max_alerts'];
$table_conditions->data[] = $data;
// TABLE CONDITIONS END
// TABLE CONDITIONS END.
$table = new stdClass;
$table->class = 'alert_list databox';
$table->width = '98%';
$table->size = [];
@ -339,7 +288,8 @@ unset($table);
$actions = alerts_get_actions_escalation($actions, $default_action);
// ESCALATION
// ESCALATION.
$table = new stdClass;
$table->class = 'alert_list databox alternate alert_escalation';
$table->width = '98%';
$table->size = [];
@ -354,19 +304,33 @@ $table->style[0] = 'font-weight: bold; text-align: left;';
if (count($actions) == 1 && isset($actions[0])) {
$table->head[1] = __('Every time that the alert is fired');
$table->data[0][0] = $actions[0]['name'];
$table->data[0][1] = html_print_image('images/tick.png', true, ['class' => 'invert_filter']);
$table->data[0][1] = html_print_image(
'images/tick.png',
true,
['class' => 'invert_filter']
);
} else {
foreach ($actions as $kaction => $action) {
$table->data[$kaction][0] = $action['name'];
if ($kaction == 0) {
$table->data[$kaction][0] .= ui_print_help_tip(__('The default actions will be executed every time that the alert is fired and no other action is executed'), true);
if ((int) $kaction === 0) {
$table->data[$kaction][0] .= ui_print_help_tip(
__('The default actions will be executed every time that the alert is fired and no other action is executed'),
true
);
}
foreach ($action['escalation'] as $k => $v) {
if ($v > 0) {
$table->data[$kaction][$k] = html_print_image('images/tick.png', true, ['class' => 'invert_filter']);
$table->data[$kaction][$k] = html_print_image(
'images/tick.png',
true,
['class' => 'invert_filter']
);
} else {
$table->data[$kaction][$k] = html_print_image('images/blade.png', true);
$table->data[$kaction][$k] = html_print_image(
'images/blade.png',
true
);
}
if (count($table->head) <= count($action['escalation'])) {
@ -382,12 +346,16 @@ if (count($actions) == 1 && isset($actions[0])) {
}
}
$action_threshold = $action['module_action_threshold'] > 0 ? $action['module_action_threshold'] : $action['action_threshold'];
$action_threshold = ($action['module_action_threshold'] > 0) ? $action['module_action_threshold'] : $action['action_threshold'];
if ($action_threshold == 0) {
$table->data[$kaction][($k + 1)] = __('No');
} else {
$table->data[$kaction][($k + 1)] = human_time_description_raw($action_threshold, true, 'tiny');
$table->data[$kaction][($k + 1)] = human_time_description_raw(
$action_threshold,
true,
'tiny'
);
}
$table->head[($k + 1)] = __('Threshold');
@ -397,7 +365,8 @@ if (count($actions) == 1 && isset($actions[0])) {
html_print_table($table);
unset($table);
echo '</div>';
// ESCALATION TABLE
// ESCALATION TABLE.
$table = new stdClass;
$table->class = 'alert_list databox';
$table->width = '98%';
$table->size = [];
@ -405,7 +374,7 @@ $table->head = [];
$table->data = [];
$table->rowstyle[1] = 'font-weight: bold;';
if ($default_action != 0) {
if ((int) $default_action != 0) {
$actions_select[0] = $default_action['name'];
}
@ -416,17 +385,43 @@ foreach ($actions as $kaction => $action) {
$table->data[0][0] = __('Select the desired action and mode to see the Firing/Recovery fields for this action');
$table->colspan[0][0] = 2;
$table->data[1][0] = __('Action').'<br>'.html_print_select($actions_select, 'firing_action_select', -1, '', __('Select the action'), -1, true, false, false);
$table->data[1][0] = __('Action');
$table->data[1][0] .= '<br>';
$table->data[1][0] .= html_print_select(
$actions_select,
'firing_action_select',
-1,
'',
__('Select the action'),
-1,
true,
false,
false
);
$modes = [];
$modes['firing'] = __('Firing');
$modes['recovering'] = __('Recovering');
$table->data[1][1] = '<div class="action_details invisible" >'.__('Mode').'<br>'.html_print_select($modes, 'modes', 'firing', '', '', 0, true, false, false).'</div>';
$table->data[1][1] = '<div class="action_details invisible" >';
$table->data[1][1] .= __('Mode');
$table->data[1][1] .= '<br>';
$table->data[1][1] .= html_print_select(
$modes,
'modes',
'firing',
'',
'',
0,
true,
false,
false
);
$table->data[1][1] .= '</div>';
html_print_table($table);
unset($table);
$table = new stdClass;
$table->class = 'alert_list databox alternate';
$table->width = '98%';
$table->size = [];
@ -437,13 +432,33 @@ $table->style[1] = 'width: 30%;';
$table->style[2] = 'width: 30%;';
$table->style[3] = 'font-weight: bold; width: 30%;';
$table->title = __('Firing fields').ui_print_help_tip(__('Fields passed to the command executed by this action when the alert is fired'), true);
$table->title = __('Firing fields');
$table->title .= ui_print_help_tip(
__('Fields passed to the command executed by this action when the alert is fired'),
true
);
$table->head[0] = __('Field').ui_print_help_tip(__('Fields configured on the command associated to the action'), true);
$table->head[1] = __('Template fields').ui_print_help_tip(__('Triggering fields configured in template'), true);
$table->head[2] = __('Action fields').ui_print_help_tip(__('Triggering fields configured in action'), true);
$table->head[0] = __('Field');
$table->head[0] .= ui_print_help_tip(
__('Fields configured on the command associated to the action'),
true
);
$table->head[1] = __('Template fields');
$table->head[1] .= ui_print_help_tip(
__('Triggering fields configured in template'),
true
);
$table->head[2] = __('Action fields');
$table->head[2] .= ui_print_help_tip(
__('Triggering fields configured in action'),
true
);
$table->head[3] = __('Executed on firing').ui_print_help_tip(__('Fields used on execution when the alert is fired'), true);
$table->head[3] = __('Executed on firing');
$table->head[3] .= ui_print_help_tip(
__('Fields used on execution when the alert is fired'),
true
);
$firing_fields = [];
@ -456,14 +471,12 @@ foreach ($actions as $kaction => $action) {
$descriptions = json_decode($command['fields_descriptions'], true);
foreach ($descriptions as $kdesc => $desc) {
if (empty($desc)) {
// continue;
}
$field = 'field'.($kdesc + 1);
$data = [];
$data[0] = $firing_fields[$kaction]['description'][$field] = $desc;
if (!empty($data[0])) {
$data[0] = $desc;
$firing_fields[$kaction]['description'][$field] = $desc;
if (empty($data[0]) === false) {
$data[0] = '<b>'.$data[0].'</b><br>';
}
@ -473,12 +486,14 @@ foreach ($actions as $kaction => $action) {
).')</span>';
$data[1] = $template[$field];
$data[2] = $action[$field];
$data[3] = $firing_fields[$kaction]['value'][$field] = empty($action[$field]) ? $template[$field] : $action[$field];
$data[3] = (empty($action[$field]) === true) ? $template[$field] : $action[$field];
$firing_fields[$kaction]['value'][$field] = (empty($action[$field]) === true) ? $template[$field] : $action[$field];
$first_level = $template[$field];
$second_level = $action[$field];
if (!empty($second_level) || !empty($first_level)) {
if (empty($second_level)) {
if (empty($second_level) === false || empty($first_level) === false) {
if (empty($second_level) === false) {
$table->cellclass[count($table->data)][1] = 'used_field';
$table->cellclass[count($table->data)][2] = 'empty_field';
} else {
@ -493,7 +508,7 @@ foreach ($actions as $kaction => $action) {
$table->rowclass[] = 'firing_action firing_action_'.$kaction;
if ($command_preview != 'Internal type') {
if ($command_preview !== 'Internal type') {
$command_preview = str_replace('_'.$field.'_', $data[3], $command_preview);
}
}
@ -504,20 +519,32 @@ foreach ($actions as $kaction => $action) {
echo '<div class="mode_table mode_table_firing action_details invisible w100p">';
html_print_table($table);
unset($table);
foreach ($actions as $kaction => $action) {
echo '<div class="firing_action firing_action_'.$kaction.' invisible">';
ui_print_info_message(['title' => __('Command preview'), 'message' => $firing_fields[$kaction]['command_preview'], 'no_close' => true]);
ui_print_info_message(
[
'title' => __('Command preview'),
'message' => $firing_fields[$kaction]['command_preview'],
'no_close' => true,
]
);
echo '</div>';
}
echo '</div>';
// Firing table
// Firing table.
echo '<div class="mode_table mode_table_recovering action_details invisible w100p" >';
if ($template['recovery_notify'] == 0) {
ui_print_info_message(['title' => __('Disabled'), 'message' => __('The alert recovering is disabled on this template.'), 'no_close' => true]);
if ((int) $template['recovery_notify'] === 0) {
ui_print_info_message(
[
'title' => __('Disabled'),
'message' => __('The alert recovering is disabled on this template.'),
'no_close' => true,
]
);
} else {
$table = new stdClass;
$table->class = 'alert_list databox alternate';
$table->width = '98%';
$table->size = [];
@ -528,13 +555,37 @@ if ($template['recovery_notify'] == 0) {
$table->style[2] = 'width: 25%;';
$table->style[3] = 'width: 25%;';
$table->style[3] = 'font-weight: bold; width: 25%;';
$table->title = __('Recovering fields').ui_print_help_tip(__('Fields passed to the command executed by this action when the alert is recovered'), true);
$table->title = __('Recovering fields');
$table->title .= ui_print_help_tip(
__('Fields passed to the command executed by this action when the alert is recovered'),
true
);
$table->head[0] = __('Field').ui_print_help_tip(__('Fields configured on the command associated to the action'), true);
$table->head[1] = __('Firing fields').ui_print_help_tip(__('Fields used on execution when the alert is fired'), true);
$table->head[2] = __('Template recovery fields').ui_print_help_tip(__('Recovery fields configured in alert template'), true);
$table->head[3] = __('Action recovery fields').ui_print_help_tip(__('Recovery fields configured in alert action'), true);
$table->head[4] = __('Executed on recovery').ui_print_help_tip(__('Fields used on execution when the alert is recovered'), true);
$table->head[0] = __('Field');
$table->head[0] .= ui_print_help_tip(
__('Fields configured on the command associated to the action'),
true
);
$table->head[1] = __('Firing fields');
$table->head[1] .= ui_print_help_tip(
__('Fields used on execution when the alert is fired'),
true
);
$table->head[2] = __('Template recovery fields');
$table->head[2] .= ui_print_help_tip(
__('Recovery fields configured in alert template'),
true
);
$table->head[3] = __('Action recovery fields');
$table->head[3] .= ui_print_help_tip(
__('Recovery fields configured in alert action'),
true
);
$table->head[4] = __('Executed on recovery');
$table->head[4] .= ui_print_help_tip(
__('Fields used on execution when the alert is recovered'),
true
);
$table->style[4] = 'font-weight: bold;';
foreach ($firing_fields as $kaction => $firing) {
@ -544,7 +595,7 @@ if ($template['recovery_notify'] == 0) {
foreach ($firing['description'] as $field => $desc) {
$data[0] = $desc;
if (!empty($data[0])) {
if (empty($data[0]) === false) {
$data[0] = '<b>'.$data[0].'</b><br>';
}
@ -560,14 +611,14 @@ if ($template['recovery_notify'] == 0) {
$first_level = $data[1];
$second_level = $data[2];
$third_level = $data[3];
if (!empty($third_level) || !empty($second_level) || !empty($first_level)) {
if (!empty($third_level)) {
if (empty($third_level) === false || empty($second_level) === false || empty($first_level) === false) {
if (empty($third_level) === false) {
$table->cellclass[count($table->data)][1] = 'overrided_field';
$table->cellclass[count($table->data)][2] = 'overrided_field';
$table->cellclass[count($table->data)][3] = 'used_field';
$data[4] = $data[3];
} else if (!empty($second_level)) {
} else if (empty($second_level) === false) {
$table->cellclass[count($table->data)][1] = 'overrided_field';
$table->cellclass[count($table->data)][2] = 'used_field';
$table->cellclass[count($table->data)][3] = 'empty_field';
@ -578,8 +629,8 @@ if ($template['recovery_notify'] == 0) {
$table->cellclass[count($table->data)][2] = 'empty_field';
$table->cellclass[count($table->data)][3] = 'empty_field';
// All fields but field1 will have [RECOVER] prefix if no recovery fields are configured
$data[4] = $fieldn == 1 ? $data[1] : '[RECOVER]'.$data[1];
// All fields but field1 will have [RECOVER] prefix if no recovery fields are configured.
$data[4] = ((int) $fieldn === 1) ? $data[1] : '[RECOVER]'.$data[1];
}
}
@ -588,7 +639,7 @@ if ($template['recovery_notify'] == 0) {
$table->rowclass[] = 'firing_action firing_action_'.$kaction;
if ($command_preview != 'Internal type') {
if ($command_preview !== 'Internal type') {
$command_preview = str_replace('_'.$field.'_', $data[4], $command_preview);
}
@ -598,16 +649,85 @@ if ($template['recovery_notify'] == 0) {
html_print_table($table);
unset($table);
ui_print_info_message(['title' => __('Command preview'), 'message' => $command_preview, 'no_close' => true]);
ui_print_info_message(
[
'title' => __('Command preview'),
'message' => $command_preview,
'no_close' => true,
]
);
}
echo '</div>';
// Recovering table
ui_require_css_file('main.min', 'include/javascript/fullcalendar/');
ui_require_javascript_file('main.min', 'include/javascript/fullcalendar/');
ui_require_javascript_file('pandora_fullcalendar');
?>
<script language="javascript" type="text/javascript">
$(document).ready (function () {
var calendarEl = document.getElementById('calendar_map');
if(calendarEl){
var eventsBBDD = $("#hidden-schedule").val();
if(eventsBBDD === '' || eventsBBDD === 'Array') {
eventsBBDD = '';
}
var events = loadEventBBDD(eventsBBDD);
var options = {
contentHeight: "auto",
headerToolbar: {
left: "",
center: "",
right: ''
},
buttonText: {},
dayHeaderFormat: { weekday: "short" },
initialView: "dayGridWeek",
navLinks: false,
selectable: true,
selectMirror: true,
slotDuration: "01:00:00",
slotLabelInterval: "02:00:00",
snapDuration: "01:00:00",
slotMinTime: "00:00:00",
slotMaxTime: "24:00:00",
scrollTime: "01:00:00",
locale: "en-GB",
firstDay: 1,
eventTimeFormat: {
hour: "numeric",
minute: "2-digit",
hour12: false
},
eventColor: "#82b92e",
editable: false,
dayMaxEvents: 3,
dayPopoverFormat: { weekday: "long" },
defaultAllDay: false,
displayEventTime: true,
displayEventEnd: true,
selectOverlap: false,
eventOverlap: false,
allDaySlot: true,
droppable: false,
select: false,
selectAllow: false,
eventAllow: false,
eventDrop: false,
eventDragStop: false,
eventResize: false,
eventMouseEnter: false,
eventMouseLeave: false,
eventClick: false,
};
var settings = {}
var calendar = fullCalendarPandora(calendarEl, options, settings, events);
calendar.render();
}
});
$('#firing_action_select').change(function() {
@ -619,8 +739,7 @@ $('#firing_action_select').change(function() {
else {
$('.action_details').show();
}
$('.firing_action').hide();
if($(this).val() != -1) {
$('.firing_action_' + $(this).val()).show();

View File

@ -23,7 +23,7 @@ check_login();
if (! check_acl($config['id_user'], 0, 'LM')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Alert Management'
);
include 'general/noaccess.php';
@ -96,7 +96,10 @@ if ($al_action !== false) {
}
if (!$is_in_group && $al_action['id_group'] != 0) {
db_pandora_audit('ACL Violation', 'Trying to access unauthorized alert action configuration');
db_pandora_audit(
AUDIT_LOG_ACL_VIOLATION,
'Trying to access unauthorized alert action configuration'
);
include 'general/noaccess.php';
exit;
}

View File

@ -1,17 +1,34 @@
<?php
// phpcs:disable Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps
// Pandora FMS - http://pandorafms.com
// ==================================================
// Copyright (c) 2005-2021 Artica Soluciones Tecnologicas
// Please see http://pandorafms.org for full contribution list
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation for version 2.
// 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.
// Load global vars.
/**
* Configure Alert commands
*
* @category Alert management
* @package Pandora FMS
* @subpackage Community
* @version 1.0.0
* @license See below
*
* ______ ___ _______ _______ ________
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
*
* ============================================================================
* Copyright (c) 2005-2022 Artica Soluciones Tecnologicas
* Please see http://pandorafms.org for full contribution list
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation for version 2.
* 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.
* ============================================================================
*/
// Begin.
global $config;
require_once $config['homedir'].'/include/functions_alerts.php';
@ -23,7 +40,7 @@ enterprise_hook('open_meta_frame');
if (! check_acl($config['id_user'], 0, 'PM')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Alert Management'
);
include 'general/noaccess.php';
@ -52,7 +69,10 @@ if ($id > 0) {
$alert = alerts_get_alert_command($id);
if ($alert['internal'] || !check_acl_restricted_all($config['id_user'], $alert['id_group'], 'PM')) {
db_pandora_audit('ACL Violation', 'Trying to access Alert Management');
db_pandora_audit(
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Alert Management'
);
include 'general/noaccess.php';
exit;
}
@ -87,17 +107,17 @@ if ($update_command) {
$values['description'] = $description;
$values['id_group'] = $id_group;
// Only for Metaconsole. Save the previous name for synchronizing.
if (is_metaconsole()) {
if (is_metaconsole() === true) {
$values['previous_name'] = db_get_value('name', 'talert_commands', 'id', $id);
}
// Check it the new name is used in the other command.
$id_check = db_get_value('id', 'talert_commands', 'name', $name);
if (($id_check != $id) && (!empty($id_check))) {
$result = '';
$result = false;
} else {
$result = alerts_update_alert_command($id, $values);
if ($result) {
$result = (bool) alerts_update_alert_command($id, $values);
if ($result === true) {
$info = '{"Name":"'.$name.'","Command":"'.$command.'","Description":"'.$description.' '.$info_fields.'"}';
$alert['fields_values'] = io_json_mb_encode($fields_values);
$alert['fields_descriptions'] = io_json_mb_encode($fields_descriptions);
@ -109,11 +129,15 @@ if ($update_command) {
}
}
if ($result) {
db_pandora_audit('Command management', 'Update alert command #'.$id, false, false, $info);
} else {
db_pandora_audit('Command management', 'Fail to update alert command #'.$id, false, false);
}
$auditMessage = ((bool) $result === true) ? 'Update alert command' : 'Fail to update alert command';
db_pandora_audit(
AUDIT_LOG_ALERT_MANAGEMENT,
sprintf('%s #%s', $auditMessage, $id),
false,
false,
$info
);
ui_print_result_message(
$result,
@ -130,7 +154,7 @@ $fields_descriptions = '';
$fields_values = '';
$id_group = 0;
if ($id) {
if (!$result) {
if ($result === false) {
$alert = alerts_get_alert_command($id);
}

File diff suppressed because it is too large Load Diff

View File

@ -32,7 +32,10 @@ if (!isset($_SESSION['id_usuario'])) {
check_login();
if (! check_acl($config['id_user'], 0, 'PM')) {
db_pandora_audit('ACL Violation', 'Trying to access audit CSV export');
db_pandora_audit(
AUDIT_LOG_ACL_VIOLATION,
'Trying to access audit CSV export'
);
include 'general/noaccess.php';
exit;
}

View File

@ -35,7 +35,10 @@ check_login();
enterprise_hook('open_meta_frame');
if (!check_acl($config['id_user'], 0, 'PM') && !is_user_admin($config['id_user'])) {
db_pandora_audit('ACL Violation', 'Trying to access Categories Management');
db_pandora_audit(
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Categories Management'
);
include 'general/noaccess.php';
return;
}
@ -113,10 +116,16 @@ if (is_management_allowed() === false) {
if ($is_management_allowed === true && $delete != 0) {
$return_delete = categories_delete_category($delete);
if (!$return_delete) {
db_pandora_audit('Category management', 'Fail try to delete category #'.$delete);
db_pandora_audit(
AUDIT_LOG_CATEGORY_MANAGEMENT,
'Fail try to delete category #'.$delete
);
ui_print_error_message(__('Error deleting category'));
} else {
db_pandora_audit('Category management', 'Delete category #'.$delete);
db_pandora_audit(
AUDIT_LOG_CATEGORY_MANAGEMENT,
'Delete category #'.$delete
);
ui_print_success_message(__('Successfully deleted category'));
}
}

View File

@ -19,7 +19,10 @@ enterprise_hook('open_meta_frame');
require_once $config['homedir'].'/include/functions_categories.php';
if (! check_acl($config['id_user'], 0, 'PM') && ! is_user_admin($config['id_user'])) {
db_pandora_audit('ACL Violation', 'Trying to access Edit Category');
db_pandora_audit(
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Edit Category'
);
include 'general/noaccess.php';
return;
@ -85,34 +88,46 @@ if ($update_category && $id_category != 0) {
}
if ($result === false) {
db_pandora_audit('Category management', "Fail try to update category #$id_category");
db_pandora_audit(
AUDIT_LOG_CATEGORY_MANAGEMENT,
'Fail try to update category #'.$id_category
);
ui_print_error_message(__('Error updating category'));
} else {
db_pandora_audit('Category management', "Update category #$id_category");
db_pandora_audit(
AUDIT_LOG_CATEGORY_MANAGEMENT,
'Update category #'.$id_category
);
ui_print_success_message(__('Successfully updated category'));
}
}
// Create category: creates a new category
// Create category: creates a new category.
if ($create_category) {
$return_create = true;
$values = [];
$values['name'] = $name_category;
// DB insert
// DB insert.
$return_create = false;
if ($values['name'] != '') {
$return_create = db_process_sql_insert('tcategory', $values);
}
if ($return_create === false) {
db_pandora_audit('Category management', 'Fail try to create category');
db_pandora_audit(
AUDIT_LOG_CATEGORY_MANAGEMENT,
'Fail try to create category'
);
ui_print_error_message(__('Error creating category'));
$action = 'new';
// If create action ends successfully then current action is update
// If create action ends successfully then current action is update.
} else {
db_pandora_audit('Category management', "Create category #$return_create");
db_pandora_audit(
AUDIT_LOG_CATEGORY_MANAGEMENT,
'Create category #'.$return_create
);
ui_print_success_message(__('Successfully created category'));
$id_category = $return_create;
$action = 'update';
@ -120,7 +135,7 @@ if ($create_category) {
}
// Form fields are filled here
// Get results when update action is performed
// Get results when update action is performed.
if ($action == 'update' && $id_category != 0) {
$result_category = db_get_row_filter('tcategory', ['id' => $id_category]);
$name_category = $result_category['name'];

View File

@ -18,7 +18,7 @@ check_login();
if (! check_acl($config['id_user'], 0, 'DM')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Database Management'
);
include 'general/noaccess.php';

View File

@ -17,7 +17,7 @@ check_login();
if (! check_acl($config['id_user'], 0, 'PM')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Custom events Management'
);
include 'general/noaccess.php';

View File

@ -21,7 +21,7 @@ $access = ($event_w == true) ? 'EW' : (($event_m == true) ? 'EM' : 'EW');
if (!$event_w && !$event_m) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access events filter editor'
);
include 'general/noaccess.php';

View File

@ -22,7 +22,7 @@ $access = ($event_w == true) ? 'EW' : (($event_m == true) ? 'EM' : 'EW');
if (!$event_w && !$event_m) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access events filter editor'
);
include 'general/noaccess.php';
@ -43,7 +43,7 @@ if ($delete) {
&& !check_acl_restricted_all($config['id_user'], $filter_group, 'EM')
) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access events filter editor'
);
include 'general/noaccess.php';

View File

@ -17,7 +17,7 @@ check_login();
if (! check_acl($config['id_user'], 0, 'PM')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Group Management'
);
include 'general/noaccess.php';
@ -43,7 +43,7 @@ if ($event_response_id > 0) {
// ACL check for event response edition.
if (!check_acl_restricted_all($config['id_user'], $event_response['id_group'], 'PM')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Group Management'
);
include 'general/noaccess.php';

View File

@ -19,7 +19,7 @@ check_login();
if (! check_acl($config['id_user'], 0, 'PM')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Group Management'
);
include 'general/noaccess.php';

View File

@ -19,7 +19,7 @@ check_login();
if (! check_acl($config['id_user'], 0, 'PM')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Group Management'
);
include 'general/noaccess.php';

View File

@ -20,7 +20,7 @@ enterprise_hook('open_meta_frame');
if (!check_acl($config['id_user'], 0, 'EW') && !check_acl($config['id_user'], 0, 'EM') && ! check_acl($config['id_user'], 0, 'PM')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access event manage'
);
include 'general/noaccess.php';

View File

@ -17,7 +17,7 @@ global $config;
if (! check_acl($config['id_user'], 0, 'PM')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access extensions list'
);
include 'general/noaccess.php';

File diff suppressed because it is too large Load Diff

View File

@ -34,7 +34,10 @@ check_login();
enterprise_hook('open_meta_frame');
if (! check_acl($config['id_user'], 0, 'AW')) {
db_pandora_audit('ACL Violation', 'Trying to access Group Management2');
db_pandora_audit(
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Group Management2'
);
include 'general/noaccess.php';
return;
}

View File

@ -18,7 +18,10 @@ check_login();
enterprise_hook('open_meta_frame');
if (! check_acl($config['id_user'], 0, 'PM')) {
db_pandora_audit('ACL Violation', 'Trying to access Group Management2');
db_pandora_audit(
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Group Management2'
);
include 'general/noaccess.php';
return;
}

View File

@ -47,7 +47,10 @@ if (is_metaconsole() === true) {
if (is_ajax() === true) {
if ((bool) check_acl($config['id_user'], 0, 'AR') === false) {
db_pandora_audit('ACL Violation', 'Trying to access Group Management');
db_pandora_audit(
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Group Management'
);
include 'general/noaccess.php';
return;
}
@ -74,7 +77,7 @@ if (is_ajax() === true) {
if ((bool) check_acl($config['id_user'], $id_group, 'AR') === false) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Alert Management'
);
echo json_encode(false);
@ -117,7 +120,7 @@ if (is_ajax() === true) {
if ((bool) check_acl($config['id_user'], $id_group, 'AR') === false) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Alert Management'
);
echo json_encode(false);
@ -275,7 +278,7 @@ if ($tab !== 'credbox'
&& (bool) check_acl($config['id_user'], 0, 'AW') === false
) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Group Management'
);
include 'general/noaccess.php';
@ -285,7 +288,7 @@ if ($tab !== 'credbox'
&& (bool) check_acl($config['id_user'], 0, 'PM') === false
) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Credential Store'
);
include 'general/noaccess.php';

View File

@ -32,7 +32,7 @@ check_login();
if (! check_acl($config['id_user'], 0, 'PM')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Group Management'
);
include 'general/noaccess.php';
@ -48,7 +48,7 @@ if (is_ajax() === true) {
if (! check_acl($config['id_user'], $id_group, 'AR')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Alert Management'
);
echo json_encode(false);

View File

@ -31,7 +31,7 @@ check_login();
if (! check_acl($config['id_user'], 0, 'AW')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access massive agent deletion section'
);
include 'general/noaccess.php';
@ -150,7 +150,13 @@ if ($add) {
'Fires_max' => $fires_max,
'Actions' => implode(',', $actions),
];
db_pandora_audit('Massive management', 'Add alert action '.json_encode($id_agents), false, false, json_encode($info));
db_pandora_audit(
AUDIT_LOG_MASSIVE_MANAGEMENT,
'Add alert action '.json_encode($id_agents),
false,
false,
json_encode($info)
);
ui_print_result_message($results, __('Successfully added'), __('Could not be added'));
}
} else {

View File

@ -31,7 +31,7 @@ check_login();
if (! check_acl($config['id_user'], 0, 'AW')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access massive alert deletion'
);
include 'general/noaccess.php';
@ -139,16 +139,28 @@ function process_manage_add($id_alert_template, $id_agents, $module_names)
$success = alerts_create_alert_agent_module($module, $id_alert_template);
if ($success) {
$contsuccess ++;
$contsuccess++;
}
$conttotal ++;
$conttotal++;
}
if ($contsuccess > 0) {
db_pandora_audit('Massive management', 'Add alert', false, false, 'Alert template: '.$id_alert_template.' Modules: '.json_encode($modules_id));
db_pandora_audit(
AUDIT_LOG_MASSIVE_MANAGEMENT,
'Add alert',
false,
false,
'Alert template: '.$id_alert_template.' Modules: '.json_encode($modules_id)
);
} else {
db_pandora_audit('Massive management', 'Fail try to add alert', false, false, 'Alert template: '.$id_alert_template.' Modules: '.json_encode($modules_id));
db_pandora_audit(
AUDIT_LOG_MASSIVE_MANAGEMENT,
'Fail try to add alert',
false,
false,
'Alert template: '.$id_alert_template.' Modules: '.json_encode($modules_id)
);
}
ui_print_result_message(

View File

@ -31,7 +31,7 @@ check_login();
if (!check_acl($config['id_user'], 0, 'UM')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access massive profile addition'
);
include 'general/noaccess.php';
@ -80,7 +80,7 @@ if ($create_profiles) {
// If the profile doesnt exist, we create it
if ($profile_data === false) {
db_pandora_audit(
'User management',
AUDIT_LOG_USER_MANAGEMENT,
'Added profile for user '.io_safe_input($user)
);
$return = profile_create_user_profile($user, $profile, $group);
@ -95,7 +95,7 @@ if ($create_profiles) {
if ($n_added > 0) {
db_pandora_audit(
'Massive management',
AUDIT_LOG_MASSIVE_MANAGEMENT,
'Add profiles',
false,
false,
@ -103,7 +103,7 @@ if ($create_profiles) {
);
} else {
db_pandora_audit(
'Massive management',
AUDIT_LOG_MASSIVE_MANAGEMENT,
'Fail to try add profiles',
false,
false,

View File

@ -31,7 +31,7 @@ check_login();
if (! check_acl($config['id_user'], 0, 'AW')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Agent Config Management Admin section'
);
include 'general/noaccess.php';
@ -66,7 +66,7 @@ if ($do_operation) {
];
if ($result) {
db_pandora_audit(
'Massive management',
AUDIT_LOG_MASSIVE_MANAGEMENT,
'Copy modules',
false,
false,
@ -74,7 +74,7 @@ if ($do_operation) {
);
} else {
db_pandora_audit(
'Massive management',
AUDIT_LOG_MASSIVE_MANAGEMENT,
'Fail to try copy modules',
false,
false,

View File

@ -31,7 +31,7 @@ check_login();
if (! check_acl($config['id_user'], 0, 'AW')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access massive agent deletion section'
);
include 'general/noaccess.php';
@ -148,9 +148,21 @@ if ($delete) {
];
if ($results) {
db_pandora_audit('Massive management', 'Delete alert action', false, false, json_encode($info));
db_pandora_audit(
AUDIT_LOG_MASSIVE_MANAGEMENT,
'Delete alert action',
false,
false,
json_encode($info)
);
} else {
db_pandora_audit('Massive management', 'Fail try to delete alert action', false, false, json_encode($info));
db_pandora_audit(
AUDIT_LOG_MASSIVE_MANAGEMENT,
'Fail try to delete alert action',
false,
false,
json_encode($info)
);
}
ui_print_result_message(

View File

@ -34,7 +34,7 @@ check_login();
if ((bool) check_acl($config['id_user'], 0, 'AW') === false) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access massive agent deletion section'
);
include 'general/noaccess.php';
@ -149,9 +149,10 @@ if ($delete === true) {
$result = process_manage_delete($id_agents);
$info = '{"Agent":"'.implode(',', $id_agents).'"}';
if ($result === true) {
db_pandora_audit(
'Massive management',
AUDIT_LOG_MASSIVE_MANAGEMENT,
'Delete agent ',
false,
false,
@ -159,7 +160,7 @@ if ($delete === true) {
);
} else {
db_pandora_audit(
'Massive management',
AUDIT_LOG_MASSIVE_MANAGEMENT,
'Fail try to delete agent',
false,
false,

View File

@ -31,7 +31,7 @@ check_login();
if (! check_acl($config['id_user'], 0, 'AW')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access massive alert deletion'
);
include 'general/noaccess.php';
@ -190,10 +190,10 @@ function process_manage_delete($id_alert_template, $id_agents, $module_names)
);
if ($success) {
$contsuccess ++;
$contsuccess++;
}
$conttotal ++;
$conttotal++;
}
ui_print_result_message(
@ -223,9 +223,21 @@ if ($delete) {
];
if ($result) {
db_pandora_audit('Massive management', 'Delete alert ', false, false, json_encode($info));
db_pandora_audit(
AUDIT_LOG_MASSIVE_MANAGEMENT,
'Delete alert ',
false,
false,
json_encode($info)
);
} else {
db_pandora_audit('Massive management', 'Fail try to delete alert', false, false, json_encode($info));
db_pandora_audit(
AUDIT_LOG_MASSIVE_MANAGEMENT,
'Fail try to delete alert',
false,
false,
json_encode($info)
);
}
}

View File

@ -31,7 +31,7 @@ check_login();
if (! check_acl($config['id_user'], 0, 'AW')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access agent massive deletion'
);
include 'general/noaccess.php';
@ -230,7 +230,7 @@ if ($delete) {
foreach ($module_name as $mod_name) {
$result = process_manage_delete($mod_name['nombre'], $id_agent['id_agente'], $modules_selection_mode);
$count ++;
$count++;
$success += (int) $result;
}
}
@ -266,11 +266,16 @@ if ($delete) {
'Agent' => implode(',', $agents_),
'Module' => implode(',', $modules_),
];
if ($result) {
db_pandora_audit('Massive management', 'Delete module ', false, false, json_encode($info));
} else {
db_pandora_audit('Massive management', 'Fail try to delete module', false, false, json_encode($info));
}
$auditMessage = ((bool) $result === true) ? 'Delete module' : 'Fail try to delete module';
db_pandora_audit(
AUDIT_LOG_MASSIVE_MANAGEMENT,
$auditMessage,
false,
false,
json_encode($info)
);
}
$groups = users_get_groups();

View File

@ -31,7 +31,7 @@ check_login();
if (! check_acl($config['id_user'], 0, 'UM')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access massive profile deletion'
);
include 'general/noaccess.php';
@ -96,7 +96,7 @@ if ($delete_profiles) {
} else {
foreach ($users as $user) {
db_pandora_audit(
'User management',
AUDIT_LOG_USER_MANAGEMENT,
'Deleted profile for user '.io_safe_input($user)
);
@ -111,9 +111,21 @@ if ($delete_profiles) {
];
if ($result) {
db_pandora_audit('Massive management', 'Delete profile ', false, false, json_encode($info));
db_pandora_audit(
AUDIT_LOG_MASSIVE_MANAGEMENT,
'Delete profile ',
false,
false,
json_encode($info)
);
} else {
db_pandora_audit('Massive management', 'Fail try to delete profile', false, false, json_encode($info));
db_pandora_audit(
AUDIT_LOG_MASSIVE_MANAGEMENT,
'Fail try to delete profile',
false,
false,
json_encode($info)
);
}
ui_print_result_message(

View File

@ -31,7 +31,7 @@ check_login();
if (! check_acl($config['id_user'], 0, 'AW')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access massive agent deletion section'
);
include 'general/noaccess.php';
@ -189,9 +189,15 @@ if ($update_agents) {
if ($n_deleted > 0) {
db_pandora_audit('Massive management', 'Delete conf file '.$id_agent);
db_pandora_audit(
AUDIT_LOG_MASSIVE_MANAGEMENT,
'Delete conf file '.$id_agent
);
} else {
db_pandora_audit('Massive management', 'Try to delete conf file '.$id_agent);
db_pandora_audit(
AUDIT_LOG_MASSIVE_MANAGEMENT,
'Try to delete conf file '.$id_agent
);
}
@ -383,10 +389,22 @@ if ($update_agents) {
if ($result !== false) {
db_pandora_audit('Massive management', 'Update agent '.$id_agent, false, false, json_encode($info));
db_pandora_audit(
AUDIT_LOG_MASSIVE_MANAGEMENT,
'Update agent '.$id_agent,
false,
false,
json_encode($info)
);
} else {
if (isset($id_agent)) {
db_pandora_audit('Massive management', 'Try to update agent '.$id_agent, false, false, json_encode($info));
db_pandora_audit(
AUDIT_LOG_MASSIVE_MANAGEMENT,
'Try to update agent '.$id_agent,
false,
false,
json_encode($info)
);
}
}

View File

@ -31,7 +31,7 @@ check_login();
if (! check_acl($config['id_user'], 0, 'AW')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access massive module update'
);
include 'general/noaccess.php';
@ -187,9 +187,21 @@ if ($update) {
$info = '{"Modules":"'.implode(',', $modules_).'","Agents":"'.implode(',', $agents_).'"}';
if ($success > 0) {
db_pandora_audit('Massive management', 'Edit module', false, false, $info);
db_pandora_audit(
AUDIT_LOG_MASSIVE_MANAGEMENT,
'Edit module',
false,
false,
$info
);
} else {
db_pandora_audit('Massive management', 'Fail try to edit module', false, false, $info);
db_pandora_audit(
AUDIT_LOG_MASSIVE_MANAGEMENT,
'Fail try to edit module',
false,
false,
$info
);
}
}

View File

@ -14,7 +14,7 @@
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
*
* ============================================================================
* Copyright (c) 2005-2021 Artica Soluciones Tecnologicas
* Copyright (c) 2005-2022 Artica Soluciones Tecnologicas
* Please see http://pandorafms.org for full contribution list
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@ -33,7 +33,7 @@ check_login();
if (! check_acl($config['id_user'], 0, 'AW')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access massive plugin edition section'
);
include 'general/noaccess.php';
@ -45,7 +45,7 @@ $agent_ids = get_parameter('agent_ids', []);
$module_ids = get_parameter('module_ids', []);
$module_names = get_parameter('module_names', []);
if (is_ajax()) {
if (is_ajax() === true) {
$get_plugin = (bool) get_parameter('get_plugin');
$get_agents = (bool) get_parameter('get_agents');
$get_modules = (bool) get_parameter('get_modules');
@ -54,21 +54,21 @@ if (is_ajax()) {
if ($get_plugin) {
$plugin = db_get_row('tplugin', 'id', $plugin_id);
if (empty($plugin)) {
if (empty($plugin) === true) {
$plugin = [];
}
if (isset($plugin['description'])) {
if (isset($plugin['description']) === true) {
$plugin['description'] = io_safe_output($plugin['description']);
$plugin['description'] = str_replace("\n", '<br>', $plugin['description']);
}
if (isset($plugin['macros'])) {
if (isset($plugin['macros']) === true) {
$macros = json_decode($plugin['macros'], true);
if (!empty($macros)) {
if (empty($macros) === false) {
$macros = array_values($macros);
if (!empty($macros)) {
if (empty($macros) === false) {
$plugin['macros'] = $macros;
}
}
@ -79,15 +79,15 @@ if (is_ajax()) {
}
if ($get_agents) {
$sql = "SELECT ta.id_agente, ta.alias AS agent_alias,
$sql = 'SELECT ta.id_agente, ta.alias AS agent_alias,
tam.nombre AS module_name
FROM tagente ta
INNER JOIN tagente_modulo tam
ON ta.id_agente = tam.id_agente
AND tam.id_plugin = $plugin_id
ORDER BY ta.alias, tam.nombre";
AND tam.id_plugin = '.$plugin_id.'
ORDER BY ta.alias, tam.nombre';
$result = db_get_all_rows_sql($sql);
if (empty($result)) {
if (empty($result) === true) {
$result = [];
}
@ -99,7 +99,7 @@ if (is_ajax()) {
$name = io_safe_output($value['agent_alias']);
$module_name = $value['module_name'];
if (!empty($current_element) && $current_element['id'] !== $id) {
if (empty($current_element) === false && $current_element['id'] !== $id) {
$agents[] = $current_element;
$current_element = [];
}
@ -107,14 +107,14 @@ if (is_ajax()) {
$current_element['id'] = $id;
$current_element['name'] = $name;
if (!isset($current_element['module_names'])) {
if (isset($current_element['module_names']) === false) {
$current_element['module_names'] = [];
}
$current_element['module_names'][] = $module_name;
}
if (!empty($current_element)) {
if (empty($current_element) === false) {
$agents[] = $current_element;
}
@ -131,7 +131,7 @@ if (is_ajax()) {
];
$module_plugin_macros = db_get_all_rows_filter('tagente_modulo', $filter, $fields);
$module_plugin_macros = io_safe_output($module_plugin_macros);
if (empty($module_plugin_macros)) {
if (empty($module_plugin_macros) === true) {
$module_plugin_macros = [];
}
@ -139,9 +139,9 @@ if (is_ajax()) {
$module_plugin_macros,
function ($carry, $item) {
$macros = json_decode($item['macros'], true);
if (!empty($macros)) {
if (empty($macros) === false) {
$macros = array_values($macros);
if (!empty($macros)) {
if (empty($macros) === false) {
$carry[] = $macros;
}
}
@ -160,28 +160,28 @@ if (is_ajax()) {
$update = (bool) get_parameter('update');
if ($update) {
if ($update === true) {
try {
$plugin = db_get_row('tplugin', 'id', $plugin_id);
// Macros retrieved from the plugin definition
// Macros retrieved from the plugin definition.
$plugin_macros = [];
if (isset($plugin['macros'])) {
if (isset($plugin['macros']) === true) {
$plugin_macros = json_decode($plugin['macros'], true);
if (!empty($plugin_macros)) {
if (empty($plugin_macros) === false) {
$plugin_macros = array_values($plugin_macros);
}
}
// Error
// Error.
if (empty($plugin_macros)) {
throw new Exception(__('Error retrieving the plugin macros'));
}
// Macros returned by the form
// Macros returned by the form.
$macros = get_parameter('macros', []);
// Error
if (empty($macros)) {
// Error.
if (empty($macros) === true) {
throw new Exception(__('Error retrieving the modified macros'));
}
@ -199,36 +199,36 @@ if ($update) {
$filter,
$fields
);
if (empty($module_plugin_macros)) {
if (empty($module_plugin_macros) === true) {
$module_plugin_macros = [];
}
// Error
if (empty($module_plugin_macros)) {
// Error.
if (empty($module_plugin_macros) === true) {
throw new Exception(__('Error retrieving the module plugin macros'));
}
// Begin transaction
// db_process_sql_begin();
// db_process_sql_begin();.
$errors = 0;
$count = 0;
foreach ($module_plugin_macros as $item) {
$module_id = $item['id_agente_modulo'];
$module_macros_str = $item['macros'];
// Macros retrieved from the agent module
// Macros retrieved from the agent module.
$module_macros = json_decode($module_macros_str, true);
// Error
if (empty($module_macros)) {
// Error.
if (empty($module_macros) === true) {
throw new Exception(
__('Error retrieving the module plugin macros data')
);
}
// Get the new module plugin macros
// Get the new module plugin macros.
$result_macros = array_map(
function ($item) use ($macros, $module_macros) {
$result = [
@ -238,7 +238,7 @@ if ($update) {
'hide' => $item['hide'],
];
// Get the default value os the module plugin macro
// Get the default value os the module plugin macro.
$default = array_reduce(
$module_macros,
function ($carry, $module_macro) use ($result) {
@ -259,41 +259,48 @@ if ($update) {
$plugin_macros
);
// Error
if (empty($result_macros)) {
// Error.
if (empty($result_macros) === true) {
throw new Exception(__('Error building the new macros'));
}
$module_macros = io_json_mb_encode($result_macros, JSON_FORCE_OBJECT);
if (empty($module_macros)) {
if (empty($module_macros) === true) {
$module_macros = $module_macros_str;
}
$values = ['macros' => $module_macros];
$where = ['id_agente_modulo' => $module_id];
// $result = db_process_sql_update('tagente_modulo', $values, $where, 'AND', false);
$result = db_process_sql_update('tagente_modulo', $values, $where);
if (!$result) {
if ((bool) $result === false) {
$errors++;
} else {
$count += $result;
}
}
// if (!$errors) {
// db_process_sql_commit();
// }
// else {
// db_process_sql_rollback();
// }
// Result message
// Result message.
$auditMessage = sprintf(
'Plugin #%s modules updated',
$plugin_id
);
ui_print_info_message(sprintf(__('%d modules updated'), $count));
} catch (Exception $e) {
$auditMessage = sprintf(
'Try to update plugin #%s modules: %s',
$plugin_id,
$e->getMessage()
);
ui_print_error_message($e->getMessage());
}
db_pandora_audit(
AUDIT_LOG_MASSIVE_MANAGEMENT,
$auditMessage
);
}
$table = new StdClass();
@ -302,7 +309,7 @@ $table->width = '100%';
$table->rowstyle = [];
$table->data = [];
// Plugins
// Plugins.
$filter = ['order' => 'name'];
$fields = [
'id',
@ -341,10 +348,10 @@ $row[] = $plugins_select;
$table->data['plugin-ids-row'] = $row;
// Agents & modules
// Agents & modules.
$row = [];
// Agents
// Agents.
$agents_select = html_print_select(
$agent_ids,
'agent_ids[]',
@ -360,9 +367,7 @@ $agents_select = html_print_select(
$row[] = '<b>'.__('Agents').'</b>';
$row[] = $agents_select;
// Modules
// $modules_select = html_print_select ($module_ids, 'module_ids',
// false, '', '', 0, true, true, false);
// Modules.
$modules_select = html_print_select(
$module_names,
'module_names[]',
@ -393,7 +398,7 @@ echo '</form>';
?>
<script type="text/javascript">
var $table = $('table#massive_plugin_edition'),
$form = $('form#form-massive_plugin_edition'),
$submitButton = $('input#submit-upd-btn'),
@ -401,7 +406,7 @@ echo '</form>';
$pluginsSelect = $('select#plugin_id'),
$agentsSelect = $('select#agent_ids'),
$modulesSelect = $('select#module_names');
var agents = [],
ajaxPage = "<?php echo $config['homeurl'].'/'; ?>ajax.php",
canSubmit = false,
@ -409,15 +414,15 @@ echo '</form>';
agentsXHR,
modulesXHR,
modulePluginMacrosXHR;
var allowSubmit = function (val) {
if (typeof val === 'undefined')
val = true;
canSubmit = val;
$submitButton.prop('disabled', !val);
}
var clearModulePluginMacrosValues = function () {
$('input.plugin-macro')
.val('')
@ -428,47 +433,47 @@ echo '</form>';
.siblings('button')
.remove();
}
var hidePluginData = function () {
$('table#massive_plugin_edition tr.plugin-data-row').hide();
}
var clearPluginData = function () {
hidePluginData();
clearModulePluginMacrosValues();
$('table#massive_plugin_edition tr.plugin-data-row').remove();
}
var clearAgentsData = function () {
$agentsSelect.empty();
}
var clearModulesData = function () {
$modulesSelect.empty();
}
// Creates the plugin info and macros columns
// Creates the plugin info and macros columns.
var fillPlugin = function (plugin) {
clearPluginData();
if (typeof plugin === 'undefined'
|| typeof plugin.execute === 'undefined'
|| typeof plugin.parameters === 'undefined'
|| typeof plugin.description === 'undefined'
|| typeof plugin.macros === 'undefined')
throw new Error('<?php echo __('Invalid plugin data'); ?>');
if (_.isString(plugin.macros)) {
plugin.macros = JSON.parse(plugin.macros);
}
var $commandRow = $('<tr></tr>'),
$commandCellTitle = $('<td></td>'),
$commandCellData = $('<td></td>'),
$descriptionRow = $('<tr></tr>'),
$descriptionCellTitle = $('<td></td>'),
$descriptionCellData = $('<td></td>');
$commandCellTitle
.addClass('plugin-data-cell')
.css('font-weight', 'bold')
@ -482,7 +487,7 @@ echo '</form>';
.addClass('plugin-data-row')
.css('vertical-align', 'top')
.append($commandCellTitle, $commandCellData);
$descriptionCellTitle
.addClass('plugin-data-cell')
.css('font-weight', 'bold')
@ -495,16 +500,16 @@ echo '</form>';
.addClass('plugin-data-row')
.css('vertical-align', 'top')
.append($descriptionCellTitle, $descriptionCellData);
$table.append($commandRow, $descriptionRow);
_.each(plugin.macros, function (macro, index) {
var $macroRow = $('<tr></tr>'),
$macroCellTitle = $('<td></td>'),
$macroCellData = $('<td></td>'),
$macroInput = $('<input>'),
$macroIdentifier = $('<span></span>');
$macroInput
.prop('id', macro.macro)
.prop('name', 'macros[' + macro.macro + ']')
@ -526,12 +531,12 @@ echo '</form>';
.bind('focus', function() {
$(this).autocomplete("search");
});
$macroIdentifier
.css('font-weight', 'normal')
.css('padding-left', '5px')
.append('(' + macro.macro + ')');
$macroCellTitle
.addClass('plugin-data-cell')
.css('font-weight', 'bold')
@ -544,22 +549,22 @@ echo '</form>';
$macroRow
.addClass('plugin-data-row')
.append($macroCellTitle, $macroCellData);
$table.append($macroRow);
});
}
var removeMultipleElementsButton = function (element) {
element
.css('width', '99%')
.siblings('button')
.remove();
}
// This button removes the special properties of the multiple values macro input
var addMultipleElementsButton = function (element) {
$button = $('<button>');
$button
.css('display', 'inline')
.css('margin-left', '3px')
@ -567,49 +572,49 @@ echo '</form>';
.click(function (e) {
e.stopImmediatePropagation();
e.preventDefault();
if (!confirm("<?php echo __('Are you sure?'); ?>"))
return false;
removeMultipleElementsButton(element);
element
.val('')
.data('multiple_values', false)
.prop('placeholder', '');
});
element
.css('width', '90%')
.css('display', 'inline')
.parent()
.append($button);
}
// Fills the module plugin macros values
var fillPluginMacros = function (moduleMacros) {
clearModulePluginMacrosValues();
if (!(moduleMacros instanceof Array))
throw new Error('<?php echo __('Invalid macros array'); ?>');
$("input.plugin-macro").each(function(index, el) {
var id = $(el).prop('id');
var values = _.chain(moduleMacros)
.flatten()
.where({ macro: id })
.pluck('value')
.uniq()
.value();
$(el).prop('disabled', false);
// Remove the [""] element
if (values.length == 1 && _.first(values) === '') {
values = [];
}
if (values.length == 1) {
$(el).val(_.first(values));
}
@ -622,9 +627,9 @@ echo '</form>';
else {
$(el).val('');
}
if ($(el).prop('type') !== 'password' && values.length > 0) {
$(el).autocomplete("option", {
disabled: false,
source: values
@ -642,14 +647,14 @@ echo '</form>';
.css('padding-right', '20px')
.css('text-align', 'left');
}
// Fills the agents select
var fillAgents = function (agents, selected) {
clearAgentsData();
if (!(agents instanceof Array))
throw new Error('<?php echo __('Invalid agents array'); ?>');
_.each(agents, function (agent, index) {
if (typeof agent.id !== 'undefined' && typeof agent.name !== 'undefined') {
$('<option>')
@ -658,7 +663,7 @@ echo '</form>';
.prop('selected', function () {
if (typeof selected !== 'undefined')
return false;
return _.contains(selected, agent.id.toString());
})
.appendTo($agentsSelect);
@ -669,14 +674,14 @@ echo '</form>';
}
});
}
// Fills the modules select
var fillModules = function (modules, selected) {
clearModulesData();
if (!(modules instanceof Array))
throw new Error('<?php echo __('Invalid modules array'); ?>');
_.each(modules, function (module, index) {
if (_.isString(module)) {
$('<option>')
@ -685,7 +690,7 @@ echo '</form>';
.prop('selected', function () {
if (typeof selected === 'undefined')
return false;
return _.contains(selected, module);
})
.appendTo($modulesSelect);
@ -697,7 +702,7 @@ echo '</form>';
.prop('selected', function () {
if (typeof selected === 'undefined')
return false;
return _.contains(selected, module.name);
})
.appendTo($modulesSelect);
@ -707,9 +712,9 @@ echo '</form>';
return false;
}
});
}
var processGet = function (params, callback) {
return jQuery.post(ajaxPage, params, 'json')
.done(function (data, textStatus, jqXHR) {
@ -726,34 +731,34 @@ echo '</form>';
callback(errorThrown);
})
.always(function (jqXHR, textStatus) {
});
}
var getPlugin = function (pluginID, callback) {
var params = {
page: 'godmode/massive/massive_edit_plugins',
get_plugin: 1,
plugin_id: pluginID
};
pluginXHR = processGet(params, function (error, data) {
callback(error, data);
});
}
var getAgents = function (pluginID, callback) {
var params = {
page: 'godmode/massive/massive_edit_plugins',
get_agents: 1,
plugin_id: pluginID
};
agentsXHR = processGet(params, function (error, data) {
callback(error, data);
});
}
var getModules = function (pluginID, agentIDs, callback) {
var params = {
page: 'godmode/massive/massive_edit_plugins',
@ -761,12 +766,12 @@ echo '</form>';
plugin_id: pluginID,
agent_ids: agentIDs
};
modulesXHR = processGet(params, function (error, data) {
callback(error, data);
});
}
var getModulePluginMacros = function (pluginID, agentIDs, moduleNames, callback) {
var params = {
page: 'godmode/massive/massive_edit_plugins',
@ -775,17 +780,17 @@ echo '</form>';
agent_ids: agentIDs,
module_names: moduleNames
};
modulePluginMacrosXHR = processGet(params, function (error, data) {
callback(error, data);
});
}
// Extract the a module names array from the agents
var moduleNamesFromAgents = function (agents) {
if (!(agents instanceof Array))
throw new Error('<?php echo __('Invalid agents array'); ?>');
var moduleNames = _.map(agents, function (agent) {
return agent['module_names'];
});
@ -794,28 +799,28 @@ echo '</form>';
.flatten()
.uniq()
.value();
return moduleNames;
}
var agentsFilteredWithAgents = function (agents, agentIDs) {
if (!(agents instanceof Array))
throw new Error('<?php echo __('Invalid agents array'); ?>');
var agentsFiltered = _.filter(agents, function (agent) {
return _.contains(agentIDs, agent.id.toString());
});
// Hack. Is possible that find returns an object instead of an array
// when the only array item is an object. Probably an Underscore.js bug
if (typeof agentsFiltered !== 'undefined'
&& !(agentsFiltered instanceof Array)
&& (agentsFiltered instanceof Object))
agentsFiltered = [agentsFiltered];
return agentsFiltered;
}
var resetController = function () {
if (typeof pluginXHR !== 'undefined') {
pluginXHR.abort();
@ -833,54 +838,54 @@ echo '</form>';
modulePluginMacrosXHR.abort();
modulePluginMacrosXHR = undefined;
}
allowSubmit(false);
agents = [];
hideSpinner();
clearPluginData();
$agentModulesRow.hide();
clearAgentsData();
clearModulesData();
}
var errorHandler = function (error) {
hideSpinner();
console.log("<?php echo __('Error'); ?>: " + error.message);
// alert("<?php echo __('Error'); ?>: " + err.message);
// Init the plugin id select
$pluginsSelect.val(0).change();
}
$pluginsSelect.change(function (e) {
allowSubmit(false);
// Plugin id
var currentVal = $(this).val();
resetController();
if (currentVal == 0)
return;
try {
showSpinner();
// This asyc functions are executed at the same time
getPlugin(currentVal, function (error, data) {
if (error) {
errorHandler(error);
return;
}
plugin = data;
try {
fillPlugin(plugin);
// Hide spinner only if the another call has finished
if (typeof agentsXHR === 'undefined'
|| agentsXHR.state() === 'resolved'
@ -893,21 +898,21 @@ echo '</form>';
return;
}
});
// This asyc functions are executed at the same time
getAgents(currentVal, function (error, data) {
if (error) {
errorHandler(error);
return;
}
// This agent variable is global to this script scope
agents = data;
try {
if (agents.length > 0) {
fillAgents(agents);
$agentModulesRow.show();
}
else {
@ -915,14 +920,14 @@ echo '</form>';
contents.html = '<?php echo __('There are no modules using this plugin'); ?>';
contents.title = '<?php echo __('Massive operations'); ?>';
showMassiveModal(contents);
// Abort the another call
if (typeof pluginXHR !== 'undefined') {
pluginXHR.abort();
pluginXHR = undefined;
}
}
// Hide spinner only if the another call has finished
if (typeof pluginXHR === 'undefined'
|| pluginXHR.state() === 'resolved'
@ -940,23 +945,23 @@ echo '</form>';
errorHandler(err);
return;
}
}).change(); // Trigger the change
$agentsSelect.change(function (e) {
allowSubmit(false);
var ids = $(this).val();
var modulesSelected = $modulesSelect.val();
try {
var agentsFiltered = agentsFilteredWithAgents(agents, ids);
var modules = moduleNamesFromAgents(agentsFiltered);
for (var i = 0; i < modules.length; i++) {
modules[i] = htmlDecode(modules[i]);
}
fillModules(modules, modulesSelected);
}
catch (err) {
@ -964,42 +969,42 @@ echo '</form>';
return;
}
});
$modulesSelect.change(function (e) {
allowSubmit(false);
var pluginID = $pluginsSelect.val();
var moduleNames = $(this).val();
var agentIDs = $agentsSelect.val();
if (_.isNull(moduleNames) || _.isUndefined(moduleNames)) {
e.preventDefault();
return false;
}
try {
showSpinner();
clearModulePluginMacrosValues();
getModulePluginMacros(pluginID, agentIDs, moduleNames, function (error, data) {
if (error) {
errorHandler(error);
return;
}
try {
var modulePluginMacros = data;
if (_.isArray(modulePluginMacros) && modulePluginMacros.length > 0) {
fillPluginMacros(modulePluginMacros);
allowSubmit(true);
}
else {
throw new Error('<?php echo __('There was a problem loading the module plugin macros data'); ?>');
}
hideSpinner();
}
catch (err) {
@ -1013,7 +1018,7 @@ echo '</form>';
return;
}
});
$form.submit(function(e) {
if (!canSubmit) {
e.stopImmediatePropagation();
@ -1023,20 +1028,20 @@ echo '</form>';
$form.find('input.plugin-macro')
.filter(function() {
var val = $(this).val();
if ($(this).data("multiple_values") == true
&& (typeof val === 'undefined'
|| val.length == 0))
return true;
else
return false;
}).prop('disabled', true);
}
});
$(document).ready (function () {
});
</script>

View File

@ -31,7 +31,7 @@ check_login();
if (! check_acl($config['id_user'], 0, 'AW')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access massive alert deletion'
);
include 'general/noaccess.php';
@ -102,11 +102,15 @@ switch ($action) {
ui_print_result_message($result, __('Successfully enabled'), __('Could not be enabled'));
$info = '{"Alert":"'.implode(',', $id_disabled_alerts).'"}';
if ($result) {
db_pandora_audit('Massive management', 'Enable alert', false, false, $info);
} else {
db_pandora_audit('Massive management', 'Fail try to enable alert', false, false, $info);
}
$auditMessage = ((bool) $result === true) ? 'Enable alert' : 'Fail try to enable alert';
db_pandora_audit(
AUDIT_LOG_MASSIVE_MANAGEMENT,
$auditMessage,
false,
false,
$info
);
break;
case 'disable_alerts':
@ -120,11 +124,15 @@ switch ($action) {
ui_print_result_message($result, __('Successfully disabled'), __('Could not be disabled'));
$info = '{"Alert":"'.implode(',', $id_enabled_alerts).'"}';
if ($result) {
db_pandora_audit('Massive management', 'Disable alert', false, false, $info);
} else {
db_pandora_audit('Massive management', 'Fail try to Disable alert', false, false, $info);
}
$auditMessage = ((bool) $result === true) ? 'Disable alert' : 'Fail try to disable alert';
db_pandora_audit(
AUDIT_LOG_MASSIVE_MANAGEMENT,
$auditMessage,
false,
false,
$info
);
break;
default:

View File

@ -33,7 +33,7 @@ global $config;
if (! check_acl($config['id_user'], 0, 'AW')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access massive operation section'
);
include 'general/noaccess.php';

View File

@ -31,7 +31,7 @@ check_login();
if (! check_acl($config['id_user'], 0, 'AW')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access massive alert deletion'
);
include 'general/noaccess.php';
@ -103,9 +103,21 @@ switch ($action) {
$info = '{"Alert":"'.implode(',', $id_standby_alerts).'"}';
if ($result) {
db_pandora_audit('Massive management', 'Set off standby alerts', false, false, $info);
db_pandora_audit(
AUDIT_LOG_MASSIVE_MANAGEMENT,
'Set off standby alerts',
false,
false,
$info
);
} else {
db_pandora_audit('Massive management', 'Fail try to set off standby alerts', false, false, $info);
db_pandora_audit(
AUDIT_LOG_MASSIVE_MANAGEMENT,
'Fail try to set off standby alerts',
false,
false,
$info
);
}
break;
@ -121,9 +133,21 @@ switch ($action) {
$info = '{"Alert":"'.implode(',', $id_not_standby_alerts).'"}';
if ($result) {
db_pandora_audit('Massive management', 'Set on standby alerts', false, false, $info);
db_pandora_audit(
AUDIT_LOG_MASSIVE_MANAGEMENT,
'Set on standby alerts',
false,
false,
$info
);
} else {
db_pandora_audit('Massive management', 'Fail try to set on standby alerts', false, false, $info);
db_pandora_audit(
AUDIT_LOG_MASSIVE_MANAGEMENT,
'Fail try to set on standby alerts',
false,
false,
$info
);
}
break;

View File

@ -32,7 +32,10 @@ check_login();
if (! check_acl($config['id_user'], 0, 'AR')) {
// Doesn't have access to this page.
db_pandora_audit('ACL Violation', 'Trying to access Module Library View');
db_pandora_audit(
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Module Library View'
);
include 'general/noaccess.php';
exit;
}

View File

@ -25,7 +25,7 @@ check_login();
if (! check_acl($config['id_user'], 0, 'PM')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Network Profile Management'
);
include 'general/noaccess.php';

View File

@ -20,7 +20,7 @@ enterprise_hook('open_meta_frame');
if (! check_acl($config['id_user'], 0, 'PM') && ! check_acl($config['id_user'], 0, 'AW')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access SNMP Group Management'
);
include 'general/noaccess.php';
@ -72,11 +72,12 @@ if ($create) {
'parent' => $parent,
]
);
if ($result) {
db_pandora_audit('Module management', "Create component group #$result");
} else {
db_pandora_audit('Module management', 'Fail try to create component group');
}
$auditMessage = ((bool) $result === true) ? sprintf('Create component group #%s', $result) : 'Fail try to create component group';
db_pandora_audit(
AUDIT_LOG_MODULE_MANAGEMENT,
$auditMessage
);
ui_print_result_message(
$result,
@ -101,11 +102,16 @@ if ($update) {
],
['id_sg' => $id]
);
if ($result) {
db_pandora_audit('Module management', "Update component group #$id");
} else {
db_pandora_audit('Module management', "Fail try to update component group #$id");
}
$auditMessage = ((bool) $result === true) ? 'Update component group' : 'Fail try to update component group';
db_pandora_audit(
AUDIT_LOG_MODULE_MANAGEMENT,
sprintf(
'%s #%s',
$auditMessage,
$id
)
);
ui_print_result_message(
$result,
@ -131,11 +137,15 @@ if ($delete) {
$result = false;
}
if ($result) {
db_pandora_audit('Module management', "Delete component group #$id");
} else {
db_pandora_audit('Module management', "Fail try to delete component group #$id");
}
$auditMessage = ((bool) $result === true) ? 'Delete component group' : 'Fail try to delete component group';
db_pandora_audit(
AUDIT_LOG_MODULE_MANAGEMENT,
sprintf(
'%s #%s',
$auditMessage,
$id
)
);
ui_print_result_message(
$result,
@ -168,17 +178,16 @@ if ($multiple_delete) {
}
$str_ids = implode(',', $ids);
if ($result) {
db_pandora_audit(
'Module management',
"Multiple delete component group: $str_ids"
);
} else {
db_pandora_audit(
'Module management',
"Fail try to delete component group: $str_ids"
);
}
$auditMessage = ((bool) $result === true) ? 'Multiple delete component group' : 'Fail try to delete multiple component group';
db_pandora_audit(
AUDIT_LOG_MODULE_MANAGEMENT,
sprintf(
'%s #%s',
$auditMessage,
$str_ids
)
);
ui_print_result_message(
$result,

View File

@ -18,7 +18,7 @@ check_login();
if (! check_acl($config['id_user'], 0, 'PM') && ! check_acl($config['id_user'], 0, 'AW')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access SNMO Groups Management'
);
include 'general/noaccess.php';

View File

@ -34,7 +34,7 @@ enterprise_hook('open_meta_frame');
if (! check_acl($config['id_user'], 0, 'PM') && ! check_acl($config['id_user'], 0, 'AW')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Agent Management'
);
include 'general/noaccess.php';
@ -415,7 +415,7 @@ if ($is_management_allowed === true && $create_component) {
if ($id === false || !$id) {
db_pandora_audit(
'Module management',
AUDIT_LOG_MODULE_MANAGEMENT,
'Fail try to create remote component'
);
@ -431,7 +431,10 @@ if ($is_management_allowed === true && $create_component) {
return;
}
db_pandora_audit('Module management', 'Create network component #'.$id);
db_pandora_audit(
AUDIT_LOG_MODULE_MANAGEMENT,
'Create network component #'.$id
);
ui_print_success_message(__('Created successfully'));
$id = 0;
}
@ -516,7 +519,7 @@ if ($is_management_allowed === true && $update_component) {
if ($result === false || !$result) {
db_pandora_audit(
'Module management',
AUDIT_LOG_MODULE_MANAGEMENT,
'Fail try to update network component #'.$id
);
ui_print_error_message(__('Could not be updated'));
@ -524,7 +527,10 @@ if ($is_management_allowed === true && $update_component) {
return;
}
db_pandora_audit('Module management', 'Update network component #'.$id);
db_pandora_audit(
AUDIT_LOG_MODULE_MANAGEMENT,
'Update network component #'.$id
);
ui_print_success_message(__('Updated successfully'));
$id = 0;
@ -535,17 +541,11 @@ if ($is_management_allowed === true && $delete_component) {
$result = network_components_delete_network_component($id);
if ($result) {
db_pandora_audit(
'Module management',
'Delete network component #'.$id
);
} else {
db_pandora_audit(
'Module management',
'Fail try to delete network component #'.$id
);
}
$auditMessage = ((bool) $result === true) ? 'Delete network component' : 'Fail try to delete network component';
db_pandora_audit(
AUDIT_LOG_MODULE_MANAGEMENT,
sprintf('%s #%s', $auditMessage, $id)
);
ui_print_result_message(
$result,
@ -567,17 +567,11 @@ if ($is_management_allowed === true && $multiple_delete) {
}
$str_ids = implode(',', $ids);
if ($result) {
db_pandora_audit(
'Module management',
'Multiple delete network component:'.$str_ids
);
} else {
db_pandora_audit(
'Module management',
'Fail try to delete network component:'.$str_ids
);
}
$auditMessage = ((bool) $result === true) ? 'Multiple delete network component' : 'Fail try to delete multiple network component';
db_pandora_audit(
AUDIT_LOG_MODULE_MANAGEMENT,
sprintf('%s :%s', $auditMessage, $str_ids)
);
ui_print_result_message(
$result,

View File

@ -33,7 +33,7 @@ check_login();
if (! check_acl($config['id_user'], 0, 'PM') && ! check_acl($config['id_user'], 0, 'AW')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Agent Management'
);
include 'general/noaccess.php';

View File

@ -18,7 +18,7 @@ include_javascript_d3();
if (! check_acl($config['id_user'], 0, 'PM') && ! check_acl($config['id_user'], 0, 'AW')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Agent Management'
);
include 'general/noaccess.php';

View File

@ -33,7 +33,7 @@ check_login();
if (! check_acl($config['id_user'], 0, 'PM') && ! check_acl($config['id_user'], 0, 'AW')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Agent Management'
);
include 'general/noaccess.php';

View File

@ -19,7 +19,10 @@ include_javascript_d3();
if (!check_acl($config['id_user'], 0, 'PM')
&& !check_acl($config['id_user'], 0, 'AW')
) {
db_pandora_audit('ACL Violation', 'Trying to access Agent Management');
db_pandora_audit(
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Agent Management'
);
include 'general/noaccess.php';
return;
}

View File

@ -18,7 +18,7 @@ check_login();
if (! check_acl($config['id_user'], 0, 'PM')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Agent Management'
);
include 'general/noaccess.php';

View File

@ -18,7 +18,7 @@ check_login();
if (! check_acl($config['id_user'], 0, 'PM')) {
db_pandora_audit(
'ACL Violation',
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Network Profile Management'
);
include 'general/noaccess.php';
@ -67,9 +67,15 @@ if ($delete_profile) {
$result = network_profiles_delete_network_profile($id);
if ($result) {
db_pandora_audit('Module management', "Delete module template #$id");
db_pandora_audit(
AUDIT_LOG_MODULE_MANAGEMENT,
'Delete module template #'.$id
);
} else {
db_pandora_audit('Module management', "Fail try to delete module template #$id");
db_pandora_audit(
AUDIT_LOG_MODULE_MANAGEMENT,
'Fail try to delete module template #'.$id
);
}
ui_print_result_message(
@ -92,9 +98,15 @@ if ($multiple_delete) {
$str_ids = implode(',', $ids);
if ($result) {
db_pandora_audit('Module management', "Multiple delete module template: $str_ids");
db_pandora_audit(
AUDIT_LOG_MODULE_MANAGEMENT,
'Multiple delete module template: '.$str_ids
);
} else {
db_pandora_audit('Module management', "Fail try to delete module template: $str_ids");
db_pandora_audit(
AUDIT_LOG_MODULE_MANAGEMENT,
'Fail try to delete module template: '.$str_ids
);
}
ui_print_result_message(

Some files were not shown because too many files have changed in this diff Show More