Compare commits
No commits in common. "master" and "pristine-tar" have entirely different histories.
master
...
pristine-t
51
admin.php
51
admin.php
@ -1,51 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Admin main site
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$preRelPath = strstr(filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING), 'admin.php', true);
|
|
||||||
$preBasePath = strstr(filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING), 'admin.php', true);
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 1;
|
|
||||||
$preContent = 'admin/mainpages.htm.tpl';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Include Content
|
|
||||||
// ===============
|
|
||||||
$conttp->setVariable('TITLE', translate('NagiosQL Administration'));
|
|
||||||
$conttp->parse('header');
|
|
||||||
$conttp->show('header');
|
|
||||||
$conttp->setVariable('DESC', translate('Welcome to NagiosQL, the administration module that can be used to easily '
|
|
||||||
. 'create, modify and delete configuration files for Nagios. The data is stored in a database '
|
|
||||||
. 'and can be written directly to the standard files at any time you want.'));
|
|
||||||
$conttp->parse('main');
|
|
||||||
$conttp->show('main');
|
|
||||||
//
|
|
||||||
// Include footer
|
|
||||||
// ==============
|
|
||||||
$maintp->setVariable('VERSION_INFO', "<a href='https://sourceforge.net/projects/nagiosql/' "
|
|
||||||
. "target='_blank'>NagiosQL</a> $setFileVersion");
|
|
||||||
$maintp->parse('footer');
|
|
||||||
$maintp->show('footer');
|
|
@ -1,47 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Administration overview
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 7;
|
|
||||||
$preContent = 'admin/mainpages.htm.tpl';
|
|
||||||
//
|
|
||||||
// Include preprocessing file
|
|
||||||
// ==========================
|
|
||||||
require $preBasePath. 'functions/prepend_adm.php';
|
|
||||||
//
|
|
||||||
// Include content
|
|
||||||
// ===============
|
|
||||||
$conttp->setVariable('TITLE', translate('Administration'));
|
|
||||||
$conttp->parse('header');
|
|
||||||
$conttp->show('header');
|
|
||||||
$conttp->setVariable('DESC', translate('Functions to administrate NagiosQL V3'));
|
|
||||||
$conttp->parse('main');
|
|
||||||
$conttp->show('main');
|
|
||||||
//
|
|
||||||
// Include Footer
|
|
||||||
// ==============
|
|
||||||
$maintp->setVariable('VERSION_INFO', "<a href='https://sourceforge.net/projects/nagiosql/' "
|
|
||||||
. "target='_blank'>NagiosQL</a> $setFileVersion");
|
|
||||||
$maintp->parse('footer');
|
|
||||||
$maintp->show('footer');
|
|
@ -1,92 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Alarming overview
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 3;
|
|
||||||
$preContent = 'admin/mainpages.htm.tpl';
|
|
||||||
//
|
|
||||||
// Include preprocessing file
|
|
||||||
// ==========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
//
|
|
||||||
// Include content
|
|
||||||
// ===============
|
|
||||||
$conttp->setVariable('TITLE', translate('Alarming'));
|
|
||||||
$conttp->setVariable('DESC', translate('To define contact data, contact templates and contact groups and time '
|
|
||||||
. 'periods.'));
|
|
||||||
$conttp->setVariable('STATISTICS', translate('Statistical datas'));
|
|
||||||
$conttp->setVariable('TYPE', translate('Group'));
|
|
||||||
$conttp->setVariable('ACTIVE', translate('Active'));
|
|
||||||
$conttp->setVariable('INACTIVE', translate('Inactive'));
|
|
||||||
//
|
|
||||||
// Include statistical data
|
|
||||||
// ========================
|
|
||||||
// Get read access groups
|
|
||||||
$strAccess = $myVisClass->getAccessGroups('read');
|
|
||||||
$intGroupId14 = (int)$myDBClass->getFieldData('SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=14');
|
|
||||||
$intGroupId15 = (int)$myDBClass->getFieldData('SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=15');
|
|
||||||
$intGroupId16 = (int)$myDBClass->getFieldData('SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=16');
|
|
||||||
$intGroupId17 = (int)$myDBClass->getFieldData('SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=17');
|
|
||||||
if ($myVisClass->checkAccountGroup($intGroupId14, 'read') == 0) {
|
|
||||||
$conttp->setVariable('NAME', translate('Contact data'));
|
|
||||||
$conttp->setVariable('ACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_contact` '
|
|
||||||
. "WHERE `active`='1' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->setVariable('INACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_contact` '
|
|
||||||
. "WHERE `active`='0' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->parse('statisticrow');
|
|
||||||
}
|
|
||||||
if ($myVisClass->checkAccountGroup($intGroupId15, 'read') == 0) {
|
|
||||||
$conttp->setVariable('NAME', translate('Contact groups'));
|
|
||||||
$conttp->setVariable('ACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_contactgroup` '
|
|
||||||
. "WHERE `active`='1' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->setVariable('INACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_contactgroup` '
|
|
||||||
. "WHERE active='0' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->parse('statisticrow');
|
|
||||||
}
|
|
||||||
if ($myVisClass->checkAccountGroup($intGroupId16, 'read') == 0) {
|
|
||||||
$conttp->setVariable('NAME', translate('Time periods'));
|
|
||||||
$conttp->setVariable('ACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_timeperiod` '
|
|
||||||
. "WHERE `active`='1' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->setVariable('INACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_timeperiod` '
|
|
||||||
. "WHERE `active`='0' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->parse('statisticrow');
|
|
||||||
}
|
|
||||||
if ($myVisClass->checkAccountGroup($intGroupId17, 'read') == 0) {
|
|
||||||
$conttp->setVariable('NAME', translate('Contact templates'));
|
|
||||||
$conttp->setVariable('ACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_contacttemplate` '
|
|
||||||
. "WHERE `active`='1' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->setVariable('INACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_contacttemplate` '
|
|
||||||
. "WHERE `active`='0' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->parse('statisticrow');
|
|
||||||
}
|
|
||||||
$conttp->parse('statistics');
|
|
||||||
$conttp->parse('main');
|
|
||||||
$conttp->show('main');
|
|
||||||
//
|
|
||||||
// Include Footer
|
|
||||||
// ==============
|
|
||||||
$maintp->setVariable('VERSION_INFO', "<a href='https://sourceforge.net/projects/nagiosql/' "
|
|
||||||
. "target='_blank'>NagiosQL</a> $setFileVersion");
|
|
||||||
$maintp->parse('footer');
|
|
||||||
$maintp->show('footer');
|
|
166
admin/cgicfg.php
166
admin/cgicfg.php
@ -1,166 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : File editor cgi.cfg
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 29;
|
|
||||||
$preContent = 'admin/nagioscfg.htm.tpl';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
$intRemoveTmp = 0;
|
|
||||||
$strConfig = '';
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Get configuration set ID
|
|
||||||
// ========================
|
|
||||||
$myConfigClass->getConfigTargets($arrConfigSet);
|
|
||||||
$intConfigId = $arrConfigSet[0];
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'method', $intMethod);
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'nagiosbasedir', $strBaseDir);
|
|
||||||
$strConfigfile = str_replace('//', '/', $strBaseDir. '/cgi.cfg');
|
|
||||||
$strLocalBackup = str_replace('//', '/', $strBaseDir. '/cgi.cfg_old_').date('YmdHis');
|
|
||||||
//
|
|
||||||
// Convert Windows to UNIX
|
|
||||||
// =======================
|
|
||||||
$chkTaFileText = str_replace("\r\n", "\n", $chkTaFileText);
|
|
||||||
//
|
|
||||||
// Process data
|
|
||||||
// ============
|
|
||||||
if (($chkTaFileText != '') && ($arrConfigSet[0] != 0)) {
|
|
||||||
if ($intMethod == 1) {
|
|
||||||
if (file_exists($strBaseDir) && (is_writable($strBaseDir) && is_writable($strConfigfile))) {
|
|
||||||
// Backup config file
|
|
||||||
$intReturn = $myConfigClass->moveFile('nagiosbasic', 'cgi.cfg', $intConfigId);
|
|
||||||
if ($intReturn == 1) {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Write configuration
|
|
||||||
$resFile = fopen($strConfigfile, 'wb');
|
|
||||||
fwrite($resFile, $chkTaFileText);
|
|
||||||
fclose($resFile);
|
|
||||||
$myVisClass->processMessage('<span style="color:green">' .translate('Configuration file successfully '
|
|
||||||
. 'written!'). '</span>', $strInfoMessage);
|
|
||||||
$myDataClass->writeLog(translate('Configuration successfully written:'). ' ' .$strConfigfile);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Cannot open/overwrite the configuration file (check the '
|
|
||||||
. 'permissions)!'), $strErrorMessage);
|
|
||||||
$myDataClass->writeLog(translate('Configuration write failed:'). ' ' .$strConfigfile);
|
|
||||||
}
|
|
||||||
} elseif (($intMethod == 2) || ($intMethod == 3)) {
|
|
||||||
// Backup config file
|
|
||||||
$intReturn1 = $myConfigClass->moveFile('nagiosbasic', 'cgi.cfg', $intConfigId);
|
|
||||||
if ($intReturn1 == 1) {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Write file to temporary
|
|
||||||
$strFileName = tempnam($_SESSION['SETS']['path']['tempdir'], 'nagiosql_cgi');
|
|
||||||
$resFile = fopen($strFileName, 'wb');
|
|
||||||
fwrite($resFile, $chkTaFileText);
|
|
||||||
fclose($resFile);
|
|
||||||
// Copy configuration to remoty system
|
|
||||||
$intReturn2 = $myConfigClass->remoteFileCopy($strConfigfile, $intConfigId, $strFileName, 1);
|
|
||||||
if ($intReturn2 == 0) {
|
|
||||||
$myVisClass->processMessage('<span style="color:green">' .translate('Configuration file successfully '
|
|
||||||
. 'written!'). '</span>', $strInfoMessage);
|
|
||||||
$myDataClass->writeLog(translate('Configuration successfully written:'). ' ' .$strConfigfile);
|
|
||||||
unlink($strFileName);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Cannot open/overwrite the configuration file (check the permissions '
|
|
||||||
. 'on remote system)!'), $strErrorMessage);
|
|
||||||
$myDataClass->writeLog(translate('Configuration write failed (remote):'). ' ' .$strConfigfile);
|
|
||||||
unlink($strFileName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} elseif ($arrConfigSet[0] == 0) {
|
|
||||||
$myVisClass->processMessage(translate('There are no nagios configuration files in common domain, please select a '.
|
|
||||||
'valid domain to edit this files!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Include content
|
|
||||||
// ===============
|
|
||||||
$conttp->setVariable('TITLE', translate('CGI configuration file'));
|
|
||||||
$conttp->setVariable('ACTION_INSERT', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$conttp->setVariable('MAINSITE', $_SESSION['SETS']['path']['base_url']. 'admin.php');
|
|
||||||
foreach ($arrDescription as $elem) {
|
|
||||||
$conttp->setVariable($elem['name'], $elem['string']);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Open configuration
|
|
||||||
// ==================
|
|
||||||
if ($intMethod == 1) {
|
|
||||||
if (file_exists($strConfigfile) && is_readable($strConfigfile)) {
|
|
||||||
$resFile = fopen($strConfigfile, 'rb');
|
|
||||||
if ($resFile) {
|
|
||||||
while (!feof($resFile)) {
|
|
||||||
$strConfig .= fgets($resFile, 1024);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Cannot open the data file (check the permissions)!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
} elseif (($intMethod == 2) || ($intMethod == 3)) {
|
|
||||||
// Write file to temporary
|
|
||||||
$strFileName = tempnam($_SESSION['SETS']['path']['tempdir'], 'nagiosql_cgi');
|
|
||||||
// Copy configuration from remoty system
|
|
||||||
$myConfigClass->strErrorMessage = '';
|
|
||||||
$intReturn = $myConfigClass->remoteFileCopy($strConfigfile, $intConfigId, $strFileName, 0);
|
|
||||||
if ($intReturn == 0) {
|
|
||||||
$resFile = fopen($strFileName, 'rb');
|
|
||||||
if (is_resource($resFile)) {
|
|
||||||
while (!feof($resFile)) {
|
|
||||||
$strConfig .= fgets($resFile, 1024);
|
|
||||||
}
|
|
||||||
unlink($strFileName);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Cannot open the temporary file'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
$myDataClass->writeLog(translate('Configuration read failed (remote):'). ' ' .$strErrorMessage);
|
|
||||||
if (file_exists($strFileName)) {
|
|
||||||
unlink($strFileName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$conttp->setVariable('DAT_NAGIOS_CONFIG', $strConfig);
|
|
||||||
if ($strErrorMessage != '') {
|
|
||||||
$conttp->setVariable('ERRORMESSAGE', $strErrorMessage);
|
|
||||||
}
|
|
||||||
$conttp->setVariable('INFOMESSAGE', $strInfoMessage);
|
|
||||||
// Check access rights for adding new objects
|
|
||||||
if ($myVisClass->checkAccountGroup($prePageKey, 'write') != 0) {
|
|
||||||
$conttp->setVariable('ADD_CONTROL', 'disabled="disabled"');
|
|
||||||
}
|
|
||||||
$conttp->parse('naginsert');
|
|
||||||
$conttp->show('naginsert');
|
|
||||||
//
|
|
||||||
// Process footer
|
|
||||||
// ==============
|
|
||||||
$maintp->setVariable('VERSION_INFO', "<a href='https://sourceforge.net/projects/nagiosql/' "
|
|
||||||
. "target='_blank'>NagiosQL</a> $setFileVersion");
|
|
||||||
$maintp->parse('footer');
|
|
||||||
$maintp->show('footer');
|
|
@ -1,196 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Command definitions
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 18;
|
|
||||||
$preContent = 'admin/checkcommands.htm.tpl';
|
|
||||||
$preListTpl = 'admin/datalist.htm.tpl';
|
|
||||||
$preSearchSession = 'checkcommand';
|
|
||||||
$preTableName = 'tbl_command';
|
|
||||||
$preKeyField = 'command_name';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Add or modify data
|
|
||||||
// ==================
|
|
||||||
if ((($chkModus == 'insert') || ($chkModus == 'modify')) && ($intGlobalWriteAccess == 0)) {
|
|
||||||
$strSQLx = "`$preTableName` SET `$preKeyField`='$chkTfValue1', `command_line`='$chkTfValue2', "
|
|
||||||
. "`command_type`=$chkSelValue1, $preSQLCommon1";
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$strSQL = 'INSERT INTO ' .$strSQLx;
|
|
||||||
} else {
|
|
||||||
$strSQL = 'UPDATE ' .$strSQLx. ' WHERE `id`=' .$chkDataId;
|
|
||||||
}
|
|
||||||
if ($intWriteAccessId == 0) {
|
|
||||||
if (($chkTfValue1 != '') && ($chkTfValue2 != '')) {
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$chkDataId = $intInsertId;
|
|
||||||
}
|
|
||||||
if ($intReturn == 1) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strInfoMessage);
|
|
||||||
$myDataClass->updateStatusTable($preTableName);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$myDataClass->writeLog(translate('New command inserted:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$myDataClass->writeLog(translate('Command modified:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Database entry failed! Not all necessary data filled in!'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Database entry failed! No write access!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
if ($chkModus != 'add') {
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Get date/time of last database and config file manipulation
|
|
||||||
// ===========================================================
|
|
||||||
$intReturn = $myConfigClass->lastModifiedFile($preTableName, $arrTimeData, $strTimeInfoString);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Singe data form
|
|
||||||
// ===============
|
|
||||||
if ($chkModus == 'add') {
|
|
||||||
// Do not show modified time list
|
|
||||||
$intNoTime = 1;
|
|
||||||
// Process access group selection field
|
|
||||||
if (isset($arrModifyData['access_group'])) {
|
|
||||||
$intFieldId = $arrModifyData['access_group'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn = $myVisClass->parseSelectSimple('tbl_group', 'groupname', 'acc_group', 0, $intFieldId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Initial add/modify form definitions
|
|
||||||
$myContentClass->addFormInit($conttp);
|
|
||||||
if ($intDataWarning == 1) {
|
|
||||||
$conttp->setVariable('WARNING', $strDBWarning. '<br>' .translate('Saving not possible!'));
|
|
||||||
}
|
|
||||||
if ($intVersion < 3) {
|
|
||||||
$conttp->setVariable('VERSION_20_VALUE_MUST', 'mselValue1,');
|
|
||||||
}
|
|
||||||
$conttp->setVariable('TITLE', translate('Command definitions'));
|
|
||||||
$conttp->setVariable('NO_TYPE', translate('unclassified'));
|
|
||||||
$conttp->setVariable('CHECK_TYPE', translate('check command'));
|
|
||||||
$conttp->setVariable('MISC_TYPE', translate('misc command'));
|
|
||||||
// Insert data from database in "modify" mode
|
|
||||||
if (isset($arrModifyData) && ($chkSelModify == 'modify')) {
|
|
||||||
// Check relation information to find out locked configuration datasets
|
|
||||||
$intLocked = $myDataClass->infoRelation($preTableName, $arrModifyData['id'], $preKeyField);
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strRelMessage);
|
|
||||||
$strInfo = '<br><span class="redmessage">' .translate('Entry cannot be activated because it is used by '
|
|
||||||
. 'another configuration'). ':</span>';
|
|
||||||
$strInfo .= '<br><span class="greenmessage">' .$strRelMessage. '</span>';
|
|
||||||
// Process data
|
|
||||||
$myContentClass->addInsertData($conttp, $arrModifyData, $intLocked, $strInfo);
|
|
||||||
// Insert command type
|
|
||||||
if ($arrModifyData['command_type'] == 1) {
|
|
||||||
$conttp->setVariable('CHECK_TYPE_SELECTED', 'selected');
|
|
||||||
}
|
|
||||||
if ($arrModifyData['command_type'] == 2) {
|
|
||||||
$conttp->setVariable('MISC_TYPE_SELECTED', 'selected');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$conttp->parse('datainsert');
|
|
||||||
$conttp->show('datainsert');
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// List view
|
|
||||||
// ==========
|
|
||||||
if ($chkModus == 'display') {
|
|
||||||
// Initial list view definitions
|
|
||||||
$myContentClass->listViewInit($mastertp);
|
|
||||||
$mastertp->setVariable('TITLE', translate('Command definitions'));
|
|
||||||
$mastertp->setVariable('FIELD_1', translate('Command name'));
|
|
||||||
$mastertp->setVariable('FIELD_2', translate('Command line'));
|
|
||||||
// Process search string
|
|
||||||
if ($_SESSION['search'][$preSearchSession] != '') {
|
|
||||||
$strSearchTxt = $_SESSION['search'][$preSearchSession];
|
|
||||||
$strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%' "
|
|
||||||
. "OR `command_line` LIKE '%".$strSearchTxt."%')";
|
|
||||||
}
|
|
||||||
// Row sorting
|
|
||||||
$strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir";
|
|
||||||
if ($hidSortBy == 2) {
|
|
||||||
$strOrderString = "ORDER BY `config_id`, `command_line` $hidSortDir";
|
|
||||||
}
|
|
||||||
// Count datasets
|
|
||||||
$strSQL = "SELECT count(*) AS `number` FROM `$preTableName` "
|
|
||||||
. "WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)";
|
|
||||||
$booReturn1 = $myDBClass->hasSingleDataset($strSQL, $arrDataLinesCount);
|
|
||||||
if ($booReturn1 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$intLineCount = (int)$arrDataLinesCount['number'];
|
|
||||||
if ($intLineCount < $chkLimit) {
|
|
||||||
$chkLimit = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Get datasets
|
|
||||||
$strSQL = "SELECT `id`, `$preKeyField`, `command_line`, `register`, `active`, `config_id`, `access_group` "
|
|
||||||
. "FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere "
|
|
||||||
. "AND `access_group` IN ($strAccess) $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
|
||||||
$booReturn2 = $myDBClass->hasDataArray($strSQL, $arrDataLines, $intDataCount);
|
|
||||||
if ($booReturn2 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process data
|
|
||||||
$myContentClass->listData($mastertp, $arrDataLines, $intDataCount, $intLineCount, $preKeyField, 'command_line', 40);
|
|
||||||
}
|
|
||||||
// Show messages
|
|
||||||
$myContentClass->showMessages(
|
|
||||||
$mastertp,
|
|
||||||
$strErrorMessage,
|
|
||||||
$strInfoMessage,
|
|
||||||
$strConsistMessage,
|
|
||||||
$arrTimeData,
|
|
||||||
$strTimeInfoString,
|
|
||||||
$intNoTime
|
|
||||||
);
|
|
||||||
//
|
|
||||||
// Process footer
|
|
||||||
// ==============
|
|
||||||
$myContentClass->showFooter($maintp, $setFileVersion);
|
|
@ -1,90 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Command line visualization
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$preNoMain = 1;
|
|
||||||
//
|
|
||||||
// Include preprocessing file
|
|
||||||
// ==========================
|
|
||||||
require $preBasePath. 'functions/prepend_adm.php';
|
|
||||||
$strCommandLine = ' ';
|
|
||||||
$intCount = 0;
|
|
||||||
//
|
|
||||||
// Get database values
|
|
||||||
// ===================
|
|
||||||
if (isset($_GET['cname']) && ($_GET['cname'] != '')) {
|
|
||||||
$strResult = $myDBClass->getFieldData("SELECT command_line FROM tbl_command WHERE id='".
|
|
||||||
filter_var($_GET['cname'], FILTER_SANITIZE_NUMBER_INT)."'");
|
|
||||||
if (($strResult != false) && ($strResult != '')) {
|
|
||||||
$strCommandLine = $strResult;
|
|
||||||
$intCount = substr_count($strCommandLine, 'ARG');
|
|
||||||
if (substr_count($strCommandLine, 'ARG8') != 0) {
|
|
||||||
$intCount = 8;
|
|
||||||
} elseif (substr_count($strCommandLine, 'ARG7') != 0) {
|
|
||||||
$intCount = 7;
|
|
||||||
} elseif (substr_count($strCommandLine, 'ARG6') != 0) {
|
|
||||||
$intCount = 6;
|
|
||||||
} elseif (substr_count($strCommandLine, 'ARG5') != 0) {
|
|
||||||
$intCount = 5;
|
|
||||||
} elseif (substr_count($strCommandLine, 'ARG4') != 0) {
|
|
||||||
$intCount = 4;
|
|
||||||
} elseif (substr_count($strCommandLine, 'ARG3') != 0) {
|
|
||||||
$intCount = 3;
|
|
||||||
} elseif (substr_count($strCommandLine, 'ARG2') != 0) {
|
|
||||||
$intCount = 2;
|
|
||||||
} elseif (substr_count($strCommandLine, 'ARG1') != 0) {
|
|
||||||
$intCount = 1;
|
|
||||||
} else {
|
|
||||||
$intCount = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Commandline</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
||||||
<style type="text/css">
|
|
||||||
<!--
|
|
||||||
body {
|
|
||||||
font-family: Verdana, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 10px;
|
|
||||||
color: #000000;
|
|
||||||
background-color: #EDF5FF;
|
|
||||||
margin: 3px;
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
-->
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<?php echo $strCommandLine; ?>
|
|
||||||
<script type="text/javascript" language="javascript">
|
|
||||||
<!--
|
|
||||||
parent.argcount = <?php echo $intCount; ?>;
|
|
||||||
//-->
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,65 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Commands overview
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 4;
|
|
||||||
$preContent = 'admin/mainpages.htm.tpl';
|
|
||||||
//
|
|
||||||
// Include preprocessing file
|
|
||||||
// ==========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
//
|
|
||||||
// Include content
|
|
||||||
// ===============
|
|
||||||
$conttp->setVariable('TITLE', translate('Check commands'));
|
|
||||||
$conttp->setVariable('DESC', translate('To define check and misc commands, notification commands and special '
|
|
||||||
. 'commands.'));
|
|
||||||
$conttp->setVariable('STATISTICS', translate('Statistical datas'));
|
|
||||||
$conttp->setVariable('TYPE', translate('Group'));
|
|
||||||
$conttp->setVariable('ACTIVE', translate('Active'));
|
|
||||||
$conttp->setVariable('INACTIVE', translate('Inactive'));
|
|
||||||
//
|
|
||||||
// Include statistical data
|
|
||||||
// ========================
|
|
||||||
// Get read access groups
|
|
||||||
$strAccess = $myVisClass->getAccessGroups('read');
|
|
||||||
$intGroupId = (int)$myDBClass->getFieldData('SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=18');
|
|
||||||
if ($myVisClass->checkAccountGroup($intGroupId, 'read') == 0) {
|
|
||||||
$conttp->setVariable('NAME', translate('Check commands'));
|
|
||||||
$conttp->setVariable('ACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_command` '
|
|
||||||
. "WHERE `active`='1' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->setVariable('INACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_command` '
|
|
||||||
. "WHERE `active`='0' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->parse('statisticrow');
|
|
||||||
}
|
|
||||||
$conttp->parse('statistics');
|
|
||||||
$conttp->parse('main');
|
|
||||||
$conttp->show('main');
|
|
||||||
//
|
|
||||||
// Include Footer
|
|
||||||
// ==============
|
|
||||||
$maintp->setVariable('VERSION_INFO', "<a href='https://sourceforge.net/projects/nagiosql/' "
|
|
||||||
. "target='_blank'>NagiosQL</a> $setFileVersion");
|
|
||||||
$maintp->parse('footer');
|
|
||||||
$maintp->show('footer');
|
|
@ -1,346 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Admin configuration target administration
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 36;
|
|
||||||
$preContent = 'admin/configtargets.htm.tpl';
|
|
||||||
$preListTpl = 'admin/datalist_common.htm.tpl';
|
|
||||||
$preTableName = 'tbl_configtarget';
|
|
||||||
$preKeyField = 'target';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
$intIsError = 0;
|
|
||||||
$strPathMessage = '';
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Process path values (add slashes)
|
|
||||||
// =================================
|
|
||||||
$chkTfValue8 = $myVisClass->addSlash($chkTfValue8);
|
|
||||||
$chkTfValue9 = $myVisClass->addSlash($chkTfValue9);
|
|
||||||
$chkTfValue10 = $myVisClass->addSlash($chkTfValue10);
|
|
||||||
$chkTfValue11 = $myVisClass->addSlash($chkTfValue11);
|
|
||||||
$chkTfValue12 = $myVisClass->addSlash($chkTfValue12);
|
|
||||||
$chkTfValue13 = $myVisClass->addSlash($chkTfValue13);
|
|
||||||
$chkTfValue14 = $myVisClass->addSlash($chkTfValue14);
|
|
||||||
$chkTfValue15 = $myVisClass->addSlash($chkTfValue15);
|
|
||||||
$chkTfValue16 = $myVisClass->addSlash($chkTfValue16);
|
|
||||||
//
|
|
||||||
// Check if the permissions and other parameters
|
|
||||||
// =============================================
|
|
||||||
if (($chkModus == 'modify' || $chkModus == 'insert') && $chkDataId != 0) {
|
|
||||||
if ($chkSelValue1 == 1) {
|
|
||||||
$arrPaths = array($chkTfValue8,$chkTfValue9,$chkTfValue10,$chkTfValue11,$chkTfValue12,$chkTfValue13);
|
|
||||||
foreach ($arrPaths as $elem) {
|
|
||||||
if ($myConfigClass->isDirWriteable($elem) == 1) {
|
|
||||||
$myVisClass->processMessage($elem. ' ' .translate('is not writeable'), $strPathMessage);
|
|
||||||
$intIsError = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Nagios base configuration files
|
|
||||||
if (!is_writable($chkTfValue20)) {
|
|
||||||
$myVisClass->processMessage(str_replace(' ', ' ', translate('Nagios config file'). ' ' .$chkTfValue20
|
|
||||||
. ' ' .translate('is not writeable')), $strPathMessage);
|
|
||||||
$intIsError = 1;
|
|
||||||
} else {
|
|
||||||
$intCheck = 0;
|
|
||||||
if (file_exists($chkTfValue20) && is_readable($chkTfValue20)) {
|
|
||||||
$resFile = fopen($chkTfValue20, 'rb');
|
|
||||||
while (!feof($resFile)) {
|
|
||||||
$strLine = trim(fgets($resFile));
|
|
||||||
if ((substr_count($strLine, 'cfg_dir') != 0) || (substr_count($strLine, 'cfg_file') != 0)) {
|
|
||||||
$intCheck = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fclose($resFile);
|
|
||||||
}
|
|
||||||
if ($intCheck == 0) {
|
|
||||||
$myVisClass->processMessage(str_replace(' ', ' ', translate('Nagios config file'). ' ' .
|
|
||||||
$chkTfValue20. ' ' .translate('is not a valid configuration file!')), $strPathMessage);
|
|
||||||
$intIsError = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!is_writable($chkTfValue14)) {
|
|
||||||
$myVisClass->processMessage(str_replace(' ', ' ', translate('Nagios base directory'). ' ' .
|
|
||||||
$chkTfValue14. ' ' .translate('is not writeable')), $strPathMessage);
|
|
||||||
$intIsError = 1;
|
|
||||||
}
|
|
||||||
if (!is_writable($chkTfValue21)) {
|
|
||||||
$myVisClass->processMessage(str_replace(' ', ' ', translate('Nagios cgi config file'). ' ' .
|
|
||||||
$chkTfValue21. ' ' .translate('is not writeable')), $strPathMessage);
|
|
||||||
$intIsError = 1;
|
|
||||||
}
|
|
||||||
if (!is_readable($chkTfValue22)) {
|
|
||||||
$myVisClass->processMessage(str_replace(' ', ' ', translate('Nagios resource config file'). ' ' .
|
|
||||||
$chkTfValue22. ' ' .translate('is not readable')), $strPathMessage);
|
|
||||||
$intIsError = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Check SSH Method
|
|
||||||
if (($chkSelValue1 == 3) && !function_exists('ssh2_connect')) {
|
|
||||||
$myVisClass->processMessage(translate('SSH module not loaded!'), $strPathMessage);
|
|
||||||
$intIsError = 1;
|
|
||||||
}
|
|
||||||
// Check FTP Method
|
|
||||||
if (($chkSelValue1 == 2) && !function_exists('ftp_connect')) {
|
|
||||||
$myVisClass->processMessage(translate('FTP module not loaded!'), $strPathMessage);
|
|
||||||
$intIsError = 1;
|
|
||||||
}
|
|
||||||
if ($intIsError == 1) {
|
|
||||||
$chkModus = 'add';
|
|
||||||
$chkSelModify = 'errormodify';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Add or modify data
|
|
||||||
// ==================
|
|
||||||
if ((($chkModus == 'insert') || ($chkModus == 'modify')) && ($intGlobalWriteAccess == 0)) {
|
|
||||||
$strSQLx = "`$preTableName` SET `$preKeyField`='$chkTfValue1', `alias`='$chkTfValue2', `server`='$chkTfValue4', "
|
|
||||||
. "`method`='$chkSelValue1', `user`='$chkTfValue5', `password`='$chkTfValue6', "
|
|
||||||
. "`ssh_key_path`='$chkTfValue7', `ftp_secure`=$chkChbValue1, `basedir`='$chkTfValue8', "
|
|
||||||
. "`hostconfig`='$chkTfValue9', `serviceconfig`='$chkTfValue10', `backupdir`='$chkTfValue11', "
|
|
||||||
. "`hostbackup`='$chkTfValue12', `servicebackup`='$chkTfValue13', `nagiosbasedir`='$chkTfValue14', "
|
|
||||||
. "`importdir`='$chkTfValue15', `picturedir`='$chkTfValue16', `commandfile`='$chkTfValue17', "
|
|
||||||
. "`binaryfile`='$chkTfValue18', `pidfile`='$chkTfValue19', `conffile`='$chkTfValue20', "
|
|
||||||
. "`cgifile`='$chkTfValue21', `resourcefile`='$chkTfValue22',`version`=$chkSelValue2, "
|
|
||||||
. "`access_group`=$chkSelAccGr, `active`='$chkActive',`last_modified`=NOW()";
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$strSQL = 'INSERT INTO ' .$strSQLx;
|
|
||||||
} else {
|
|
||||||
$strSQL = 'UPDATE ' .$strSQLx. ' WHERE `id`=' .$chkDataId;
|
|
||||||
}
|
|
||||||
if ($intWriteAccessId == 0) {
|
|
||||||
if (($chkTfValue1 != '') && ($chkTfValue2 != '') && (($chkTfValue4 != '') || ($chkDataId == 0))) {
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn == 1) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strInfoMessage);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$myDataClass->writeLog(translate('New Domain inserted:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$myDataClass->writeLog(translate('Domain modified:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Database entry failed! Not all necessary data filled in!'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Database entry failed! No write access!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
if ($chkModus != 'add') {
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Single view
|
|
||||||
// ===========
|
|
||||||
if ($chkModus == 'add') {
|
|
||||||
// Process acces group selection field
|
|
||||||
if (isset($arrModifyData['access_group'])) {
|
|
||||||
$intFieldId = $arrModifyData['access_group'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn = $myVisClass->parseSelectSimple('tbl_group', 'groupname', 'acc_group', 0, $intFieldId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Initial add/modify form definitions
|
|
||||||
$myContentClass->addFormInit($conttp);
|
|
||||||
$conttp->setVariable('TITLE', translate('Configuration domain administration'));
|
|
||||||
if ($intIsError == 1) {
|
|
||||||
$conttp->setVariable('PATHMESSAGE', '<h2 style="padding-bottom:5px;">' .translate('Warning, at least one ' .
|
|
||||||
'error occured, please check!'). '</h2>' .$strPathMessage);
|
|
||||||
}
|
|
||||||
$conttp->setVariable('CLASS_NAME_1', 'elementHide');
|
|
||||||
$conttp->setVariable('CLASS_NAME_2', 'elementHide');
|
|
||||||
$conttp->setVariable('CLASS_NAME_3', 'elementHide');
|
|
||||||
$conttp->setVariable('FILL_ALLFIELDS', translate('Please fill in all fields marked with an *'));
|
|
||||||
$conttp->setVariable('FILL_ILLEGALCHARS', translate('The following field contains illegal characters:'));
|
|
||||||
// Insert data from database in "modify" mode
|
|
||||||
if (isset($arrModifyData) && ($chkSelModify == 'modify')) {
|
|
||||||
// Process data
|
|
||||||
$myContentClass->addInsertData($conttp, $arrModifyData, 0, '');
|
|
||||||
// Connection method
|
|
||||||
if ($arrModifyData['method'] == 1) {
|
|
||||||
$conttp->setVariable('FILE_SELECTED', 'selected');
|
|
||||||
}
|
|
||||||
if ($arrModifyData['method'] == 2) {
|
|
||||||
$conttp->setVariable('FTP_SELECTED', 'selected');
|
|
||||||
$conttp->setVariable('CLASS_NAME_1', 'elementShow');
|
|
||||||
$conttp->setVariable('CLASS_NAME_2', 'elementHide');
|
|
||||||
$conttp->setVariable('CLASS_NAME_3', 'elementShow');
|
|
||||||
}
|
|
||||||
if ($arrModifyData['method'] == 3) {
|
|
||||||
$conttp->setVariable('SFTP_SELECTED', 'selected');
|
|
||||||
$conttp->setVariable('CLASS_NAME_1', 'elementShow');
|
|
||||||
$conttp->setVariable('CLASS_NAME_2', 'elementShow');
|
|
||||||
$conttp->setVariable('CLASS_NAME_3', 'elementHide');
|
|
||||||
}
|
|
||||||
if ($arrModifyData['ftp_secure'] == 1) {
|
|
||||||
$conttp->setVariable('FTPS_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
// Nagios version
|
|
||||||
$conttp->setVariable('VER_SELECTED_' .$arrModifyData['version'], 'selected');
|
|
||||||
// Domain localhost cant' be renamed
|
|
||||||
if ($arrModifyData[$preKeyField] == 'localhost') {
|
|
||||||
$conttp->setVariable('DOMAIN_DISABLE', 'readonly');
|
|
||||||
$conttp->setVariable('LOCKCLASS', 'inputlock');
|
|
||||||
} elseif ($arrModifyData[$preKeyField] == 'common') {
|
|
||||||
$conttp->setVariable('DOMAIN_DISABLE', 'readonly');
|
|
||||||
$conttp->setVariable('COMMON_INVISIBLE', 'class="elementHide"');
|
|
||||||
$conttp->setVariable('LOCKCLASS', 'inputlock');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($chkSelModify == 'errormodify') {
|
|
||||||
$conttp->setVariable('DAT_TARGET', $chkTfValue1);
|
|
||||||
// Domain localhost cant' be renamed
|
|
||||||
if ($chkTfValue1 == 'localhost') {
|
|
||||||
$conttp->setVariable('DOMAIN_DISABLE', 'readonly');
|
|
||||||
$conttp->setVariable('LOCKCLASS', 'inputlock');
|
|
||||||
} elseif ($chkTfValue1 == 'common') {
|
|
||||||
$conttp->setVariable('DOMAIN_DISABLE', 'readonly');
|
|
||||||
$conttp->setVariable('COMMON_INVISIBLE', 'class="elementHide"');
|
|
||||||
$conttp->setVariable('LOCKCLASS', 'inputlock');
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('LOCKCLASS', 'inpmust');
|
|
||||||
}
|
|
||||||
$conttp->setVariable('DAT_ALIAS', $chkTfValue2);
|
|
||||||
$conttp->setVariable('DAT_SERVER', $chkTfValue4);
|
|
||||||
// Connection method
|
|
||||||
if ($chkSelValue1 == 1) {
|
|
||||||
$conttp->setVariable('FILE_SELECTED', 'selected');
|
|
||||||
$conttp->setVariable('CLASS_NAME_1', 'elementHide');
|
|
||||||
$conttp->setVariable('CLASS_NAME_2', 'elementHide');
|
|
||||||
$conttp->setVariable('CLASS_NAME_3', 'elementHide');
|
|
||||||
}
|
|
||||||
if ($chkSelValue1 == 2) {
|
|
||||||
$conttp->setVariable('FTP_SELECTED', 'selected');
|
|
||||||
$conttp->setVariable('CLASS_NAME_1', 'elementShow');
|
|
||||||
$conttp->setVariable('CLASS_NAME_2', 'elementHide');
|
|
||||||
$conttp->setVariable('CLASS_NAME_3', 'elementShow');
|
|
||||||
}
|
|
||||||
if ($chkSelValue1 == 3) {
|
|
||||||
$conttp->setVariable('SFTP_SELECTED', 'selected');
|
|
||||||
$conttp->setVariable('CLASS_NAME_1', 'elementShow');
|
|
||||||
$conttp->setVariable('CLASS_NAME_2', 'elementShow');
|
|
||||||
$conttp->setVariable('CLASS_NAME_3', 'elementHide');
|
|
||||||
}
|
|
||||||
$conttp->setVariable('DAT_USER', $chkTfValue5);
|
|
||||||
$conttp->setVariable('DAT_SSH_KEY_PATH', $chkTfValue7);
|
|
||||||
if ($chkChbValue1== 1) {
|
|
||||||
$conttp->setVariable('FTPS_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
$conttp->setVariable('DAT_BASEDIR', $chkTfValue8);
|
|
||||||
$conttp->setVariable('DAT_HOSTCONFIG', $chkTfValue9);
|
|
||||||
$conttp->setVariable('DAT_SERVICECONFIG', $chkTfValue10);
|
|
||||||
$conttp->setVariable('DAT_BACKUPDIR', $chkTfValue11);
|
|
||||||
$conttp->setVariable('DAT_HOSTBACKUP', $chkTfValue12);
|
|
||||||
$conttp->setVariable('DAT_SERVICEBACKUP', $chkTfValue13);
|
|
||||||
$conttp->setVariable('DAT_NAGIOSBASEDIR', $chkTfValue14);
|
|
||||||
$conttp->setVariable('DAT_IMPORTDIR', $chkTfValue15);
|
|
||||||
$conttp->setVariable('DAT_COMMANDFILE', $chkTfValue17);
|
|
||||||
$conttp->setVariable('DAT_BINARYFILE', $chkTfValue18);
|
|
||||||
$conttp->setVariable('DAT_PIDFILE', $chkTfValue19);
|
|
||||||
$conttp->setVariable('DAT_CONFFILE', $chkTfValue20);
|
|
||||||
$conttp->setVariable('DAT_CGIFILE', $chkTfValue21);
|
|
||||||
$conttp->setVariable('DAT_RESOURCEFILE', $chkTfValue22);
|
|
||||||
$conttp->setVariable('DAT_PICTUREDIR', $chkTfValue16);
|
|
||||||
// NagiosQL version
|
|
||||||
if ($chkSelValue2 == 1) {
|
|
||||||
$conttp->setVariable('VER_SELECTED_1', 'selected');
|
|
||||||
}
|
|
||||||
if ($chkSelValue2 == 2) {
|
|
||||||
$conttp->setVariable('VER_SELECTED_2', 'selected');
|
|
||||||
}
|
|
||||||
if ($chkSelValue2 == 3) {
|
|
||||||
$conttp->setVariable('VER_SELECTED_3', 'selected');
|
|
||||||
}
|
|
||||||
// Hidden variables
|
|
||||||
$conttp->setVariable('MODUS', filter_input(INPUT_POST, 'modus', FILTER_SANITIZE_STRING));
|
|
||||||
$conttp->setVariable('DAT_ID', filter_input(INPUT_POST, 'hidId', FILTER_VALIDATE_INT));
|
|
||||||
$conttp->setVariable('LIMIT', filter_input(INPUT_POST, 'hidLimit', FILTER_VALIDATE_INT));
|
|
||||||
// Active
|
|
||||||
if (filter_input(INPUT_POST, 'chbActive')) {
|
|
||||||
$conttp->setVariable('ACT_CHECKED', 'checked');
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('ACT_CHECKED', '');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$conttp->parse('datainsert');
|
|
||||||
$conttp->show('datainsert');
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// List view
|
|
||||||
// ==========
|
|
||||||
if ($chkModus == 'display') {
|
|
||||||
// Initial list view definitions
|
|
||||||
$myContentClass->listViewInit($mastertp);
|
|
||||||
$mastertp->setVariable('TITLE', translate('Configuration domain administration'));
|
|
||||||
$mastertp->setVariable('FIELD_1', translate('Configuration target'));
|
|
||||||
$mastertp->setVariable('FIELD_2', translate('Description'));
|
|
||||||
// Row sorting
|
|
||||||
$strOrderString = "ORDER BY `$preKeyField` $hidSortDir";
|
|
||||||
if ($hidSortBy == 2) {
|
|
||||||
$strOrderString = "ORDER BY `alias` $hidSortDir";
|
|
||||||
}
|
|
||||||
// Count datasets
|
|
||||||
$strSQL = "SELECT count(*) AS `number` FROM `$preTableName` WHERE `access_group` IN ($strAccess)";
|
|
||||||
$booReturn1 = $myDBClass->hasSingleDataset($strSQL, $arrDataLinesCount);
|
|
||||||
if ($booReturn1 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$intLineCount = (int)$arrDataLinesCount['number'];
|
|
||||||
if ($intLineCount < $chkLimit) {
|
|
||||||
$chkLimit = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Get datasets
|
|
||||||
$strSQL = "SELECT `id`, `$preKeyField`, `alias`, `active`, `nodelete`, `access_group` "
|
|
||||||
. "FROM `$preTableName` WHERE `access_group` IN ($strAccess) $strOrderString "
|
|
||||||
. "LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
|
||||||
$booReturn2 = $myDBClass->hasDataArray($strSQL, $arrDataLines, $intDataCount);
|
|
||||||
if ($booReturn2 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process data
|
|
||||||
$myContentClass->listData($mastertp, $arrDataLines, $intDataCount, $intLineCount, $preKeyField, 'alias');
|
|
||||||
}
|
|
||||||
// Show messages
|
|
||||||
$myContentClass->showMessages($mastertp, $strErrorMessage, $strInfoMessage, $strConsistMessage, array(), '', 1);
|
|
||||||
//
|
|
||||||
// Process footer
|
|
||||||
// ==============
|
|
||||||
$myContentClass->showFooter($maintp, $setFileVersion);
|
|
@ -1,275 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Contactgroup definition
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 15;
|
|
||||||
$preContent = 'admin/contactgroups.htm.tpl';
|
|
||||||
$preListTpl = 'admin/datalist.htm.tpl';
|
|
||||||
$preSearchSession = 'contactgroup';
|
|
||||||
$preTableName = 'tbl_contactgroup';
|
|
||||||
$preKeyField = 'contactgroup_name';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Add or modify data
|
|
||||||
// ==================
|
|
||||||
if ((($chkModus == 'insert') || ($chkModus == 'modify')) && ($intGlobalWriteAccess == 0)) {
|
|
||||||
$strSQLx = "`$preTableName` SET `$preKeyField`='$chkTfValue1', `alias`='$chkTfValue2', `members`=$intMselValue1, "
|
|
||||||
. "`contactgroup_members`=$intMselValue2, $preSQLCommon1";
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$strSQL = 'INSERT INTO ' .$strSQLx;
|
|
||||||
} else {
|
|
||||||
$strSQL = 'UPDATE ' .$strSQLx. ' WHERE `id`=' .$chkDataId;
|
|
||||||
}
|
|
||||||
if ($intWriteAccessId == 0) {
|
|
||||||
if (($chkTfValue1 != '') && ($chkTfValue2 != '') && ($intMselValue1 != 0)) {
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$chkDataId = $intInsertId;
|
|
||||||
}
|
|
||||||
if ($intReturn == 1) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strInfoMessage);
|
|
||||||
$myDataClass->updateStatusTable($preTableName);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$myDataClass->writeLog(translate('New contact group inserted:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$myDataClass->writeLog(translate('Contact group modified:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Insert/update relations
|
|
||||||
// =======================
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
if ($intMselValue1 != 0) {
|
|
||||||
$intRet1 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkContactgroupToContact',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue1
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet1) && ($intRet1 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue2 != 0) {
|
|
||||||
$intRet2 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkContactgroupToContactgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue2
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet2) && ($intRet2 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
} elseif ($chkModus == 'modify') {
|
|
||||||
if ($intMselValue1 != 0) {
|
|
||||||
$intRet1 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkContactgroupToContact',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue1
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet1 = $myDataClass->dataDeleteRelation('tbl_lnkContactgroupToContact', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet1 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue2 != 0) {
|
|
||||||
$intRet2 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkContactgroupToContactgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue2
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet2 = $myDataClass->dataDeleteRelation('tbl_lnkContactgroupToContactgroup', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet2 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (($intRet1 + $intRet2) != 0) {
|
|
||||||
$strInfoMessage = '';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Database entry failed! Not all necessary data filled in!'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Database entry failed! No write access!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
if ($chkModus != 'add') {
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Get date/time of last database and config file manipulation
|
|
||||||
// ===========================================================
|
|
||||||
$intReturn = $myConfigClass->lastModifiedFile($preTableName, $arrTimeData, $strTimeInfoString);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Singe data form
|
|
||||||
// ===============
|
|
||||||
if ($chkModus == 'add') {
|
|
||||||
$conttp->setVariable('TITLE', translate('Define contact groups (contactgroups.cfg)'));
|
|
||||||
// Do not show modified time list
|
|
||||||
$intNoTime = 1;
|
|
||||||
// Process contact member selection fields
|
|
||||||
if (isset($arrModifyData['members'])) {
|
|
||||||
$intFieldId = $arrModifyData['members'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn1 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_contact',
|
|
||||||
'contact_name',
|
|
||||||
'contacts',
|
|
||||||
'tbl_lnkContactgroupToContact',
|
|
||||||
2,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn1 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
$myVisClass->processMessage(translate('Attention, no contacts defined!'), $strDBWarning);
|
|
||||||
$intDataWarning = 1;
|
|
||||||
}
|
|
||||||
// Process contactgroup member selection fields
|
|
||||||
if (isset($arrModifyData['contactgroup_members'])) {
|
|
||||||
$intFieldId = $arrModifyData['contactgroup_members'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn2 = $myVisClass->parseSelectMulti(
|
|
||||||
$preTableName,
|
|
||||||
$preKeyField,
|
|
||||||
'contactgroups',
|
|
||||||
'tbl_lnkContactgroupToContactgroup',
|
|
||||||
0,
|
|
||||||
$intFieldId,
|
|
||||||
$chkListId
|
|
||||||
);
|
|
||||||
if ($intReturn2 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process acces group selection field
|
|
||||||
if (isset($arrModifyData['access_group'])) {
|
|
||||||
$intFieldId = $arrModifyData['access_group'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn3 = $myVisClass->parseSelectSimple('tbl_group', 'groupname', 'acc_group', 0, $intFieldId);
|
|
||||||
if ($intReturn3 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Initial add/modify form definitions
|
|
||||||
$myContentClass->addFormInit($conttp);
|
|
||||||
if ($intDataWarning == 1) {
|
|
||||||
$conttp->setVariable('WARNING', $strDBWarning. '<br>' .translate('Saving not possible!'));
|
|
||||||
}
|
|
||||||
if ($intVersion < 3) {
|
|
||||||
$conttp->setVariable('VERSION_20_VALUE_MUST', 'mselValue1,');
|
|
||||||
}
|
|
||||||
// Insert data from database in "modify" mode
|
|
||||||
if (isset($arrModifyData) && ($chkSelModify == 'modify')) {
|
|
||||||
// Check relation information to find out locked configuration datasets
|
|
||||||
$intLocked = $myDataClass->infoRelation($preTableName, $arrModifyData['id'], $preKeyField);
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strRelMessage);
|
|
||||||
$strInfo = '<br><span class="redmessage">' .translate('Entry cannot be activated because it is used by '
|
|
||||||
. 'another configuration'). ':</span>';
|
|
||||||
$strInfo .= '<br><span class="greenmessage">' .$strRelMessage. '</span>';
|
|
||||||
// Process data
|
|
||||||
$myContentClass->addInsertData($conttp, $arrModifyData, $intLocked, $strInfo);
|
|
||||||
}
|
|
||||||
$conttp->parse('datainsert');
|
|
||||||
$conttp->show('datainsert');
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// List view
|
|
||||||
// ==========
|
|
||||||
if ($chkModus == 'display') {
|
|
||||||
// Initial list view definitions
|
|
||||||
$myContentClass->listViewInit($mastertp);
|
|
||||||
$mastertp->setVariable('TITLE', translate('Define contact groups (contactgroups.cfg)'));
|
|
||||||
$mastertp->setVariable('FIELD_1', translate('Contact group'));
|
|
||||||
$mastertp->setVariable('FIELD_2', translate('Description'));
|
|
||||||
// Process filter string
|
|
||||||
if ($_SESSION['search'][$preSearchSession] != '') {
|
|
||||||
$strSearchTxt = $_SESSION['search'][$preSearchSession];
|
|
||||||
$strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%' OR `alias` LIKE '%".$strSearchTxt."%')";
|
|
||||||
}
|
|
||||||
// Row sorting
|
|
||||||
$strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir";
|
|
||||||
if ($hidSortBy == 2) {
|
|
||||||
$strOrderString = "ORDER BY `config_id`, `alias` $hidSortDir";
|
|
||||||
}
|
|
||||||
// Count datasets
|
|
||||||
$strSQL = "SELECT count(*) AS `number` FROM `$preTableName` "
|
|
||||||
. "WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)";
|
|
||||||
$booReturn1 = $myDBClass->hasSingleDataset($strSQL, $arrDataLinesCount);
|
|
||||||
if ($booReturn1 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$intLineCount = (int)$arrDataLinesCount['number'];
|
|
||||||
if ($intLineCount < $chkLimit) {
|
|
||||||
$chkLimit = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Get datasets
|
|
||||||
$strSQL = "SELECT `id`, `$preKeyField`, `alias`, `register`, `active`, `config_id`, `access_group` "
|
|
||||||
. "FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess) "
|
|
||||||
. "$strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
|
||||||
$booReturn2 = $myDBClass->hasDataArray($strSQL, $arrDataLines, $intDataCount);
|
|
||||||
if ($booReturn2 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process data
|
|
||||||
$myContentClass->listData($mastertp, $arrDataLines, $intDataCount, $intLineCount, $preKeyField, 'alias');
|
|
||||||
}
|
|
||||||
// Show messages
|
|
||||||
$myContentClass->showMessages(
|
|
||||||
$mastertp,
|
|
||||||
$strErrorMessage,
|
|
||||||
$strInfoMessage,
|
|
||||||
$strConsistMessage,
|
|
||||||
$arrTimeData,
|
|
||||||
$strTimeInfoString,
|
|
||||||
$intNoTime
|
|
||||||
);
|
|
||||||
//
|
|
||||||
// Process footer
|
|
||||||
// ==============
|
|
||||||
$myContentClass->showFooter($maintp, $setFileVersion);
|
|
@ -1,510 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Contact definitions
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 14;
|
|
||||||
$preContent = 'admin/contacts.htm.tpl';
|
|
||||||
$preListTpl = 'admin/datalist.htm.tpl';
|
|
||||||
$preSearchSession = 'contact';
|
|
||||||
$preTableName = 'tbl_contact';
|
|
||||||
$preKeyField = 'contact_name';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Checkbox data processing
|
|
||||||
// ========================
|
|
||||||
if (($intVersion == 3) || ($intVersion == 4)) {
|
|
||||||
$strHO = substr($chkChbGr1a.$chkChbGr1b.$chkChbGr1c.$chkChbGr1d.$chkChbGr1e.$chkChbGr1f, 0, -1);
|
|
||||||
$strSO = substr($chkChbGr2a.$chkChbGr2b.$chkChbGr2c.$chkChbGr2d.$chkChbGr2e.$chkChbGr2f.$chkChbGr2g, 0, -1);
|
|
||||||
} else {
|
|
||||||
$strHO = substr($chkChbGr1a.$chkChbGr1b.$chkChbGr1c.$chkChbGr1d.$chkChbGr1f, 0, -1);
|
|
||||||
$strSO = substr($chkChbGr2a.$chkChbGr2b.$chkChbGr2c.$chkChbGr2d.$chkChbGr2e.$chkChbGr2g, 0, -1);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Add or modify data
|
|
||||||
// ==================
|
|
||||||
if ((($chkModus == 'insert') || ($chkModus == 'modify')) && ($intGlobalWriteAccess == 0)) {
|
|
||||||
$strSQLx = "`$preTableName` SET `$preKeyField`='$chkTfValue1', `alias`='$chkTfValue2', "
|
|
||||||
. "`contactgroups`=$intMselValue1, `contactgroups_tploptions`=$chkRadValue1, "
|
|
||||||
. "`minimum_importance`=$chkTfNullVal1, "
|
|
||||||
. "`host_notifications_enabled`='$chkRadValue2', `service_notifications_enabled`='$chkRadValue3', "
|
|
||||||
. "`host_notification_period`='$chkSelValue1', `service_notification_period`='$chkSelValue2', "
|
|
||||||
. "`host_notification_options`='$strHO', `host_notification_commands_tploptions`=$chkRadValue4, "
|
|
||||||
. "`service_notification_options`='$strSO', `host_notification_commands`=$intMselValue2, "
|
|
||||||
. "`service_notification_commands`=$intMselValue3, "
|
|
||||||
. "`service_notification_commands_tploptions`=$chkRadValue5, `can_submit_commands`='$chkRadValue8', "
|
|
||||||
. "`retain_status_information`='$chkRadValue6', `retain_nonstatus_information`='$chkRadValue7', "
|
|
||||||
. "`email`='$chkTfValue3', `pager`='$chkTfValue4', `address1`='$chkTfValue5', `address2`='$chkTfValue6', "
|
|
||||||
. "`address3`='$chkTfValue7', `address4`='$chkTfValue8', `address5`='$chkTfValue9', "
|
|
||||||
. "`address6`='$chkTfValue10', `name`='$chkTfValue11', `use_variables`='$intVariables', "
|
|
||||||
. "`use_template`=$intTemplates, $preSQLCommon1";
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$strSQL = 'INSERT INTO ' .$strSQLx;
|
|
||||||
} else {
|
|
||||||
$strSQL = 'UPDATE ' .$strSQLx. ' WHERE `id`=' .$chkDataId;
|
|
||||||
}
|
|
||||||
if ($intWriteAccessId == 0) {
|
|
||||||
if ($chkTfValue1 != '') {
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$chkDataId = $intInsertId;
|
|
||||||
}
|
|
||||||
if ($intReturn == 1) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strInfoMessage);
|
|
||||||
$myDataClass->updateStatusTable($preTableName);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$myDataClass->writeLog(translate('New contact inserted:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$myDataClass->writeLog(translate('Contact modified:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Insert/update relations
|
|
||||||
// =======================
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
if ($intMselValue1 != 0) {
|
|
||||||
$intRet1 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkContactToContactgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue1
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet1) && ($intRet1 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue2 != 0) {
|
|
||||||
$intRet2 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkContactToCommandHost',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue2
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet2) && ($intRet2 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue3 != 0) {
|
|
||||||
$intRet3 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkContactToCommandService',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue3
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet3) && ($intRet3 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
} elseif ($chkModus == 'modify') {
|
|
||||||
if ($intMselValue1 != 0) {
|
|
||||||
$intRet1 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkContactToContactgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue1
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet1 = $myDataClass->dataDeleteRelation('tbl_lnkContactToContactgroup', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet1 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue2 != 0) {
|
|
||||||
$intRet2 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkContactToCommandHost',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue2
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet2 = $myDataClass->dataDeleteRelation('tbl_lnkContactToCommandHost', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet2 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue3 != 0) {
|
|
||||||
$intRet3 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkContactToCommandService',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue3
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet3 = $myDataClass->dataDeleteRelation('tbl_lnkContactToCommandService', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet3 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//if (($intRet1 + $intRet2 + $intRet3) != 0) {
|
|
||||||
//$strInfoMessage = "";
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
// Insert/update templates from session data
|
|
||||||
// =========================================
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$strSQL = "DELETE FROM `tbl_lnkContactToContacttemplate` WHERE `idMaster`=$chkDataId";
|
|
||||||
$booReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (isset($_SESSION['templatedefinition']) && is_array($_SESSION['templatedefinition']) &&
|
|
||||||
(count($_SESSION['templatedefinition']) != 0)) {
|
|
||||||
$intSortId = 1;
|
|
||||||
/** @noinspection ForeachSourceInspection */
|
|
||||||
foreach ($_SESSION['templatedefinition'] as $elem) {
|
|
||||||
if ($elem['status'] == 0) {
|
|
||||||
$strSQL = 'INSERT INTO `tbl_lnkContactToContacttemplate` (`idMaster`,`idSlave`,'
|
|
||||||
. "`idTable`,`idSort`) VALUES ($chkDataId,".$elem['idSlave']. ', '
|
|
||||||
. $elem['idTable']. ',' .$intSortId. ')';
|
|
||||||
$booReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$intSortId++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Insert/update variables from session data
|
|
||||||
// =========================================
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$strSQL1 = "SELECT * FROM `tbl_lnkContactToVariabledefinition` WHERE `idMaster`=$chkDataId";
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL1, $arrData, $intDataCount);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intDataCount != 0) {
|
|
||||||
foreach ($arrData as $elem) {
|
|
||||||
$strSQL = 'DELETE FROM `tbl_variabledefinition` WHERE `id`=' .$elem['idSlave'];
|
|
||||||
$booReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$strSQL = "DELETE FROM `tbl_lnkContactToVariabledefinition` WHERE `idMaster`=$chkDataId";
|
|
||||||
$booReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (isset($_SESSION['variabledefinition']) && is_array($_SESSION['variabledefinition']) &&
|
|
||||||
(count($_SESSION['variabledefinition']) != 0)) {
|
|
||||||
foreach ($_SESSION['variabledefinition'] as $elem) {
|
|
||||||
if ($elem['status'] == 0) {
|
|
||||||
$strSQL = 'INSERT INTO `tbl_variabledefinition` (`name`,`value`,`last_modified`) '
|
|
||||||
. "VALUES ('".$elem['definition']."','".$elem['range']."',now())";
|
|
||||||
$booReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
$strSQL = 'INSERT INTO `tbl_lnkContactToVariabledefinition` (`idMaster`,`idSlave`) '
|
|
||||||
. "VALUES ($chkDataId,$intInsertId)";
|
|
||||||
$booReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Database entry failed! Not all necessary data filled in!'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Database entry failed! No write access!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
if ($chkModus != 'add') {
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Get date/time of last database and config file manipulation
|
|
||||||
// ===========================================================
|
|
||||||
$intReturn = $myConfigClass->lastModifiedFile($preTableName, $arrTimeData, $strTimeInfoString);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Singe data form
|
|
||||||
// ===============
|
|
||||||
if ($chkModus == 'add') {
|
|
||||||
$conttp->setVariable('TITLE', translate('Define contacts (contacts.cfg)'));
|
|
||||||
// Do not show modified time list
|
|
||||||
$intNoTime = 1;
|
|
||||||
// Process template selection fields (Spezial)
|
|
||||||
$strWhere = '';
|
|
||||||
if (isset($arrModifyData) && ($chkSelModify == 'modify')) {
|
|
||||||
$strWhere = 'AND `id` <> ' .$arrModifyData['id'];
|
|
||||||
}
|
|
||||||
$strSQL5 = 'SELECT `id`,`template_name`, `active` '
|
|
||||||
. "FROM `tbl_contacttemplate` WHERE $strDomainWhere2 ORDER BY `template_name`";
|
|
||||||
$booReturn5 = $myDBClass->hasDataArray($strSQL5, $arrDataTpl, $intDataCountTpl);
|
|
||||||
if ($booReturn5 == false) {
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intDataCountTpl != 0) {
|
|
||||||
/** @var array $arrDataTpl */
|
|
||||||
foreach ($arrDataTpl as $elem) {
|
|
||||||
if ($elem['active'] == 0) {
|
|
||||||
$strActive = ' [inactive]';
|
|
||||||
$conttp->setVariable('SPECIAL_STYLE', 'inactive_option');
|
|
||||||
} else {
|
|
||||||
$strActive = '';
|
|
||||||
$conttp->setVariable('SPECIAL_STYLE', '');
|
|
||||||
}
|
|
||||||
$conttp->setVariable('DAT_TEMPLATE', htmlspecialchars($elem['template_name'], ENT_QUOTES, 'UTF-8').
|
|
||||||
$strActive);
|
|
||||||
$conttp->setVariable('DAT_TEMPLATE_ID', $elem['id']. '::1');
|
|
||||||
$conttp->parse('template');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$strSQL6 = 'SELECT `id`, `name`, `active` '
|
|
||||||
. "FROM `$preTableName` WHERE `name` <> '' $strWhere AND $strDomainWhere ORDER BY `name`";
|
|
||||||
$booReturn6 = $myDBClass->hasDataArray($strSQL6, $arrDataHpl, $intDataCount);
|
|
||||||
if ($booReturn6 == false) {
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intDataCount != 0) {
|
|
||||||
/** @var array $arrDataHpl */
|
|
||||||
foreach ($arrDataHpl as $elem) {
|
|
||||||
if ($elem['active'] == 0) {
|
|
||||||
$strActive = ' [inactive]';
|
|
||||||
$conttp->setVariable('SPECIAL_STYLE', 'inactive_option');
|
|
||||||
} else {
|
|
||||||
$strActive = '';
|
|
||||||
$conttp->setVariable('SPECIAL_STYLE', '');
|
|
||||||
}
|
|
||||||
$conttp->setVariable('DAT_TEMPLATE', htmlspecialchars($elem['name'], ENT_QUOTES, 'UTF-8').$strActive);
|
|
||||||
$conttp->setVariable('DAT_TEMPLATE_ID', $elem['id']. '::2');
|
|
||||||
$conttp->parse('template');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Process timeperiod selection fields
|
|
||||||
if (isset($arrModifyData['host_notification_period'])) {
|
|
||||||
$intFieldId = $arrModifyData['host_notification_period'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn1 = $myVisClass->parseSelectSimple('tbl_timeperiod', 'timeperiod_name', 'host_time', 1, $intFieldId);
|
|
||||||
if ($intReturn1 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['service_notification_period'])) {
|
|
||||||
$intFieldId = $arrModifyData['service_notification_period'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn2 = $myVisClass->parseSelectSimple('tbl_timeperiod', 'timeperiod_name', 'service_time', 1, $intFieldId);
|
|
||||||
if ($intReturn2 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
$myVisClass->processMessage(translate('Attention, no time periods defined!'), $strDBWarning);
|
|
||||||
$intDataWarning = 1;
|
|
||||||
}
|
|
||||||
// Process command selection fields
|
|
||||||
if (isset($arrModifyData['host_notification_commands'])) {
|
|
||||||
$intFieldId = $arrModifyData['host_notification_commands'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn3 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_command',
|
|
||||||
'command_name',
|
|
||||||
'host_command',
|
|
||||||
'tbl_lnkContactToCommandHost',
|
|
||||||
0,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn3 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['service_notification_commands'])) {
|
|
||||||
$intFieldId = $arrModifyData['service_notification_commands'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn4 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_command',
|
|
||||||
'command_name',
|
|
||||||
'service_command',
|
|
||||||
'tbl_lnkContactToCommandService',
|
|
||||||
0,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn4 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
$myVisClass->processMessage(translate('Attention, no commands defined!'), $strDBWarning);
|
|
||||||
$intDataWarning = 1;
|
|
||||||
}
|
|
||||||
// Process contactgroup selection field
|
|
||||||
if (isset($arrModifyData['contactgroups'])) {
|
|
||||||
$intFieldId = $arrModifyData['contactgroups'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn5 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_contactgroup',
|
|
||||||
'contactgroup_name',
|
|
||||||
'contactgroup',
|
|
||||||
'tbl_lnkContactToContactgroup',
|
|
||||||
2,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn5 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process access group selection field
|
|
||||||
if (isset($arrModifyData['access_group'])) {
|
|
||||||
$intFieldId = $arrModifyData['access_group'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn6 = $myVisClass->parseSelectSimple('tbl_group', 'groupname', 'acc_group', 0, $intFieldId);
|
|
||||||
if ($intReturn6 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Initial add/modify form definitions
|
|
||||||
$strChbFields = 'HNE,SNE,RSI,CSC,RNS,TPL,SEC,HOC,COG';
|
|
||||||
$myContentClass->addFormInit($conttp, $strChbFields);
|
|
||||||
if ($intDataWarning == 1) {
|
|
||||||
$conttp->setVariable('WARNING', $strDBWarning. '<br>' .translate('Saving not possible!'));
|
|
||||||
$conttp->setVariable('DISABLE_SAVE', 'disabled');
|
|
||||||
}
|
|
||||||
if ($intVersion == 4) {
|
|
||||||
$conttp->setVariable('HOST_OPTION_FIELDS', 'chbGr1a,chbGr1b,chbGr1c,chbGr1d,chbGr1e,chbGr1f');
|
|
||||||
$conttp->setVariable('SERVICE_OPTION_FIELDS', 'chbGr2a,chbGr2b,chbGr2c,chbGr2d,chbGr2e,chbGr2f,chbGr2g');
|
|
||||||
}
|
|
||||||
if ($intVersion == 3) {
|
|
||||||
$conttp->setVariable('HOST_OPTION_FIELDS', 'chbGr1a,chbGr1b,chbGr1c,chbGr1d,chbGr1e,chbGr1f');
|
|
||||||
$conttp->setVariable('SERVICE_OPTION_FIELDS', 'chbGr2a,chbGr2b,chbGr2c,chbGr2d,chbGr2e,chbGr2f,chbGr2g');
|
|
||||||
}
|
|
||||||
if ($intVersion < 3) {
|
|
||||||
$conttp->setVariable('HOST_OPTION_FIELDS', 'chbGr1a,chbGr1b,chbGr1c,chbGr1d,chbGr1f');
|
|
||||||
$conttp->setVariable('SERVICE_OPTION_FIELDS', 'chbGr2a,chbGr2b,chbGr2c,chbGr2d,chbGr2e,chbGr2g');
|
|
||||||
$conttp->setVariable('VERSION_20_VALUE_MUST', ',tfValue2');
|
|
||||||
}
|
|
||||||
// Insert data from database in "modify" mode
|
|
||||||
if (isset($arrModifyData) && ($chkSelModify == 'modify')) {
|
|
||||||
// Check relation information to find out locked configuration datasets
|
|
||||||
$intLocked = $myDataClass->infoRelation($preTableName, $arrModifyData['id'], $preKeyField);
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strRelMessage);
|
|
||||||
$strInfo = '<br><span class="redmessage">' .translate('Entry cannot be activated because it is used by '
|
|
||||||
. 'another configuration'). ':</span>';
|
|
||||||
$strInfo .= '<br><span class="greenmessage">' .$strRelMessage. '</span>';
|
|
||||||
// Process data
|
|
||||||
$myContentClass->addInsertData($conttp, $arrModifyData, $intLocked, $strInfo, $strChbFields);
|
|
||||||
// Process radio fields
|
|
||||||
$conttp->setVariable('DAT_HNE' .$arrModifyData['host_notifications_enabled']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_SNE' .$arrModifyData['service_notifications_enabled']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_RSI' .$arrModifyData['retain_status_information']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_CSC' .$arrModifyData['can_submit_commands']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_RNS' .$arrModifyData['retain_nonstatus_information']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_TPL' .$arrModifyData['use_template_tploptions']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable(
|
|
||||||
'DAT_SEC' .$arrModifyData['service_notification_commands_tploptions']. '_CHECKED',
|
|
||||||
'checked'
|
|
||||||
);
|
|
||||||
$conttp->setVariable('DAT_HOC' .$arrModifyData['host_notification_commands_tploptions']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_COG' .$arrModifyData['contactgroups_tploptions']. '_CHECKED', 'checked');
|
|
||||||
// Process option fields
|
|
||||||
foreach (explode(',', $arrModifyData['host_notification_options']) as $elem) {
|
|
||||||
$conttp->setVariable('DAT_HO' .strtoupper($elem). '_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
foreach (explode(',', $arrModifyData['service_notification_options']) as $elem) {
|
|
||||||
$conttp->setVariable('DAT_SO' .strtoupper($elem). '_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$conttp->parse('datainsert');
|
|
||||||
$conttp->show('datainsert');
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// List view
|
|
||||||
// ==========
|
|
||||||
if ($chkModus == 'display') {
|
|
||||||
// Initial list view definitions
|
|
||||||
$myContentClass->listViewInit($mastertp);
|
|
||||||
$mastertp->setVariable('TITLE', translate('Define contacts (contacts.cfg)'));
|
|
||||||
$mastertp->setVariable('FIELD_1', translate('Contact name'));
|
|
||||||
$mastertp->setVariable('FIELD_2', translate('Description'));
|
|
||||||
// Process search string
|
|
||||||
if ($_SESSION['search'][$preSearchSession] != '') {
|
|
||||||
$strSearchTxt = $_SESSION['search'][$preSearchSession];
|
|
||||||
$strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%' OR `alias` LIKE '%".$strSearchTxt."%' OR "
|
|
||||||
. "`email` LIKE '%".$strSearchTxt."%' OR `pager` LIKE '%".$strSearchTxt."%' OR "
|
|
||||||
. "`address1` LIKE '%".$strSearchTxt."%' OR `address2` LIKE '%".$strSearchTxt."%' OR "
|
|
||||||
. "`address3` LIKE '%".$strSearchTxt."%' OR `address4` LIKE '%".$strSearchTxt."%' OR "
|
|
||||||
. "`address5` LIKE '%".$strSearchTxt."%' OR `address6` LIKE '%".$strSearchTxt."%' OR "
|
|
||||||
. "`name` LIKE '%".$strSearchTxt."%')";
|
|
||||||
}
|
|
||||||
// Row sorting
|
|
||||||
$strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir";
|
|
||||||
if ($hidSortBy == 2) {
|
|
||||||
$strOrderString = "ORDER BY `config_id`, `alias` $hidSortDir";
|
|
||||||
}
|
|
||||||
// Count datasets
|
|
||||||
$strSQL7 = 'SELECT count(*) AS `number` '
|
|
||||||
. "FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)";
|
|
||||||
$booReturn7 = $myDBClass->hasSingleDataset($strSQL7, $arrDataLinesCount);
|
|
||||||
if ($booReturn7 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$intLineCount = (int)$arrDataLinesCount['number'];
|
|
||||||
if ($intLineCount < $chkLimit) {
|
|
||||||
$chkLimit = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Get datasets
|
|
||||||
$strSQL8 = "SELECT `id`, `$preKeyField`, `alias`, `active`, `register`, `config_id`, `access_group` "
|
|
||||||
. "FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` "
|
|
||||||
. "IN ($strAccess) $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
|
||||||
$booReturn8 = $myDBClass->hasDataArray($strSQL8, $arrDataLines, $intDataCount);
|
|
||||||
if ($booReturn8 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process data
|
|
||||||
$myContentClass->listData($mastertp, $arrDataLines, $intDataCount, $intLineCount, $preKeyField, 'alias');
|
|
||||||
}
|
|
||||||
// Show messages
|
|
||||||
$myContentClass->showMessages(
|
|
||||||
$mastertp,
|
|
||||||
$strErrorMessage,
|
|
||||||
$strInfoMessage,
|
|
||||||
$strConsistMessage,
|
|
||||||
$arrTimeData,
|
|
||||||
$strTimeInfoString,
|
|
||||||
$intNoTime
|
|
||||||
);
|
|
||||||
//
|
|
||||||
// Process footer
|
|
||||||
// ==============
|
|
||||||
$myContentClass->showFooter($maintp, $setFileVersion);
|
|
@ -1,508 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Contact template definitions
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 17;
|
|
||||||
$preContent = 'admin/contacttemplates.htm.tpl';
|
|
||||||
$preListTpl = 'admin/datalist.htm.tpl';
|
|
||||||
$preSearchSession = 'contacttemplate';
|
|
||||||
$preTableName = 'tbl_contacttemplate';
|
|
||||||
$preKeyField = 'template_name';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Checkbox data processing
|
|
||||||
// ========================
|
|
||||||
if (($intVersion == 3) || ($intVersion == 4)) {
|
|
||||||
$strHO = substr($chkChbGr1a.$chkChbGr1b.$chkChbGr1c.$chkChbGr1d.$chkChbGr1e.$chkChbGr1f, 0, -1);
|
|
||||||
$strSO = substr($chkChbGr2a.$chkChbGr2b.$chkChbGr2c.$chkChbGr2d.$chkChbGr2e.$chkChbGr2f.$chkChbGr2g, 0, -1);
|
|
||||||
} else {
|
|
||||||
$strHO = substr($chkChbGr1a.$chkChbGr1b.$chkChbGr1c.$chkChbGr1d.$chkChbGr1f, 0, -1);
|
|
||||||
$strSO = substr($chkChbGr2a.$chkChbGr2b.$chkChbGr2c.$chkChbGr2d.$chkChbGr2e.$chkChbGr2g, 0, -1);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Add or modify data
|
|
||||||
// ==================
|
|
||||||
if ((($chkModus == 'insert') || ($chkModus == 'modify')) && ($intGlobalWriteAccess == 0)) {
|
|
||||||
$strSQLx = "`$preTableName` SET `$preKeyField`='$chkTfValue1', `alias`='$chkTfValue2', "
|
|
||||||
. "`contactgroups`=$intMselValue1, `contactgroups_tploptions`=$chkRadValue1, "
|
|
||||||
. "`minimum_importance`=$chkTfNullVal1, "
|
|
||||||
. "`host_notifications_enabled`='$chkRadValue2', `service_notifications_enabled`='$chkRadValue3', "
|
|
||||||
. "`host_notification_period`='$chkSelValue1', `service_notification_period`='$chkSelValue2', "
|
|
||||||
. "`host_notification_options`='$strHO', `host_notification_commands_tploptions`=$chkRadValue4, "
|
|
||||||
. "`service_notification_options`='$strSO', `host_notification_commands`=$intMselValue2, "
|
|
||||||
. "`service_notification_commands`=$intMselValue3, "
|
|
||||||
. "`service_notification_commands_tploptions`=$chkRadValue5, `can_submit_commands`='$chkRadValue8', "
|
|
||||||
. "`retain_status_information`='$chkRadValue6', `retain_nonstatus_information`='$chkRadValue7', "
|
|
||||||
. "`email`='$chkTfValue3', `pager`='$chkTfValue4', `address1`='$chkTfValue5', `address2`='$chkTfValue6', "
|
|
||||||
. "`address3`='$chkTfValue7', `address4`='$chkTfValue8', `address5`='$chkTfValue9', "
|
|
||||||
. "`address6`='$chkTfValue10', `use_variables`='$intVariables', `use_template`=$intTemplates, "
|
|
||||||
. $preSQLCommon2;
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$strSQL = 'INSERT INTO ' .$strSQLx;
|
|
||||||
} else {
|
|
||||||
$strSQL = 'UPDATE ' .$strSQLx. ' WHERE `id`=' .$chkDataId;
|
|
||||||
}
|
|
||||||
if ($intWriteAccessId == 0) {
|
|
||||||
if ($chkTfValue1 != '') {
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$chkDataId = $intInsertId;
|
|
||||||
}
|
|
||||||
if ($intReturn == 1) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strInfoMessage);
|
|
||||||
$myDataClass->updateStatusTable($preTableName);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$myDataClass->writeLog(translate('New contact template inserted:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$myDataClass->writeLog(translate('Contact template modified:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Insert/update relations
|
|
||||||
// =======================
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
if ($intMselValue1 != 0) {
|
|
||||||
$intRet1 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkContacttemplateToContactgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue1
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet1) && ($intRet1 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue2 != 0) {
|
|
||||||
$intRet2 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkContacttemplateToCommandHost',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue2
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet2) && ($intRet2 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue3 != 0) {
|
|
||||||
$intRet3 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkContacttemplateToCommandService',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue3
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet3) && ($intRet3 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
} elseif ($chkModus == 'modify') {
|
|
||||||
if ($intMselValue1 != 0) {
|
|
||||||
$intRet1 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkContacttemplateToContactgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue1
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet1 = $myDataClass->dataDeleteRelation('tbl_lnkContacttemplateToContactgroup', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet1 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue2 != 0) {
|
|
||||||
$intRet2 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkContacttemplateToCommandHost',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue2
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet2 = $myDataClass->dataDeleteRelation('tbl_lnkContacttemplateToCommandHost', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet2 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue3 != 0) {
|
|
||||||
$intRet3 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkContacttemplateToCommandService',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue3
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet3 = $myDataClass->dataDeleteRelation(
|
|
||||||
'tbl_lnkContacttemplateToCommandService',
|
|
||||||
$chkDataId
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if ($intRet3 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//if (($intRet1 + $intRet2 + $intRet3) != 0) {
|
|
||||||
//$strInfoMessage = "";
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
// Insert/update templates from session data
|
|
||||||
// =========================================
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$strSQL = 'DELETE FROM `tbl_lnkContacttemplateToContacttemplate` WHERE `idMaster`=' .$chkDataId;
|
|
||||||
$booReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (isset($_SESSION['templatedefinition']) && is_array($_SESSION['templatedefinition']) &&
|
|
||||||
(count($_SESSION['templatedefinition']) != 0)) {
|
|
||||||
$intSortId = 1;
|
|
||||||
/** @noinspection ForeachSourceInspection */
|
|
||||||
foreach ($_SESSION['templatedefinition'] as $elem) {
|
|
||||||
if ($elem['status'] == 0) {
|
|
||||||
$strSQL = 'INSERT INTO `tbl_lnkContacttemplateToContacttemplate` (`idMaster`, '
|
|
||||||
. "`idSlave`,`idTable`,`idSort`) VALUES ($chkDataId,".$elem['idSlave']. ', '
|
|
||||||
. $elem['idTable']. ',' .$intSortId. ')';
|
|
||||||
$booReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$intSortId++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Insert/update variables from session data
|
|
||||||
// =========================================
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$strSQL = 'SELECT * '
|
|
||||||
. 'FROM `tbl_lnkContacttemplateToVariabledefinition` WHERE `idMaster`=' .$chkDataId;
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrData, $intDataCount);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intDataCount != 0) {
|
|
||||||
foreach ($arrData as $elem) {
|
|
||||||
$strSQL = 'DELETE FROM `tbl_variabledefinition` WHERE `id`=' .$elem['idSlave'];
|
|
||||||
$booReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$strSQL = 'DELETE FROM `tbl_lnkContacttemplateToVariabledefinition` '
|
|
||||||
. 'WHERE `idMaster`=' .$chkDataId;
|
|
||||||
$booReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (isset($_SESSION['variabledefinition']) && is_array($_SESSION['variabledefinition']) &&
|
|
||||||
(count($_SESSION['variabledefinition']) != 0)) {
|
|
||||||
foreach ($_SESSION['variabledefinition'] as $elem) {
|
|
||||||
if ($elem['status'] == 0) {
|
|
||||||
$strSQL = 'INSERT INTO `tbl_variabledefinition` (`name`,`value`,`last_modified`) '
|
|
||||||
. "VALUES ('".$elem['definition']."','".$elem['range']."',now())";
|
|
||||||
$booReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
$strSQL = 'INSERT INTO `tbl_lnkContacttemplateToVariabledefinition` (`idMaster`, '
|
|
||||||
. "`idSlave`) VALUES ($chkDataId,$intInsertId)";
|
|
||||||
$booReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Database entry failed! Not all necessary data filled in!'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Database entry failed! No write access!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
if ($chkModus != 'add') {
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Get date/time of last database and config file manipulation
|
|
||||||
// ===========================================================
|
|
||||||
$intReturn = $myConfigClass->lastModifiedFile($preTableName, $arrTimeData, $strTimeInfoString);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Singe data form
|
|
||||||
// ===============
|
|
||||||
if ($chkModus == 'add') {
|
|
||||||
$conttp->setVariable('TITLE', translate('Define contact templates (contacttemplates.cfg)'));
|
|
||||||
// Do not show modified time list
|
|
||||||
$intNoTime = 1;
|
|
||||||
// Process template selection fields (Spezial)
|
|
||||||
$strWhere = '';
|
|
||||||
if (isset($arrModifyData) && ($chkSelModify == 'modify')) {
|
|
||||||
$strWhere = 'AND `id` <> ' .$arrModifyData['id'];
|
|
||||||
}
|
|
||||||
$strSQL1 = "SELECT `id`,`$preKeyField`, `active` FROM `$preTableName` "
|
|
||||||
. "WHERE $strDomainWhere $strWhere ORDER BY `$preKeyField`";
|
|
||||||
$booReturn1 = $myDBClass->hasDataArray($strSQL1, $arrDataTpl, $intDataCountTpl);
|
|
||||||
if ($booReturn1 == false) {
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intDataCountTpl != 0) {
|
|
||||||
/** @var array $arrDataTpl */
|
|
||||||
foreach ($arrDataTpl as $elem) {
|
|
||||||
if ($elem['active'] == 0) {
|
|
||||||
$strActive = ' [inactive]';
|
|
||||||
$conttp->setVariable('SPECIAL_STYLE', 'inactive_option');
|
|
||||||
} else {
|
|
||||||
$strActive = '';
|
|
||||||
$conttp->setVariable('SPECIAL_STYLE', '');
|
|
||||||
}
|
|
||||||
$conttp->setVariable('DAT_TEMPLATE', htmlspecialchars($elem[$preKeyField], ENT_QUOTES, 'UTF-8').$strActive);
|
|
||||||
$conttp->setVariable('DAT_TEMPLATE_ID', $elem['id']. '::1');
|
|
||||||
$conttp->parse('template');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$strSQL2 = 'SELECT `id`, `name`, `active` FROM `tbl_contact` '
|
|
||||||
. "WHERE `name` <> '' AND $strDomainWhere2 ORDER BY name";
|
|
||||||
$booReturn2 = $myDBClass->hasDataArray($strSQL2, $arrDataHpl, $intDataCountHpl);
|
|
||||||
if ($booReturn2 == false) {
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intDataCountHpl != 0) {
|
|
||||||
/** @var array $arrDataHpl */
|
|
||||||
foreach ($arrDataHpl as $elem) {
|
|
||||||
if ($elem['active'] == 0) {
|
|
||||||
$strActive = ' [inactive]';
|
|
||||||
$conttp->setVariable('SPECIAL_STYLE', 'inactive_option');
|
|
||||||
} else {
|
|
||||||
$strActive = '';
|
|
||||||
$conttp->setVariable('SPECIAL_STYLE', '');
|
|
||||||
}
|
|
||||||
$conttp->setVariable('DAT_TEMPLATE', htmlspecialchars($elem['name'], ENT_QUOTES, 'UTF-8').$strActive);
|
|
||||||
$conttp->setVariable('DAT_TEMPLATE_ID', $elem['id']. '::2');
|
|
||||||
$conttp->parse('template');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Process timeperiod selection fields
|
|
||||||
if (isset($arrModifyData['host_notification_period'])) {
|
|
||||||
$intFieldId = $arrModifyData['host_notification_period'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn1 = $myVisClass->parseSelectSimple('tbl_timeperiod', 'timeperiod_name', 'host_time', 1, $intFieldId);
|
|
||||||
if ($intReturn1 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['service_notification_period'])) {
|
|
||||||
$intFieldId = $arrModifyData['service_notification_period'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn2 = $myVisClass->parseSelectSimple('tbl_timeperiod', 'timeperiod_name', 'service_time', 1, $intFieldId);
|
|
||||||
if ($intReturn2 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process command selection fields
|
|
||||||
if (isset($arrModifyData['host_notification_commands'])) {
|
|
||||||
$intFieldId = $arrModifyData['host_notification_commands'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn3 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_command',
|
|
||||||
'command_name',
|
|
||||||
'host_command',
|
|
||||||
'tbl_lnkContacttemplateToCommandHost',
|
|
||||||
0,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn3 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['service_notification_commands'])) {
|
|
||||||
$intFieldId = $arrModifyData['service_notification_commands'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn4 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_command',
|
|
||||||
'command_name',
|
|
||||||
'service_command',
|
|
||||||
'tbl_lnkContacttemplateToCommandService',
|
|
||||||
0,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn4 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process contactgroup selection field
|
|
||||||
if (isset($arrModifyData['contactgroups'])) {
|
|
||||||
$intFieldId = $arrModifyData['contactgroups'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn5 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_contactgroup',
|
|
||||||
'contactgroup_name',
|
|
||||||
'contactgroup',
|
|
||||||
'tbl_lnkContacttemplateToContactgroup',
|
|
||||||
2,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn5 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process acces group selection field
|
|
||||||
if (isset($arrModifyData['access_group'])) {
|
|
||||||
$intFieldId = $arrModifyData['access_group'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn6 = $myVisClass->parseSelectSimple('tbl_group', 'groupname', 'acc_group', 0, $intFieldId);
|
|
||||||
if ($intReturn6 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Initial add/modify form definitions
|
|
||||||
$strChbFields = 'HNE,SNE,RSI,CSC,RNS,TPL,SEC,HOC,COG';
|
|
||||||
$myContentClass->addFormInit($conttp, $strChbFields);
|
|
||||||
if ($intDataWarning == 1) {
|
|
||||||
$conttp->setVariable('WARNING', $strDBWarning. '<br>' .translate('Saving not possible!'));
|
|
||||||
}
|
|
||||||
if ($intVersion == 4) {
|
|
||||||
$conttp->setVariable('HOST_OPTION_FIELDS', 'chbGr1a,chbGr1b,chbGr1c,chbGr1d,chbGr1e,chbGr1f');
|
|
||||||
$conttp->setVariable('SERVICE_OPTION_FIELDS', 'chbGr2a,chbGr2b,chbGr2c,chbGr2d,chbGr2e,chbGr2f,chbGr2g');
|
|
||||||
}
|
|
||||||
if ($intVersion == 3) {
|
|
||||||
$conttp->setVariable('HOST_OPTION_FIELDS', 'chbGr1a,chbGr1b,chbGr1c,chbGr1d,chbGr1e,chbGr1f');
|
|
||||||
$conttp->setVariable('SERVICE_OPTION_FIELDS', 'chbGr2a,chbGr2b,chbGr2c,chbGr2d,chbGr2e,chbGr2f,chbGr2g');
|
|
||||||
}
|
|
||||||
if ($intVersion < 3) {
|
|
||||||
$conttp->setVariable('HOST_OPTION_FIELDS', 'chbGr1a,chbGr1b,chbGr1c,chbGr1d,chbGr1f');
|
|
||||||
$conttp->setVariable('SERVICE_OPTION_FIELDS', 'chbGr2a,chbGr2b,chbGr2c,chbGr2d,chbGr2e,chbGr2g');
|
|
||||||
$conttp->setVariable('VERSION_20_VALUE_MUST', ',tfValue2');
|
|
||||||
}
|
|
||||||
// Insert data from database in "modify" mode
|
|
||||||
if (isset($arrModifyData) && ($chkSelModify == 'modify')) {
|
|
||||||
// Check relation information to find out locked configuration datasets
|
|
||||||
$intLocked = $myDataClass->infoRelation($preTableName, $arrModifyData['id'], $preKeyField);
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strRelMessage);
|
|
||||||
$strInfo = '<br><span class="redmessage">' .translate('Entry cannot be activated because it is used by '
|
|
||||||
. 'another configuration'). ':</span>';
|
|
||||||
$strInfo .= '<br><span class="greenmessage">' .$strRelMessage. '</span>';
|
|
||||||
// Process data
|
|
||||||
$myContentClass->addInsertData($conttp, $arrModifyData, $intLocked, $strInfo, $strChbFields);
|
|
||||||
// Process radio fields
|
|
||||||
$conttp->setVariable('DAT_HNE' .$arrModifyData['host_notifications_enabled']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_SNE' .$arrModifyData['service_notifications_enabled']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_RSI' .$arrModifyData['retain_status_information']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_CSC' .$arrModifyData['can_submit_commands']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_RNS' .$arrModifyData['retain_nonstatus_information']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_TPL' .$arrModifyData['use_template_tploptions']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable(
|
|
||||||
'DAT_SEC' .$arrModifyData['service_notification_commands_tploptions']. '_CHECKED',
|
|
||||||
'checked'
|
|
||||||
);
|
|
||||||
$conttp->setVariable('DAT_HOC' .$arrModifyData['host_notification_commands_tploptions']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_COG' .$arrModifyData['contactgroups_tploptions']. '_CHECKED', 'checked');
|
|
||||||
// Process option fields
|
|
||||||
foreach (explode(',', $arrModifyData['host_notification_options']) as $elem) {
|
|
||||||
$conttp->setVariable('DAT_HO' .strtoupper($elem). '_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
foreach (explode(',', $arrModifyData['service_notification_options']) as $elem) {
|
|
||||||
$conttp->setVariable('DAT_SO' .strtoupper($elem). '_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$conttp->parse('datainsert');
|
|
||||||
$conttp->show('datainsert');
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// List view
|
|
||||||
// ==========
|
|
||||||
if ($chkModus == 'display') {
|
|
||||||
// Initial list view definitions
|
|
||||||
$myContentClass->listViewInit($mastertp);
|
|
||||||
$mastertp->setVariable('TITLE', translate('Define contact templates (contacttemplates.cfg)'));
|
|
||||||
$mastertp->setVariable('FIELD_1', translate('Contact name'));
|
|
||||||
$mastertp->setVariable('FIELD_2', translate('Description'));
|
|
||||||
// Process filter string
|
|
||||||
if ($_SESSION['search'][$preSearchSession] != '') {
|
|
||||||
$strSearchTxt = $_SESSION['search'][$preSearchSession];
|
|
||||||
$strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%' OR `alias` LIKE '%".$strSearchTxt."%' OR "
|
|
||||||
. "`email` LIKE '%".$strSearchTxt."%' OR `pager` LIKE '%".$strSearchTxt."%' OR "
|
|
||||||
. "`address1` LIKE '%".$strSearchTxt."%' OR `address2` LIKE '%".$strSearchTxt."%' OR "
|
|
||||||
. "`address3` LIKE '%".$strSearchTxt."%' OR `address4` LIKE '%".$strSearchTxt."%' OR "
|
|
||||||
. "`address5` LIKE '%".$strSearchTxt."%' OR `address6` LIKE '%".$strSearchTxt."%')";
|
|
||||||
}
|
|
||||||
// Row sorting
|
|
||||||
$strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir";
|
|
||||||
if ($hidSortBy == 2) {
|
|
||||||
$strOrderString = "ORDER BY `config_id`, `alias` $hidSortDir";
|
|
||||||
}
|
|
||||||
// Count datasets
|
|
||||||
$strSQL = 'SELECT count(*) AS `number` '
|
|
||||||
. "FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)";
|
|
||||||
$booReturn1 = $myDBClass->hasSingleDataset($strSQL, $arrDataLinesCount);
|
|
||||||
if ($booReturn1 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$intLineCount = (int)$arrDataLinesCount['number'];
|
|
||||||
if ($intLineCount < $chkLimit) {
|
|
||||||
$chkLimit = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Get datasets
|
|
||||||
$strSQL = "SELECT `id`, `$preKeyField`, `alias`, `active`, `register`, `config_id`, `access_group` "
|
|
||||||
. "FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess) "
|
|
||||||
. "$strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
|
||||||
$booReturn2 = $myDBClass->hasDataArray($strSQL, $arrDataLines, $intDataCount);
|
|
||||||
if ($booReturn2 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process data
|
|
||||||
$myContentClass->listData($mastertp, $arrDataLines, $intDataCount, $intLineCount, $preKeyField, 'alias');
|
|
||||||
}
|
|
||||||
// Show messages
|
|
||||||
$myContentClass->showMessages(
|
|
||||||
$mastertp,
|
|
||||||
$strErrorMessage,
|
|
||||||
$strInfoMessage,
|
|
||||||
$strConsistMessage,
|
|
||||||
$arrTimeData,
|
|
||||||
$strTimeInfoString,
|
|
||||||
$intNoTime
|
|
||||||
);
|
|
||||||
//
|
|
||||||
// Process footer
|
|
||||||
// ==============
|
|
||||||
$myContentClass->showFooter($maintp, $setFileVersion);
|
|
@ -1,187 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Admin domain administration
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 35;
|
|
||||||
$preContent = 'admin/datadomain.htm.tpl';
|
|
||||||
$preListTpl = 'admin/datalist_common.htm.tpl';
|
|
||||||
$preTableName = 'tbl_datadomain';
|
|
||||||
$preKeyField = 'domain';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Add or modify data
|
|
||||||
// ==================
|
|
||||||
if ((($chkModus == 'insert') || ($chkModus == 'modify')) && ($intGlobalWriteAccess == 0)) {
|
|
||||||
if ($chkTfValue1 == 'common') {
|
|
||||||
$chkSelValue1 = 0;
|
|
||||||
}
|
|
||||||
$strSQLx = "`$preTableName` SET `$preKeyField`='$chkTfValue1', `alias`='$chkTfValue2', `targets`=$chkSelValue1, "
|
|
||||||
. "`version`=$chkSelValue2, `access_group`=$chkSelAccGr, `enable_common`=$chkSelValue3, "
|
|
||||||
. "`active`='$chkActive', `last_modified`=NOW()";
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$strSQL = 'INSERT INTO ' .$strSQLx;
|
|
||||||
} else {
|
|
||||||
$strSQL = 'UPDATE ' .$strSQLx. ' WHERE `id`=' .$chkDataId;
|
|
||||||
}
|
|
||||||
if ($intWriteAccessId == 0) {
|
|
||||||
if (($chkTfValue1 != '') && ($chkTfValue2 != '') && (($chkTfValue1 == 'common') || ($chkSelValue1 != 0))) {
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$chkDataId = $intInsertId;
|
|
||||||
}
|
|
||||||
if ($intReturn == 1) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strInfoMessage);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$myDataClass->writeLog(translate('New Domain inserted:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$myDataClass->writeLog(translate('Domain modified:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Database entry failed! Not all necessary data filled in!'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Database entry failed! No write access!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
if ($chkModus != 'add') {
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Single view
|
|
||||||
// ===========
|
|
||||||
if ($chkModus == 'add') {
|
|
||||||
// Process configuration target selection fields
|
|
||||||
|
|
||||||
if (isset($arrModifyData['targets'])) {
|
|
||||||
$intFieldId = $arrModifyData['targets'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn1 = $myVisClass->parseSelectSimple('tbl_configtarget', 'target', 'target', 0, $intFieldId);
|
|
||||||
if ($intReturn1 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
$myVisClass->processMessage(translate('Attention, no configuration targets defined!'), $strDBWarning);
|
|
||||||
$intDataWarning = 1;
|
|
||||||
}
|
|
||||||
// Process acces group selection field
|
|
||||||
if (isset($arrModifyData['access_group'])) {
|
|
||||||
$intFieldId = $arrModifyData['access_group'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn2 = $myVisClass->parseSelectSimple('tbl_group', 'groupname', 'acc_group', 0, $intFieldId);
|
|
||||||
if ($intReturn2 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Initial add/modify form definitions
|
|
||||||
$myContentClass->addFormInit($conttp);
|
|
||||||
if ($intDataWarning == 1) {
|
|
||||||
$conttp->setVariable('WARNING', $strDBWarning. '<br>' .translate('Saving not possible!'));
|
|
||||||
}
|
|
||||||
$conttp->setVariable('TITLE', translate('Data domain administration'));
|
|
||||||
$conttp->setVariable('FILL_ALLFIELDS', translate('Please fill in all fields marked with an *'));
|
|
||||||
$conttp->setVariable('FILL_ILLEGALCHARS', translate('The following field contains illegal characters:'));
|
|
||||||
$conttp->setVariable('ENABLE', translate('Enable'));
|
|
||||||
$conttp->setVariable('DISABLE', translate('Disable'));
|
|
||||||
// Insert data from database in "modify" mode
|
|
||||||
if (isset($arrModifyData) && ($chkSelModify == 'modify')) {
|
|
||||||
// Process data
|
|
||||||
$myContentClass->addInsertData($conttp, $arrModifyData, 0, '');
|
|
||||||
// Nagios version
|
|
||||||
$conttp->setVariable('VER_SELECTED_' .$arrModifyData['version'], 'selected');
|
|
||||||
// Enable common domain
|
|
||||||
$conttp->setVariable('ENA_COMMON_SELECTED_' .$arrModifyData['enable_common'], 'selected');
|
|
||||||
// Domain localhost cant' be renamed
|
|
||||||
if ($arrModifyData['domain'] == 'localhost') {
|
|
||||||
$conttp->setVariable('DOMAIN_DISABLE', 'readonly');
|
|
||||||
$conttp->setVariable('LOCKCLASS', 'inputlock');
|
|
||||||
} elseif ($arrModifyData['domain'] == 'common') {
|
|
||||||
$conttp->setVariable('DOMAIN_DISABLE', 'readonly');
|
|
||||||
$conttp->setVariable('COMMON_INVISIBLE', 'class="elementHide"');
|
|
||||||
$conttp->setVariable('LOCKCLASS', 'inputlock');
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('CHECK_TARGETS', ',selValue1');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$conttp->parse('datainsert');
|
|
||||||
$conttp->show('datainsert');
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// List view
|
|
||||||
// ==========
|
|
||||||
if ($chkModus == 'display') {
|
|
||||||
// Initial list view definitions
|
|
||||||
$myContentClass->listViewInit($mastertp);
|
|
||||||
$mastertp->setVariable('TITLE', translate('Data domain administration'));
|
|
||||||
$mastertp->setVariable('FIELD_1', translate('Data domain'));
|
|
||||||
$mastertp->setVariable('FIELD_2', translate('Description'));
|
|
||||||
// Row sorting
|
|
||||||
$strOrderString = "ORDER BY `domain` $hidSortDir";
|
|
||||||
if ($hidSortBy == 2) {
|
|
||||||
$strOrderString = "ORDER BY `alias` $hidSortDir";
|
|
||||||
}
|
|
||||||
// Count datasets
|
|
||||||
$strSQL = "SELECT count(*) AS `number` FROM `$preTableName` WHERE `access_group` IN ($strAccess)";
|
|
||||||
$booReturn1 = $myDBClass->hasSingleDataset($strSQL, $arrDataLinesCount);
|
|
||||||
if ($booReturn1 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$intLineCount = (int)$arrDataLinesCount['number'];
|
|
||||||
if ($intLineCount < $chkLimit) {
|
|
||||||
$chkLimit = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Get datasets
|
|
||||||
$strSQL = 'SELECT `id`, `domain`, `alias`, `active`, `nodelete`, `access_group` '
|
|
||||||
. "FROM `$preTableName` WHERE `access_group` IN ($strAccess) $strOrderString "
|
|
||||||
. "LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
|
||||||
$booReturn2 = $myDBClass->hasDataArray($strSQL, $arrDataLines, $intDataCount);
|
|
||||||
if ($booReturn2 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process data
|
|
||||||
$myContentClass->listData($mastertp, $arrDataLines, $intDataCount, $intLineCount, $preKeyField, 'alias');
|
|
||||||
}
|
|
||||||
// Show messages
|
|
||||||
$myContentClass->showMessages($mastertp, $strErrorMessage, $strInfoMessage, $strConsistMessage, array(), '', 1);
|
|
||||||
//
|
|
||||||
// Process footer
|
|
||||||
// ==============
|
|
||||||
$myContentClass->showFooter($maintp, $setFileVersion);
|
|
@ -1,180 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Admin file deletion
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 26;
|
|
||||||
$preContent = 'admin/delbackup.htm.tpl';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Get configuration set ID
|
|
||||||
// ========================
|
|
||||||
$myConfigClass->getConfigTargets($arrConfigSet);
|
|
||||||
$intConfigId = $arrConfigSet[0];
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'method', $intMethod);
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'backupdir', $strBackupDir);
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'hostbackup', $strHostBackupDir);
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'servicebackup', $strServiceBackupDir);
|
|
||||||
//
|
|
||||||
// Process form inputs
|
|
||||||
// ===================
|
|
||||||
if (($chkMselValue1[0] != '') && ($chkStatus == 1)) {
|
|
||||||
/** @var array $chkMselValue1 */
|
|
||||||
foreach ($chkMselValue1 as $elem) {
|
|
||||||
$intCheck = $myConfigClass->removeFile(trim($elem), $intConfigId);
|
|
||||||
$strFileTmp1 = str_replace($strServiceBackupDir, '', $elem);
|
|
||||||
$strFileTmp2 = str_replace($strHostBackupDir, '', $strFileTmp1);
|
|
||||||
$strFile = str_replace($strBackupDir, '', $strFileTmp2);
|
|
||||||
if ($intCheck == 0) {
|
|
||||||
$myDataClass->writeLog(translate('File deleted'). ': ' .trim($strFile));
|
|
||||||
$myVisClass->processMessage($strFile. ' ' .translate('successfully deleted'). '!', $strInfoMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Include content
|
|
||||||
// ===============
|
|
||||||
$conttp->setVariable('TITLE', translate('Delete backup files'));
|
|
||||||
$conttp->parse('header');
|
|
||||||
$conttp->show('header');
|
|
||||||
$conttp->setVariable('LANG_SEARCH_STRING', translate('Filter string'));
|
|
||||||
$conttp->setVariable('LANG_SEARCH', translate('Search'));
|
|
||||||
$conttp->setVariable('LANG_DELETE', translate('Delete'));
|
|
||||||
$conttp->setVariable('LANG_DELETE_SEARCH', translate('Reset filter'));
|
|
||||||
$conttp->setVariable('DAT_SEARCH', $chkTfSearch);
|
|
||||||
$conttp->setVariable('BACKUPFILE', translate('Backup file'));
|
|
||||||
$conttp->setVariable('LANG_REQUIRED', translate('required'));
|
|
||||||
$conttp->setVariable('MAKE', translate('Delete'));
|
|
||||||
$conttp->setVariable('ABORT', translate('Abort'));
|
|
||||||
$conttp->setVariable('CTRL_INFO', translate('Hold CTRL to select<br>more than one entry'));
|
|
||||||
$conttp->setVariable('IMAGE_PATH', $_SESSION['SETS']['path']['base_url']. 'images/');
|
|
||||||
$conttp->setVariable('ACTION_INSERT', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
// Build a local file list
|
|
||||||
if ($intMethod == 1) {
|
|
||||||
$output = array();
|
|
||||||
$myConfigClass->storeDirToArray($strBackupDir, "\.cfg_old", '', $output, $strErrorMessage);
|
|
||||||
if (is_array($output) && (count($output) != 0)) {
|
|
||||||
foreach ($output as $elem) {
|
|
||||||
if (($chkTfSearch == '') || (substr_count($elem, $chkTfSearch) != 0)) {
|
|
||||||
$conttp->setVariable('DAT_BACKUPFILE', $elem);
|
|
||||||
$conttp->parse('filelist');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} elseif ($intMethod == 2) {
|
|
||||||
// Set up basic connection
|
|
||||||
if ($myConfigClass->getFTPConnection($intConfigId) == '0') {
|
|
||||||
$arrFiles = array();
|
|
||||||
$arrFiles1 = ftp_nlist($myConfigClass->resConnectId, $strBackupDir);
|
|
||||||
if (is_array($arrFiles1)) {
|
|
||||||
$arrFiles = array_merge($arrFiles, $arrFiles1);
|
|
||||||
}
|
|
||||||
$arrFiles2 = ftp_nlist($myConfigClass->resConnectId, $strHostBackupDir);
|
|
||||||
if (is_array($arrFiles2)) {
|
|
||||||
$arrFiles = array_merge($arrFiles, $arrFiles2);
|
|
||||||
}
|
|
||||||
$arrFiles3 = ftp_nlist($myConfigClass->resConnectId, $strServiceBackupDir);
|
|
||||||
if (is_array($arrFiles3)) {
|
|
||||||
$arrFiles = array_merge($arrFiles, $arrFiles3);
|
|
||||||
}
|
|
||||||
if (is_array($arrFiles) && (count($arrFiles) != 0)) {
|
|
||||||
foreach ($arrFiles as $elem) {
|
|
||||||
if (!substr_count($elem, 'cfg')) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (($chkTfSearch == '') || (substr_count($elem, $chkTfSearch) != 0)) {
|
|
||||||
$conttp->setVariable('DAT_BACKUPFILE', $elem);
|
|
||||||
$conttp->parse('filelist');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('No backup files or no permission to read the backup files'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
ftp_close($myConfigClass->resConnectId);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
} elseif ($intMethod == 3) {
|
|
||||||
// Set up basic connection
|
|
||||||
if ($myConfigClass->getSSHConnection($intConfigId) == '0') {
|
|
||||||
$arrFiles = array();
|
|
||||||
$intReturn = $myConfigClass->sendSSHCommand('ls ' .$strBackupDir. '*.cfg_old*', $arrFiles1);
|
|
||||||
if (($intReturn == 0) && is_array($arrFiles1)) {
|
|
||||||
$arrFiles = array_merge($arrFiles, $arrFiles1);
|
|
||||||
}
|
|
||||||
$intReturn = $myConfigClass->sendSSHCommand('ls ' .$strHostBackupDir. '*.cfg_old*', $arrFiles2);
|
|
||||||
if (($intReturn == 0) && is_array($arrFiles2)) {
|
|
||||||
$arrFiles = array_merge($arrFiles, $arrFiles2);
|
|
||||||
}
|
|
||||||
$intReturn = $myConfigClass->sendSSHCommand('ls ' .$strServiceBackupDir. '*.cfg_old*', $arrFiles3);
|
|
||||||
if (($intReturn == 0) && is_array($arrFiles3)) {
|
|
||||||
$arrFiles = array_merge($arrFiles, $arrFiles3);
|
|
||||||
}
|
|
||||||
if (is_array($arrFiles) && (count($arrFiles) != 0)) {
|
|
||||||
foreach ($arrFiles as $elem) {
|
|
||||||
if (!substr_count($elem, 'cfg_old')) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (($chkTfSearch == '') || (substr_count($elem, $chkTfSearch) != 0)) {
|
|
||||||
$conttp->setVariable('DAT_BACKUPFILE', str_replace('//', '/', $elem));
|
|
||||||
$conttp->parse('filelist');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('No backup files or no permission to read the backup files'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($strErrorMessage != '') {
|
|
||||||
$conttp->setVariable('ERRORMESSAGE', $strErrorMessage);
|
|
||||||
}
|
|
||||||
$conttp->setVariable('INFOMESSAGE', $strInfoMessage);
|
|
||||||
// Check access rights for adding new objects
|
|
||||||
if ($myVisClass->checkAccountGroup($prePageKey, 'write') != 0) {
|
|
||||||
$conttp->setVariable('ADD_CONTROL', 'disabled="disabled"');
|
|
||||||
}
|
|
||||||
$conttp->parse('main');
|
|
||||||
$conttp->show('main');
|
|
||||||
//
|
|
||||||
// Footer ausgeben
|
|
||||||
// ===============
|
|
||||||
$maintp->setVariable('VERSION_INFO', "<a href='https://sourceforge.net/projects/nagiosql/' "
|
|
||||||
. "target='_blank'>NagiosQL</a> $setFileVersion");
|
|
||||||
$maintp->parse('footer');
|
|
||||||
$maintp->show('footer');
|
|
@ -1,191 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Admin file deletion
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 27;
|
|
||||||
$preContent = 'admin/delbackup.htm.tpl';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Get configuration set ID
|
|
||||||
// ========================
|
|
||||||
$myConfigClass->getConfigTargets($arrConfigSet);
|
|
||||||
$intConfigId = $arrConfigSet[0];
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'method', $intMethod);
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'basedir', $strBaseDir);
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'hostconfig', $strHostDir);
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'serviceconfig', $strServiceDir);
|
|
||||||
//
|
|
||||||
// Process form inputs
|
|
||||||
// ===================
|
|
||||||
/** @var array $chkMselValue1 */
|
|
||||||
if (($chkMselValue1[0] != '') && ($chkStatus == 1)) {
|
|
||||||
foreach ($chkMselValue1 as $elem) {
|
|
||||||
$intCheck = $myConfigClass->removeFile(trim($elem), $intConfigId);
|
|
||||||
$strFileTmp1 = str_replace($strServiceDir, '', $elem);
|
|
||||||
$strFileTmp2 = str_replace($strHostDir, '', $strFileTmp1);
|
|
||||||
$strFile = str_replace($strBaseDir, '', $strFileTmp2);
|
|
||||||
if ($intCheck == 0) {
|
|
||||||
$myDataClass->writeLog(translate('File deleted'). ': ' .trim($strFile));
|
|
||||||
$myVisClass->processMessage($strFile. ' ' .translate('successfully deleted'). '!', $strInfoMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Include content
|
|
||||||
// ===============
|
|
||||||
$conttp->setVariable('TITLE', translate('Delete config files'));
|
|
||||||
$conttp->parse('header');
|
|
||||||
$conttp->show('header');
|
|
||||||
$conttp->setVariable('LANG_SEARCH_STRING', translate('Filter string'));
|
|
||||||
$conttp->setVariable('LANG_SEARCH', translate('Search'));
|
|
||||||
$conttp->setVariable('LANG_DELETE', translate('Delete'));
|
|
||||||
$conttp->setVariable('LANG_DELETE_SEARCH', translate('Reset filter'));
|
|
||||||
$conttp->setVariable('DAT_SEARCH', $chkTfSearch);
|
|
||||||
$conttp->setVariable('BACKUPFILE', translate('Configuration file'));
|
|
||||||
$conttp->setVariable('LANG_REQUIRED', translate('required'));
|
|
||||||
$conttp->setVariable('MAKE', translate('Delete'));
|
|
||||||
$conttp->setVariable('ABORT', translate('Abort'));
|
|
||||||
$conttp->setVariable('CTRL_INFO', translate('Hold CTRL to select<br>more than one entry'));
|
|
||||||
$conttp->setVariable('IMAGE_PATH', $_SESSION['SETS']['path']['base_url']. 'images/');
|
|
||||||
$conttp->setVariable('ACTION_INSERT', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
// Build a local file list
|
|
||||||
if ($intMethod == 1) {
|
|
||||||
$output = array();
|
|
||||||
$myConfigClass->storeDirToArray($strBaseDir, "\.cfg", '\.cfg_old', $output, $strErrorMessage);
|
|
||||||
if (is_array($output) && (count($output) != 0)) {
|
|
||||||
foreach ($output as $elem2) {
|
|
||||||
if (($chkTfSearch == '') || (substr_count($elem2, $chkTfSearch) != 0)) {
|
|
||||||
$conttp->setVariable('DAT_BACKUPFILE', $elem2);
|
|
||||||
$conttp->parse('filelist');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} elseif ($intMethod == 2) {
|
|
||||||
// Open ftp connection
|
|
||||||
if ($myConfigClass->getFTPConnection($intConfigId) == '0') {
|
|
||||||
$arrFiles = array();
|
|
||||||
$arrFiles1 = ftp_nlist($myConfigClass->resConnectId, $strBaseDir);
|
|
||||||
if (is_array($arrFiles1)) {
|
|
||||||
$arrFiles = array_merge($arrFiles, $arrFiles1);
|
|
||||||
}
|
|
||||||
$arrFiles2 = ftp_nlist($myConfigClass->resConnectId, $strHostDir);
|
|
||||||
if (is_array($arrFiles2)) {
|
|
||||||
$arrFiles = array_merge($arrFiles, $arrFiles2);
|
|
||||||
}
|
|
||||||
$arrFiles3 = ftp_nlist($myConfigClass->resConnectId, $strServiceDir);
|
|
||||||
if (is_array($arrFiles3)) {
|
|
||||||
$arrFiles = array_merge($arrFiles, $arrFiles3);
|
|
||||||
}
|
|
||||||
if (is_array($arrFiles) && (count($arrFiles) != 0)) {
|
|
||||||
foreach ($arrFiles as $elem) {
|
|
||||||
if (!substr_count($elem, 'cfg')) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (($chkTfSearch == '') || (substr_count($elem, $chkTfSearch) != 0)) {
|
|
||||||
$conttp->setVariable('DAT_BACKUPFILE', str_replace('//', '/', $elem));
|
|
||||||
$conttp->parse('filelist');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ftp_close($myConfigClass->resConnectId);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
} elseif ($intMethod == 3) {
|
|
||||||
// Open ssh connection
|
|
||||||
if ($myConfigClass->getSSHConnection($intConfigId) == '0') {
|
|
||||||
$intReturn = $myConfigClass->sendSSHCommand('ls '.$strBaseDir, $arrFiles1);
|
|
||||||
if (($intReturn == 0) && is_array($arrFiles1) && (count($arrFiles1) != 0)) {
|
|
||||||
foreach ($arrFiles1 as $elem) {
|
|
||||||
if (!substr_count($elem, 'cfg')) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (substr_count($elem, 'cgi.cfg') != 0) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (substr_count($elem, 'nagios.cfg') != 0) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (($chkTfSearch == '') || (substr_count($elem, $chkTfSearch) != 0)) {
|
|
||||||
$conttp->setVariable('DAT_BACKUPFILE', str_replace('//', '/', $strBaseDir. '/' .$elem));
|
|
||||||
$conttp->setVariable('DAT_BACKUPFILE_FULL', str_replace('//', '/', $strBaseDir. '/' .$elem));
|
|
||||||
$conttp->parse('filelist');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$intReturn = $myConfigClass->sendSSHCommand('ls '.$strHostDir, $arrFiles2);
|
|
||||||
if (($intReturn == 0) && is_array($arrFiles2) && (count($arrFiles2) != 0)) {
|
|
||||||
foreach ($arrFiles2 as $elem) {
|
|
||||||
if (!substr_count($elem, 'cfg')) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (($chkTfSearch == '') || (substr_count($elem, $chkTfSearch) != 0)) {
|
|
||||||
$conttp->setVariable('DAT_BACKUPFILE', str_replace('//', '/', $strHostDir. '/' .$elem));
|
|
||||||
$conttp->setVariable('DAT_BACKUPFILE_FULL', str_replace('//', '/', $strHostDir. '/' .$elem));
|
|
||||||
$conttp->parse('filelist');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$intReturn = $myConfigClass->sendSSHCommand('ls '.$strServiceDir, $arrFiles3);
|
|
||||||
if (($intReturn == 0) && is_array($arrFiles3) && (count($arrFiles3) != 0)) {
|
|
||||||
foreach ($arrFiles3 as $elem) {
|
|
||||||
if (!substr_count($elem, 'cfg')) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (($chkTfSearch == '') || (substr_count($elem, $chkTfSearch) != 0)) {
|
|
||||||
$conttp->setVariable('DAT_BACKUPFILE', str_replace('//', '/', $strServiceDir. '/' .$elem));
|
|
||||||
$conttp->setVariable('DAT_BACKUPFILE_FULL', str_replace('//', '/', $strServiceDir. '/' .$elem));
|
|
||||||
$conttp->parse('filelist');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($strErrorMessage != '') {
|
|
||||||
$conttp->setVariable('ERRORMESSAGE', $strErrorMessage);
|
|
||||||
}
|
|
||||||
$conttp->setVariable('INFOMESSAGE', $strInfoMessage);
|
|
||||||
// Check access rights for adding new objects
|
|
||||||
if ($myVisClass->checkAccountGroup($prePageKey, 'write') != 0) {
|
|
||||||
$conttp->setVariable('ADD_CONTROL', 'disabled="disabled"');
|
|
||||||
}
|
|
||||||
$conttp->parse('main');
|
|
||||||
$conttp->show('main');
|
|
||||||
//
|
|
||||||
// Footer ausgeben
|
|
||||||
// ===============
|
|
||||||
$maintp->setVariable('VERSION_INFO', "<a href='https://sourceforge.net/projects/nagiosql/' "
|
|
||||||
. "target='_blank'>NagiosQL</a> $setFileVersion");
|
|
||||||
$maintp->parse('footer');
|
|
||||||
$maintp->show('footer');
|
|
@ -1,61 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Download config file
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Version control
|
|
||||||
// ===============
|
|
||||||
session_cache_limiter('private_no_expire');
|
|
||||||
//
|
|
||||||
// Include preprocessing file
|
|
||||||
// ==========================
|
|
||||||
$preNoMain = 1;
|
|
||||||
$preNoLogin = 1;
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
//
|
|
||||||
// Process post parameters
|
|
||||||
// =======================
|
|
||||||
$chkTable = filter_input(INPUT_GET, 'table', FILTER_SANITIZE_STRING);
|
|
||||||
$chkConfig = filter_input(INPUT_GET, 'config', FILTER_SANITIZE_STRING);
|
|
||||||
$chkLine = filter_input(INPUT_GET, 'line', FILTER_VALIDATE_INT, array('options' => array('default' => 0)));
|
|
||||||
//
|
|
||||||
// Header output
|
|
||||||
// ===============
|
|
||||||
$arrConfig = $myConfigClass->getConfData();
|
|
||||||
if (isset($arrConfig[$chkTable])) {
|
|
||||||
$strFile = $arrConfig[$chkTable]['filename'];
|
|
||||||
} else {
|
|
||||||
$strFile = $chkConfig. '.cfg';
|
|
||||||
}
|
|
||||||
if ($strFile == '.cfg') {
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
header('Content-Disposition: attachment; filename=' .$strFile);
|
|
||||||
header('Content-Type: text/plain');
|
|
||||||
//
|
|
||||||
// Get data
|
|
||||||
// ========
|
|
||||||
if ($chkLine == 0) {
|
|
||||||
$myConfigClass->createConfig($chkTable, 1);
|
|
||||||
} else {
|
|
||||||
$myConfigClass->createConfigSingle($chkTable, $chkLine, 1);
|
|
||||||
}
|
|
||||||
$myDataClass->writeLog(translate('Download'). ' ' .$strFile);
|
|
201
admin/group.php
201
admin/group.php
@ -1,201 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Group administration
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 33;
|
|
||||||
$preContent = 'admin/group.htm.tpl';
|
|
||||||
$preListTpl = 'admin/datalist_common.htm.tpl';
|
|
||||||
$preSearchSession = 'group';
|
|
||||||
$preTableName = 'tbl_group';
|
|
||||||
$preKeyField = 'groupname';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
$preNoAccessGrp = 1;
|
|
||||||
$arrDataLines = array();
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Add or modify data
|
|
||||||
// ==================
|
|
||||||
if (($chkModus == 'insert') || ($chkModus == 'modify')) {
|
|
||||||
$strSQLx = "`$preTableName` SET `groupname`='$chkTfValue1', `description`='$chkTfValue2', `active`='$chkActive', "
|
|
||||||
. '`last_modified`=NOW()';
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$strSQL = 'INSERT INTO ' .$strSQLx;
|
|
||||||
} else {
|
|
||||||
$strSQL = 'UPDATE ' .$strSQLx. ' WHERE `id`=' .$chkDataId;
|
|
||||||
}
|
|
||||||
if ($intWriteAccessId == 0) {
|
|
||||||
if (($chkTfValue1 != '') && ($chkTfValue2 != '')) {
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$chkDataId = $intInsertId;
|
|
||||||
}
|
|
||||||
if ($intReturn == 1) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strInfoMessage);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$myDataClass->writeLog(translate('A new group added:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$myDataClass->writeLog(translate('User modified:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Insert/update user/group data from session data
|
|
||||||
// ===============================================
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$strSQL = "DELETE FROM `tbl_lnkGroupToUser` WHERE `idMaster`=$chkDataId";
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (isset($_SESSION['groupuser']) && is_array($_SESSION['groupuser']) &&
|
|
||||||
(count($_SESSION['groupuser']) != 0)) {
|
|
||||||
foreach ($_SESSION['groupuser'] as $elem) {
|
|
||||||
if ($elem['status'] == 0) {
|
|
||||||
$intRead = 0;
|
|
||||||
$intWrite = 0;
|
|
||||||
$intLink = 0;
|
|
||||||
if (substr_count($elem['rights'], 'READ') != 0) {
|
|
||||||
$intRead = 1;
|
|
||||||
}
|
|
||||||
if (substr_count($elem['rights'], 'WRITE') != 0) {
|
|
||||||
$intWrite = 1;
|
|
||||||
}
|
|
||||||
if (substr_count($elem['rights'], 'LINK') != 0) {
|
|
||||||
$intLink = 1;
|
|
||||||
}
|
|
||||||
if ($intWrite == 1) {
|
|
||||||
$intRead = 1;
|
|
||||||
$intLink = 1;
|
|
||||||
}
|
|
||||||
if ($intRead == 1) {
|
|
||||||
$intLink = 1;
|
|
||||||
}
|
|
||||||
// if ($intLink == 1) $intRead = 1;
|
|
||||||
$strSQL = 'INSERT INTO `tbl_lnkGroupToUser` (`idMaster`,`idSlave`,`read`,`write`,'
|
|
||||||
. "`link`) VALUES ($chkDataId,".$elem['user'].",'$intRead','$intWrite',"
|
|
||||||
. "'$intLink')";
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Database entry failed! Not all necessary data filled in!'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Database entry failed! No write access!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
if ($chkModus != 'add') {
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Singe data form
|
|
||||||
// ===============
|
|
||||||
if ($chkModus == 'add') {
|
|
||||||
// Process data fields
|
|
||||||
$strSQL = 'SELECT * FROM `tbl_user` WHERE `id`<>1 ORDER BY `username`';
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrDataLines, $intDataCount);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
if ($booReturn && ($intDataCount != 0)) {
|
|
||||||
foreach ($arrDataLines as $elem) {
|
|
||||||
$conttp->setVariable('DAT_USER_ID', $elem['id']);
|
|
||||||
$conttp->setVariable('DAT_USER', $elem['username']);
|
|
||||||
$conttp->parse('users');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Initial add/modify form definitions
|
|
||||||
$myContentClass->addFormInit($conttp);
|
|
||||||
$conttp->setVariable('TITLE', translate('Group administration'));
|
|
||||||
$conttp->setVariable('LANG_READ', translate('Read'));
|
|
||||||
$conttp->setVariable('LANG_WRITE', translate('Write'));
|
|
||||||
$conttp->setVariable('LANG_LINK', translate('Link'));
|
|
||||||
$conttp->setVariable('DAT_ID', $chkListId);
|
|
||||||
$conttp->setVariable('FILL_ALLFIELDS', translate('Please fill in all fields marked with an *'));
|
|
||||||
$conttp->setVariable('FILL_ILLEGALCHARS', translate('The following field contains illegal characters:'));
|
|
||||||
// Insert data from database in "modify" mode
|
|
||||||
if (isset($arrModifyData) && ($chkSelModify == 'modify')) {
|
|
||||||
// Process data
|
|
||||||
$myContentClass->addInsertData($conttp, $arrModifyData, 0, '');
|
|
||||||
}
|
|
||||||
$conttp->parse('datainsert');
|
|
||||||
$conttp->show('datainsert');
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// List view
|
|
||||||
// ==========
|
|
||||||
if ($chkModus == 'display') {
|
|
||||||
// Initial list view definitions
|
|
||||||
$myContentClass->listViewInit($mastertp);
|
|
||||||
$mastertp->setVariable('TITLE', translate('Group administration'));
|
|
||||||
$mastertp->setVariable('FIELD_1', translate('Groupname'));
|
|
||||||
$mastertp->setVariable('FIELD_2', translate('Description'));
|
|
||||||
// Row sorting
|
|
||||||
$strOrderString = "ORDER BY `groupname` $hidSortDir";
|
|
||||||
if ($hidSortBy == 2) {
|
|
||||||
$strOrderString = "ORDER BY `description` $hidSortDir";
|
|
||||||
}
|
|
||||||
// Count datasets
|
|
||||||
$strSQL = "SELECT count(*) AS `number` FROM `$preTableName`";
|
|
||||||
$booReturn1 = $myDBClass->hasSingleDataset($strSQL, $arrDataLinesCount);
|
|
||||||
if ($booReturn1 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$intLineCount = (int)$arrDataLinesCount['number'];
|
|
||||||
if ($intLineCount < $chkLimit) {
|
|
||||||
$chkLimit = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Get datasets
|
|
||||||
$strSQL = 'SELECT `id`, `groupname`, `description`, `active` '
|
|
||||||
. "FROM `$preTableName` $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
|
||||||
$booReturn2 = $myDBClass->hasDataArray($strSQL, $arrDataLines, $intDataCount);
|
|
||||||
if ($booReturn2 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process data
|
|
||||||
$myContentClass->listData($mastertp, $arrDataLines, $intDataCount, $intLineCount, $preKeyField, 'description');
|
|
||||||
}
|
|
||||||
// Show messages
|
|
||||||
$myContentClass->showMessages($mastertp, $strErrorMessage, $strInfoMessage, $strConsistMessage, array(), '', 1);
|
|
||||||
//
|
|
||||||
// Process footer
|
|
||||||
// ==============
|
|
||||||
$myContentClass->showFooter($maintp, $setFileVersion);
|
|
@ -1,184 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Admin time definition list
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$preAccess = 1;
|
|
||||||
$preNoMain = 1;
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
//
|
|
||||||
// Process get parameters
|
|
||||||
// ======================
|
|
||||||
$chkDataId = filter_input(INPUT_GET, 'dataId', FILTER_VALIDATE_INT, array('options' => array('default' => 0)));
|
|
||||||
$chkVersion = filter_input(INPUT_GET, 'version', FILTER_VALIDATE_INT, array('options' => array('default' => 0)));
|
|
||||||
$chkMode = filter_input(INPUT_GET, 'mode', FILTER_SANITIZE_STRING);
|
|
||||||
$chkUser = filter_input(INPUT_GET, 'user', FILTER_SANITIZE_STRING);
|
|
||||||
$chkRights = filter_input(INPUT_GET, 'rights', FILTER_SANITIZE_STRING);
|
|
||||||
$chkId = filter_input(INPUT_GET, 'id', FILTER_SANITIZE_STRING);
|
|
||||||
$chkLinkTab = filter_input(INPUT_GET, 'linktab', FILTER_SANITIZE_STRING);
|
|
||||||
if (substr_count($chkRights, '-')) {
|
|
||||||
$arrRights = explode('-', $chkRights);
|
|
||||||
$strRights = '';
|
|
||||||
if ($arrRights[0] == 1) {
|
|
||||||
$strRights .= 'READ,';
|
|
||||||
}
|
|
||||||
if ($arrRights[1] == 1) {
|
|
||||||
$strRights .= 'WRITE,';
|
|
||||||
}
|
|
||||||
if ($arrRights[2] == 1) {
|
|
||||||
$strRights .= 'LINK,';
|
|
||||||
}
|
|
||||||
if ($strRights != '') {
|
|
||||||
$strRights = substr($strRights, 0, -1);
|
|
||||||
}
|
|
||||||
$chkRights = $strRights;
|
|
||||||
}
|
|
||||||
if (get_magic_quotes_gpc() == 0) {
|
|
||||||
$chkUser = addslashes($chkUser);
|
|
||||||
$chkRights = addslashes($chkRights);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Get datasets
|
|
||||||
// ============
|
|
||||||
if ($chkLinkTab != '') {
|
|
||||||
$strSQL = 'SELECT * FROM `tbl_user` LEFT JOIN `' .$chkLinkTab. '` ON `id`=`idSlave` '
|
|
||||||
. "WHERE `idMaster`=$chkDataId ORDER BY `username`";
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrDataLines, $intDataCount);
|
|
||||||
//
|
|
||||||
// Write data to session
|
|
||||||
// =====================
|
|
||||||
if ($chkMode == '') {
|
|
||||||
$_SESSION['groupuser'] = array();
|
|
||||||
if ($intDataCount != 0) {
|
|
||||||
foreach ($arrDataLines as $elem) {
|
|
||||||
$arrTemp['id'] = $elem['id'];
|
|
||||||
$arrTemp['user'] = $elem['id'];
|
|
||||||
$strRights = '';
|
|
||||||
if ($elem['read'] == 1) {
|
|
||||||
$strRights .= 'READ,';
|
|
||||||
}
|
|
||||||
if ($elem['write'] == 1) {
|
|
||||||
$strRights .= 'WRITE,';
|
|
||||||
}
|
|
||||||
if ($elem['link'] == 1) {
|
|
||||||
$strRights .= 'LINK,';
|
|
||||||
}
|
|
||||||
if ($strRights != '') {
|
|
||||||
$strRights = substr($strRights, 0, -1);
|
|
||||||
}
|
|
||||||
$arrTemp['rights'] = $strRights;
|
|
||||||
$arrTemp['status'] = 0;
|
|
||||||
$_SESSION['groupuser'][] = $arrTemp;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Add mode
|
|
||||||
// ========
|
|
||||||
if ($chkMode == 'add') {
|
|
||||||
if (isset($_SESSION['groupuser']) && is_array($_SESSION['groupuser'])) {
|
|
||||||
$intCheck = 0;
|
|
||||||
foreach ($_SESSION['groupuser'] as $key => $elem) {
|
|
||||||
if (($elem['user'] == $chkUser) && ($elem['status'] == 0)) {
|
|
||||||
$_SESSION['groupuser'][$key]['user'] = $chkUser;
|
|
||||||
$_SESSION['groupuser'][$key]['rights'] = $chkRights;
|
|
||||||
$intCheck = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($intCheck == 0) {
|
|
||||||
$arrTemp['id'] = 0;
|
|
||||||
$arrTemp['user'] = $chkUser;
|
|
||||||
$arrTemp['rights'] = $chkRights;
|
|
||||||
$arrTemp['status'] = 0;
|
|
||||||
$_SESSION['groupuser'][] = $arrTemp;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$arrTemp['id'] = 0;
|
|
||||||
$arrTemp['user'] = $chkUser;
|
|
||||||
$arrTemp['rights'] = $chkRights;
|
|
||||||
$arrTemp['status'] = 0;
|
|
||||||
$_SESSION['groupuser'] = array();
|
|
||||||
$_SESSION['groupuser'][] = $arrTemp;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Deletion mode
|
|
||||||
// =============
|
|
||||||
if ($chkMode == 'del' && isset($_SESSION['groupuser']) && is_array($_SESSION['groupuser'])) {
|
|
||||||
foreach ($_SESSION['groupuser'] as $key => $elem) {
|
|
||||||
if (($elem['user'] == $chkUser) && ($elem['status'] == 0)) {
|
|
||||||
$_SESSION['groupuser'][$key]['status'] = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
||||||
<title>None</title>
|
|
||||||
<link href="<?php
|
|
||||||
echo $_SESSION['SETS']['path']['base_url']; ?>config/main.css" rel="stylesheet" type="text/css">
|
|
||||||
<script type="text/javascript" language="javascript">
|
|
||||||
<!--
|
|
||||||
function doDel(key) {
|
|
||||||
document.location.href = "<?php
|
|
||||||
echo $_SESSION['SETS']['path']['base_url']; ?>admin/groupusers.php?dataId=<?php
|
|
||||||
echo $chkDataId; ?>&mode=del&user="+key;
|
|
||||||
}
|
|
||||||
//-->
|
|
||||||
</script>
|
|
||||||
</head>
|
|
||||||
<body style="margin:0">
|
|
||||||
<table cellpadding="0" cellspacing="0" border="0" width="100%">
|
|
||||||
<?php
|
|
||||||
if (isset($_SESSION['groupuser']) && is_array($_SESSION['groupuser']) && (count($_SESSION['groupuser']) != 0)) {
|
|
||||||
foreach ($_SESSION['groupuser'] as $elem) {
|
|
||||||
if ($elem['status'] == 0) {
|
|
||||||
$strUser = $myDBClass->getFieldData('SELECT `username` FROM `tbl_user` WHERE `id`=' .$elem['user']); ?>
|
|
||||||
<tr>
|
|
||||||
<td class="tablerow" style="padding-bottom:2px; width:260px"><?php echo $strUser; ?></td>
|
|
||||||
<td class="tablerow" style="padding-bottom:2px; width:260px"><?php
|
|
||||||
echo htmlspecialchars(stripslashes($elem['rights']), ENT_COMPAT, 'UTF-8'); ?></td>
|
|
||||||
<td class="tablerow" style="width:50px" align="right"><img src="<?php
|
|
||||||
echo $_SESSION['SETS']['path']['base_url']; ?>images/delete.gif" width="18" height="18" alt="<?php
|
|
||||||
echo translate('Delete'); ?>" title="<?php echo translate('Delete'); ?>" onClick="doDel('<?php
|
|
||||||
echo $elem['user']; ?>')" style="cursor:pointer"></td>
|
|
||||||
</tr>
|
|
||||||
<?php
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
?>
|
|
||||||
<tr>
|
|
||||||
<td class="tablerow"><?php echo translate('No data'); ?></td>
|
|
||||||
<td class="tablerow"> </td>
|
|
||||||
<td class="tablerow" align="right"> </td>
|
|
||||||
</tr>
|
|
||||||
<?php
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
</table>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,178 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Help text editor
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 39;
|
|
||||||
$preContent = 'admin/helpedit.htm.tpl';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
$setSaveLangId = 'private';
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Process post parameters
|
|
||||||
// =======================
|
|
||||||
$chkHidVersion = filter_input(INPUT_POST, 'hidVersion', 513, array('options' => array('default' => 'all')));
|
|
||||||
$chkKey1 = filter_input(INPUT_POST, 'selInfoKey1', FILTER_SANITIZE_STRING);
|
|
||||||
$chkKey2 = filter_input(INPUT_POST, 'selInfoKey2', FILTER_SANITIZE_STRING);
|
|
||||||
$chkVersion = filter_input(INPUT_POST, 'selInfoVersion', FILTER_SANITIZE_STRING);
|
|
||||||
//
|
|
||||||
// Quote special characters
|
|
||||||
// ==========================
|
|
||||||
if (get_magic_quotes_gpc() == 0) {
|
|
||||||
$chkHidVersion = addslashes($chkHidVersion);
|
|
||||||
$chkKey1 = addslashes($chkKey1);
|
|
||||||
$chkKey2 = addslashes($chkKey2);
|
|
||||||
$chkVersion = addslashes($chkVersion);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Security function for text fields
|
|
||||||
// =================================
|
|
||||||
$chkHidVersion = $myVisClass->tfSecure($chkHidVersion);
|
|
||||||
$chkKey1 = $myVisClass->tfSecure($chkKey1);
|
|
||||||
$chkKey2 = $myVisClass->tfSecure($chkKey2);
|
|
||||||
$chkVersion = $myVisClass->tfSecure($chkVersion);
|
|
||||||
//
|
|
||||||
// Add or modify data
|
|
||||||
// ==================
|
|
||||||
if (($chkTaFileTextRaw != '') && ($chkTfValue3 == '1')) {
|
|
||||||
$strSQL = "SELECT `infotext` FROM `tbl_info` WHERE `key1`='$chkTfValue1' AND `key2`='$chkTfValue2' "
|
|
||||||
. "AND `version`='$chkHidVersion' AND `language`='$setSaveLangId'";
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrData, $intDataCount);
|
|
||||||
if ($intDataCount == 0) {
|
|
||||||
$strSQL = 'INSERT INTO `tbl_info` (`key1`,`key2`,`version`,`language`,`infotext`) '
|
|
||||||
. "VALUES ('$chkTfValue1','$chkTfValue2','$chkHidVersion','$setSaveLangId','$chkTaFileTextRaw')";
|
|
||||||
} else {
|
|
||||||
$strSQL = "UPDATE `tbl_info` SET `infotext` = '$chkTaFileTextRaw' WHERE `key1` = '$chkTfValue1' "
|
|
||||||
. "AND `key2` = '$chkTfValue2' AND `version` = '$chkHidVersion' AND `language` = '$setSaveLangId'";
|
|
||||||
}
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strInfoMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Singe data form
|
|
||||||
// ===============
|
|
||||||
$conttp->setVariable('TITLE', translate('Help text editor'));
|
|
||||||
$conttp->setVariable('ACTION_INSERT', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$conttp->setVariable('MAINSITE', $_SESSION['SETS']['path']['base_url']. 'admin.php');
|
|
||||||
foreach ($arrDescription as $elem) {
|
|
||||||
$conttp->setVariable($elem['name'], $elem['string']);
|
|
||||||
}
|
|
||||||
$conttp->setVariable('INFOKEY_1', translate('Main key'));
|
|
||||||
$conttp->setVariable('INFOKEY_2', translate('Sub key'));
|
|
||||||
$conttp->setVariable('INFO_LANG', translate('Language'));
|
|
||||||
$conttp->setVariable('INFO_VERSION', translate('Nagios version'));
|
|
||||||
$conttp->setVariable('LOAD_DEFAULT', translate('Load default text'));
|
|
||||||
if ($chkChbValue1 == '1') {
|
|
||||||
$conttp->setVariable('DEFAULT_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Get Key
|
|
||||||
// =======
|
|
||||||
$arrData = array();
|
|
||||||
$strSQL = 'SELECT DISTINCT `key1` FROM `tbl_info` ORDER BY `key1`';
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrData, $intDataCount);
|
|
||||||
if ($intDataCount != 0) {
|
|
||||||
foreach ($arrData as $elem) {
|
|
||||||
$conttp->setVariable('INFOKEY_1_VAL', $elem['key1']);
|
|
||||||
if ($chkKey1 == $elem['key1']) {
|
|
||||||
$conttp->setVariable('INFOKEY_1_SEL', 'selected');
|
|
||||||
$conttp->setVariable('INFOKEY_1_SEL_VAL', $elem['key1']);
|
|
||||||
}
|
|
||||||
$conttp->parse('infokey1');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($chkKey1 != '') {
|
|
||||||
$strSQL = "SELECT DISTINCT `key2` FROM `tbl_info` WHERE `key1` = '$chkKey1' ORDER BY `key1`";
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrData, $intDataCount);
|
|
||||||
if ($intDataCount != 0) {
|
|
||||||
foreach ($arrData as $elem) {
|
|
||||||
$conttp->setVariable('INFOKEY_2_VAL', $elem['key2']);
|
|
||||||
if ($chkKey2 == $elem['key2']) {
|
|
||||||
$conttp->setVariable('INFOKEY_2_SEL', 'selected');
|
|
||||||
$conttp->setVariable('INFOKEY_2_SEL_VAL', $elem['key2']);
|
|
||||||
}
|
|
||||||
$conttp->parse('infokey2');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (($chkKey1 != '') && ($chkKey2 != '')) {
|
|
||||||
$strSQL = 'SELECT DISTINCT `version` FROM `tbl_info` '
|
|
||||||
. "WHERE `key1` = '$chkKey1' AND `key2` = '$chkKey2' ORDER BY `version`";
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrData, $intDataCount);
|
|
||||||
if ($intDataCount != 0) {
|
|
||||||
if (($intDataCount == 1) && ($chkVersion == '')) {
|
|
||||||
$chkVersion = $arrData[0]['version'];
|
|
||||||
}
|
|
||||||
foreach ($arrData as $elem) {
|
|
||||||
$conttp->setVariable('INFOVERSION_2_VAL', $elem['version']);
|
|
||||||
if ($chkVersion == $elem['version']) {
|
|
||||||
$conttp->setVariable('INFOVERSION_2_SEL', 'selected');
|
|
||||||
$conttp->setVariable('INFOVERSION_2_SEL_VAL', $elem['version']);
|
|
||||||
}
|
|
||||||
$conttp->parse('infoversion');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Insert content
|
|
||||||
// ==============
|
|
||||||
if (($chkKey1 != '') && ($chkKey2 != '') && ($chkVersion != '')) {
|
|
||||||
$strSQL = "SELECT `infotext` FROM `tbl_info` WHERE `key1`='$chkKey1' AND `key2`='$chkKey2' "
|
|
||||||
. "AND `version`='$chkVersion' AND `language`='$setSaveLangId'";
|
|
||||||
$strContentDB = $myDBClass->getFieldData($strSQL);
|
|
||||||
if (($chkChbValue1 == 1) || ($strContentDB == '')) {
|
|
||||||
$strSQL = "SELECT `infotext` FROM `tbl_info` WHERE `key1`='$chkKey1' AND `key2`='$chkKey2' "
|
|
||||||
. "AND `version`='$chkVersion' AND `language`='default'";
|
|
||||||
$strContentDB = $myDBClass->getFieldData($strSQL);
|
|
||||||
}
|
|
||||||
$conttp->setVariable('DAT_HELPTEXT', $strContentDB);
|
|
||||||
}
|
|
||||||
// Messages
|
|
||||||
if ($strErrorMessage != '') {
|
|
||||||
$conttp->setVariable('ERRORMESSAGE', $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($strInfoMessage != '') {
|
|
||||||
$conttp->setVariable('INFOMESSAGE', $strInfoMessage);
|
|
||||||
}
|
|
||||||
// Check access rights for adding new objects
|
|
||||||
if ($myVisClass->checkAccountGroup($prePageKey, 'write') != 0) {
|
|
||||||
$conttp->setVariable('ADD_CONTROL', 'disabled="disabled"');
|
|
||||||
}
|
|
||||||
$conttp->parse('helpedit');
|
|
||||||
$conttp->show('helpedit');
|
|
||||||
//
|
|
||||||
// Process footer
|
|
||||||
// ==============
|
|
||||||
$maintp->setVariable('VERSION_INFO', "<a href='https://sourceforge.net/projects/nagiosql/' "
|
|
||||||
. "target='_blank'>NagiosQL</a> $setFileVersion");
|
|
||||||
$maintp->parse('footer');
|
|
||||||
$maintp->show('footer');
|
|
@ -1,393 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Host dependencies definition
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 19;
|
|
||||||
$preContent = 'admin/hostdependencies.htm.tpl';
|
|
||||||
$preListTpl = 'admin/datalist.htm.tpl';
|
|
||||||
$preSearchSession = 'hostdependencies';
|
|
||||||
$preTableName = 'tbl_hostdependency';
|
|
||||||
$preKeyField = 'config_name';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Data processing
|
|
||||||
// ===============
|
|
||||||
$strEO = substr($chkChbGr1a.$chkChbGr1b.$chkChbGr1c.$chkChbGr1d.$chkChbGr1e, 0, -1);
|
|
||||||
$strNO = substr($chkChbGr2a.$chkChbGr2b.$chkChbGr2c.$chkChbGr2d.$chkChbGr2e, 0, -1);
|
|
||||||
//
|
|
||||||
// Add or modify data
|
|
||||||
// ==================
|
|
||||||
if ((($chkModus == 'insert') || ($chkModus == 'modify')) && ($intGlobalWriteAccess == 0)) {
|
|
||||||
$strSQLx = "`$preTableName` SET `$preKeyField`='$chkTfValue1', `dependent_host_name`=$intMselValue1, "
|
|
||||||
. "`host_name`=$intMselValue2, `dependent_hostgroup_name`=$intMselValue3, `hostgroup_name`=$intMselValue4, "
|
|
||||||
. "`inherits_parent`='$chkChbValue1', `execution_failure_criteria`='$strEO', "
|
|
||||||
. "`notification_failure_criteria`='$strNO', `dependency_period`=$chkSelValue1, $preSQLCommon1";
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$strSQL = 'INSERT INTO ' .$strSQLx;
|
|
||||||
} else {
|
|
||||||
$strSQL = 'UPDATE ' .$strSQLx. ' WHERE `id`=' .$chkDataId;
|
|
||||||
}
|
|
||||||
if ($intWriteAccessId == 0) {
|
|
||||||
if ((($intMselValue1 != 0) && ($intMselValue2 != 0)) || (($intMselValue3 != 0) && ($intMselValue4 != 0)) ||
|
|
||||||
(($intMselValue1 != 0) && ($intMselValue4 != 0)) || (($intMselValue3 != 0) && ($intMselValue2 != 0))) {
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$chkDataId = $intInsertId;
|
|
||||||
}
|
|
||||||
if ($intReturn == 1) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strInfoMessage);
|
|
||||||
$myDataClass->updateStatusTable($preTableName);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$myDataClass->writeLog(translate('New host dependency inserted:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$myDataClass->writeLog(translate('Host dependency modified:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Insert/update relations
|
|
||||||
// =======================
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
if ($intMselValue1 != 0) {
|
|
||||||
$intRet1 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkHostdependencyToHost_DH',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue1
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet1) && ($intRet1 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue2 != 0) {
|
|
||||||
$intRet2 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkHostdependencyToHost_H',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue2
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet2) && ($intRet2 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue3 != 0) {
|
|
||||||
$intRet3 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkHostdependencyToHostgroup_DH',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue3
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet3) && ($intRet3 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue4 != 0) {
|
|
||||||
$intRet4 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkHostdependencyToHostgroup_H',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue4
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet4) && ($intRet4 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
} elseif ($chkModus == 'modify') {
|
|
||||||
if ($intMselValue1 != 0) {
|
|
||||||
$intRet1 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkHostdependencyToHost_DH',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue1
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet1 = $myDataClass->dataDeleteRelation('tbl_lnkHostdependencyToHost_DH', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet1 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue2 != 0) {
|
|
||||||
$intRet2 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkHostdependencyToHost_H',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue2
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet2 = $myDataClass->dataDeleteRelation('tbl_lnkHostdependencyToHost_H', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet2 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue3 != 0) {
|
|
||||||
$intRet3 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkHostdependencyToHostgroup_DH',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue3
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet3 = $myDataClass->dataDeleteRelation('tbl_lnkHostdependencyToHostgroup_DH', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet3 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue4 != 0) {
|
|
||||||
$intRet4 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkHostdependencyToHostgroup_H',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue4
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet4 = $myDataClass->dataDeleteRelation('tbl_lnkHostdependencyToHostgroup_H', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet4 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (($intRet1 + $intRet2 + $intRet3 + $intRet4) != 0) {
|
|
||||||
$strInfoMessage = '';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Update Import HASH
|
|
||||||
// ==================
|
|
||||||
$booReturn = $myDataClass->updateHash($preTableName, $chkDataId);
|
|
||||||
if ($booReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Database entry failed! Not all necessary data filled in!'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Database entry failed! No write access!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
if ($chkModus != 'add') {
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Get date/time of last database and config file manipulation
|
|
||||||
// ===========================================================
|
|
||||||
$intReturn = $myConfigClass->lastModifiedFile($preTableName, $arrTimeData, $strTimeInfoString);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Singe data form
|
|
||||||
// ===============
|
|
||||||
if ($chkModus == 'add') {
|
|
||||||
$conttp->setVariable('TITLE', translate('Define host dependencies (hostdependencies.cfg)'));
|
|
||||||
// Do not show modified time list
|
|
||||||
$intNoTime = 1;
|
|
||||||
// Process host selection field
|
|
||||||
if (isset($arrModifyData['dependent_host_name'])) {
|
|
||||||
$intFieldId = $arrModifyData['dependent_host_name'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_host',
|
|
||||||
'host_name',
|
|
||||||
'depend_host',
|
|
||||||
'tbl_lnkHostdependencyToHost_DH',
|
|
||||||
2,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['host_name'])) {
|
|
||||||
$intFieldId = $arrModifyData['host_name'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn1 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_host',
|
|
||||||
'host_name',
|
|
||||||
'host',
|
|
||||||
'tbl_lnkHostdependencyToHost_H',
|
|
||||||
2,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn1 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process time period selection field
|
|
||||||
if (isset($arrModifyData['dependency_period'])) {
|
|
||||||
$intFieldId = $arrModifyData['dependency_period'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod', 'timeperiod_name', 'timeperiod', 1, $intFieldId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process host group selection field
|
|
||||||
if (isset($arrModifyData['dependent_hostgroup_name'])) {
|
|
||||||
$intFieldId = $arrModifyData['dependent_hostgroup_name'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_hostgroup',
|
|
||||||
'hostgroup_name',
|
|
||||||
'depend_hostgroup',
|
|
||||||
'tbl_lnkHostdependencyToHostgroup_DH',
|
|
||||||
2,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['hostgroup_name'])) {
|
|
||||||
$intFieldId = $arrModifyData['hostgroup_name'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn2 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_hostgroup',
|
|
||||||
'hostgroup_name',
|
|
||||||
'hostgroup',
|
|
||||||
'tbl_lnkHostdependencyToHostgroup_H',
|
|
||||||
2,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn2 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (($intReturn1 != 0) && ($intReturn2 != 0)) {
|
|
||||||
$myVisClass->processMessage(translate('Attention, no hosts and hostgroups defined!'), $strDBWarning);
|
|
||||||
$intDataWarning = 1;
|
|
||||||
}
|
|
||||||
// Process access group selection field
|
|
||||||
if (isset($arrModifyData['access_group'])) {
|
|
||||||
$intFieldId = $arrModifyData['access_group'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn = $myVisClass->parseSelectSimple('tbl_group', 'groupname', 'acc_group', 0, $intFieldId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Initial add/modify form definitions
|
|
||||||
$myContentClass->addFormInit($conttp);
|
|
||||||
if ($intDataWarning == 1) {
|
|
||||||
$conttp->setVariable('WARNING', $strDBWarning. '<br>' .translate('Saving not possible!'));
|
|
||||||
}
|
|
||||||
// Insert data from database in "modify" mode
|
|
||||||
if (isset($arrModifyData) && ($chkSelModify == 'modify')) {
|
|
||||||
// Check relation information to find out locked configuration datasets
|
|
||||||
$intLocked = $myDataClass->infoRelation($preTableName, $arrModifyData['id'], $preKeyField);
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strRelMessage);
|
|
||||||
$strInfo = '<br><span class="redmessage">' .translate('Entry cannot be activated because it is used by '
|
|
||||||
. 'another configuration'). ':</span>';
|
|
||||||
$strInfo .= '<br><span class="greenmessage">' .$strRelMessage. '</span>';
|
|
||||||
// Process data
|
|
||||||
$myContentClass->addInsertData($conttp, $arrModifyData, $intLocked, $strInfo);
|
|
||||||
if ($arrModifyData['inherits_parent'] == 1) {
|
|
||||||
$conttp->setVariable('ACT_INHERIT', 'checked');
|
|
||||||
}
|
|
||||||
foreach (explode(',', $arrModifyData['execution_failure_criteria']) as $elem) {
|
|
||||||
$conttp->setVariable('DAT_EO' .strtoupper($elem). '_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
foreach (explode(',', $arrModifyData['notification_failure_criteria']) as $elem) {
|
|
||||||
$conttp->setVariable('DAT_NO' .strtoupper($elem). '_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$conttp->parse('datainsert');
|
|
||||||
$conttp->show('datainsert');
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// List view
|
|
||||||
// ==========
|
|
||||||
if ($chkModus == 'display') {
|
|
||||||
// Initial list view definitions
|
|
||||||
$myContentClass->listViewInit($mastertp);
|
|
||||||
$mastertp->setVariable('TITLE', translate('Define host dependencies (hostdependencies.cfg)'));
|
|
||||||
$mastertp->setVariable('FIELD_1', translate('Config name'));
|
|
||||||
$mastertp->setVariable('FIELD_2', translate('Dependent hosts'). ' / ' .translate('Dependent hostgroups'));
|
|
||||||
$mastertp->setVariable('DISABLE_SORT_2', 'disable');
|
|
||||||
// Process search string
|
|
||||||
if ($_SESSION['search'][$preSearchSession] != '') {
|
|
||||||
$strSearchTxt = $_SESSION['search'][$preSearchSession];
|
|
||||||
$strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%')";
|
|
||||||
}
|
|
||||||
// Row sorting
|
|
||||||
$strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir";
|
|
||||||
if ($hidSortBy == 2) {
|
|
||||||
$strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir";
|
|
||||||
}
|
|
||||||
$mastertp->setVariable('DISABLE_SORT_2', 'disable');
|
|
||||||
// Count datasets
|
|
||||||
$strSQL = "SELECT count(*) AS `number` FROM `$preTableName` "
|
|
||||||
. "WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)";
|
|
||||||
$booReturn = $myDBClass->hasSingleDataset($strSQL, $arrDataLinesCount);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$intLineCount = (int)$arrDataLinesCount['number'];
|
|
||||||
if ($intLineCount < $chkLimit) {
|
|
||||||
$chkLimit = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Get datasets
|
|
||||||
$strSQL = "SELECT `id`, `$preKeyField`, `dependent_host_name`, `dependent_hostgroup_name`, `register`, "
|
|
||||||
. "`active`, `config_id`, `access_group` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND "
|
|
||||||
. "`access_group` IN ($strAccess) $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrDataLines, $intDataCount);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process data
|
|
||||||
$myContentClass->listData(
|
|
||||||
$mastertp,
|
|
||||||
$arrDataLines,
|
|
||||||
$intDataCount,
|
|
||||||
$intLineCount,
|
|
||||||
$preKeyField,
|
|
||||||
'process_field',
|
|
||||||
40
|
|
||||||
);
|
|
||||||
}
|
|
||||||
// Show messages
|
|
||||||
$myContentClass->showMessages(
|
|
||||||
$mastertp,
|
|
||||||
$strErrorMessage,
|
|
||||||
$strInfoMessage,
|
|
||||||
$strConsistMessage,
|
|
||||||
$arrTimeData,
|
|
||||||
$strTimeInfoString,
|
|
||||||
$intNoTime
|
|
||||||
);
|
|
||||||
//
|
|
||||||
// Process footer
|
|
||||||
// ==============
|
|
||||||
$myContentClass->showFooter($maintp, $setFileVersion);
|
|
@ -1,390 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Host escalation definition
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 20;
|
|
||||||
$preContent = 'admin/hostescalations.htm.tpl';
|
|
||||||
$preListTpl = 'admin/datalist.htm.tpl';
|
|
||||||
$preSearchSession = 'hostescalation';
|
|
||||||
$preTableName = 'tbl_hostescalation';
|
|
||||||
$preKeyField = 'config_name';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Data processing
|
|
||||||
// ===============
|
|
||||||
$strEO = substr($chkChbGr1a.$chkChbGr1b.$chkChbGr1c, 0, -1);
|
|
||||||
//
|
|
||||||
// Add or modify data
|
|
||||||
// ==================
|
|
||||||
if ((($chkModus == 'insert') || ($chkModus == 'modify')) && ($intGlobalWriteAccess == 0)) {
|
|
||||||
$strSQLx = "`$preTableName` SET `$preKeyField`='$chkTfValue1', `host_name`=$intMselValue3, "
|
|
||||||
. "`hostgroup_name`=$intMselValue4, `contacts`=$intMselValue1, `contact_groups`=$intMselValue2, "
|
|
||||||
. "`first_notification`=$chkTfNullVal1, `last_notification`=$chkTfNullVal2, "
|
|
||||||
. "`notification_interval`=$chkTfNullVal3, `escalation_period`='$chkSelValue1', "
|
|
||||||
. "`escalation_options`='$strEO', $preSQLCommon1";
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$strSQL = 'INSERT INTO ' .$strSQLx;
|
|
||||||
} else {
|
|
||||||
$strSQL = 'UPDATE ' .$strSQLx. ' WHERE `id`=' .$chkDataId;
|
|
||||||
}
|
|
||||||
if ($intWriteAccessId == 0) {
|
|
||||||
if ((($intMselValue3 != 0) || ($chkMselValue4 != 0)) && (($intMselValue1 != 0) || ($intMselValue2 != 0)) &&
|
|
||||||
($chkTfNullVal1 != 'NULL') && ($chkTfNullVal2 != 'NULL') && ($chkTfNullVal3 != 'NULL')) {
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$chkDataId = $intInsertId;
|
|
||||||
}
|
|
||||||
if ($intReturn == 1) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strInfoMessage);
|
|
||||||
$myDataClass->updateStatusTable($preTableName);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$myDataClass->writeLog(translate('New host escalation inserted:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$myDataClass->writeLog(translate('Host escalation modified:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Insert/update relations
|
|
||||||
// =======================
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
if ($intMselValue1 != 0) {
|
|
||||||
$intRet1 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkHostescalationToContact',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue1
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet1) && ($intRet1 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue2 != 0) {
|
|
||||||
$intRet2 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkHostescalationToContactgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue2
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet2) && ($intRet2 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue3 != 0) {
|
|
||||||
$intRet3 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkHostescalationToHost',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue3
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet3) && ($intRet3 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue4 != 0) {
|
|
||||||
$intRet4 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkHostescalationToHostgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue4
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet4) && ($intRet4 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
} elseif ($chkModus == 'modify') {
|
|
||||||
if ($intMselValue1 != 0) {
|
|
||||||
$intRet1 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkHostescalationToContact',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue1
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet1 = $myDataClass->dataDeleteRelation('tbl_lnkHostescalationToContact', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet1 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue2 != 0) {
|
|
||||||
$intRet2 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkHostescalationToContactgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue2
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet2 = $myDataClass->dataDeleteRelation('tbl_lnkHostescalationToContactgroup', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet2 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue3 != 0) {
|
|
||||||
$intRet3 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkHostescalationToHost',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue3
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet3 = $myDataClass->dataDeleteRelation('tbl_lnkHostescalationToHost', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet3 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue4 != 0) {
|
|
||||||
$intRet4 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkHostescalationToHostgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue4
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet4 = $myDataClass->dataDeleteRelation('tbl_lnkHostescalationToHostgroup', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet4 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (($intRet1 + $intRet2 + $intRet3 + $intRet4) != 0) {
|
|
||||||
$strInfoMessage = '';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Update Import HASH
|
|
||||||
// ==================
|
|
||||||
$booReturn = $myDataClass->updateHash($preTableName, $chkDataId);
|
|
||||||
if ($booReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Database entry failed! Not all necessary data filled in!'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Database entry failed! No write access!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
if ($chkModus != 'add') {
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Get date/time of last database and config file manipulation
|
|
||||||
// ===========================================================
|
|
||||||
$intReturn = $myConfigClass->lastModifiedFile($preTableName, $arrTimeData, $strTimeInfoString);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Singe data form
|
|
||||||
// ===============
|
|
||||||
if ($chkModus == 'add') {
|
|
||||||
$conttp->setVariable('TITLE', translate('Define host escalation (hostescalations.cfg)'));
|
|
||||||
// Do not show modified time list
|
|
||||||
$intNoTime = 1;
|
|
||||||
// Process host and host group selection field
|
|
||||||
if (isset($arrModifyData['host_name'])) {
|
|
||||||
$intFieldId = $arrModifyData['host_name'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn1 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_host',
|
|
||||||
'host_name',
|
|
||||||
'host',
|
|
||||||
'tbl_lnkHostescalationToHost',
|
|
||||||
2,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn1 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['hostgroup_name'])) {
|
|
||||||
$intFieldId = $arrModifyData['hostgroup_name'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn2 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_hostgroup',
|
|
||||||
'hostgroup_name',
|
|
||||||
'hostgroup',
|
|
||||||
'tbl_lnkHostescalationToHostgroup',
|
|
||||||
2,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn2 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (($intReturn1 != 0) && ($intReturn2 != 0)) {
|
|
||||||
$myVisClass->processMessage(translate('Attention, no hosts and hostgroups defined!'), $strDBWarning);
|
|
||||||
$intDataWarning = 1;
|
|
||||||
}
|
|
||||||
// Process timeperiod selection field
|
|
||||||
if (isset($arrModifyData['escalation_period'])) {
|
|
||||||
$intFieldId = $arrModifyData['escalation_period'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod', 'timeperiod_name', 'escperiod', 1, $intFieldId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process contact and contact group selection field
|
|
||||||
if (isset($arrModifyData['contacts'])) {
|
|
||||||
$intFieldId = $arrModifyData['contacts'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn1 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_contact',
|
|
||||||
'contact_name',
|
|
||||||
'contact',
|
|
||||||
'tbl_lnkHostescalationToContact',
|
|
||||||
2,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn1 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['contact_groups'])) {
|
|
||||||
$intFieldId = $arrModifyData['contact_groups'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn2 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_contactgroup',
|
|
||||||
'contactgroup_name',
|
|
||||||
'contactgroup',
|
|
||||||
'tbl_lnkHostescalationToContactgroup',
|
|
||||||
2,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn2 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (($intReturn1 != 0) && ($intReturn2 != 0)) {
|
|
||||||
$myVisClass->processMessage(translate('Attention, no contacts and contactgroups defined!'), $strDBWarning);
|
|
||||||
$intDataWarning = 1;
|
|
||||||
}
|
|
||||||
// Process access group selection field
|
|
||||||
if (isset($arrModifyData['access_group'])) {
|
|
||||||
$intFieldId = $arrModifyData['access_group'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn = $myVisClass->parseSelectSimple('tbl_group', 'groupname', 'acc_group', 0, $intFieldId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Initial add/modify form definitions
|
|
||||||
$myContentClass->addFormInit($conttp);
|
|
||||||
if ($intDataWarning == 1) {
|
|
||||||
$conttp->setVariable('WARNING', $strDBWarning. '<br>' .translate('Saving not possible!'));
|
|
||||||
}
|
|
||||||
// Insert data from database in "modify" mode
|
|
||||||
if (isset($arrModifyData) && ($chkSelModify == 'modify')) {
|
|
||||||
// Check relation information to find out locked configuration datasets
|
|
||||||
$intLocked = $myDataClass->infoRelation($preTableName, $arrModifyData['id'], $preKeyField);
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strRelMessage);
|
|
||||||
$strInfo = '<br><span class="redmessage">' .translate('Entry cannot be activated because it is used by '
|
|
||||||
. 'another configuration'). ':</span>';
|
|
||||||
$strInfo .= '<br><span class="greenmessage">' .$strRelMessage. '</span>';
|
|
||||||
// Process data
|
|
||||||
$myContentClass->addInsertData($conttp, $arrModifyData, $intLocked, $strInfo);
|
|
||||||
foreach (explode(',', $arrModifyData['escalation_options']) as $elem) {
|
|
||||||
$conttp->setVariable('DAT_EO' .strtoupper($elem). '_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$conttp->parse('datainsert');
|
|
||||||
$conttp->show('datainsert');
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// List view
|
|
||||||
// ==========
|
|
||||||
if ($chkModus == 'display') {
|
|
||||||
// Initial list view definitions
|
|
||||||
$myContentClass->listViewInit($mastertp);
|
|
||||||
$mastertp->setVariable('TITLE', translate('Define host escalation (hostescalations.cfg)'));
|
|
||||||
$mastertp->setVariable('FIELD_1', translate('Config name'));
|
|
||||||
$mastertp->setVariable('FIELD_2', translate('Hosts'). ' / ' .translate('Host groups'));
|
|
||||||
// Process search string
|
|
||||||
if ($_SESSION['search'][$preSearchSession] != '') {
|
|
||||||
$strSearchTxt = $_SESSION['search'][$preSearchSession];
|
|
||||||
$strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%')";
|
|
||||||
}
|
|
||||||
// Row sorting
|
|
||||||
$strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir";
|
|
||||||
if ($hidSortBy == 2) {
|
|
||||||
$strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir";
|
|
||||||
}
|
|
||||||
$mastertp->setVariable('DISABLE_SORT_2', 'disable');
|
|
||||||
// Count datasets
|
|
||||||
$strSQL = "SELECT count(*) AS `number` FROM `$preTableName` "
|
|
||||||
. "WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)";
|
|
||||||
$booReturn = $myDBClass->hasSingleDataset($strSQL, $arrDataLinesCount);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$intLineCount = (int)$arrDataLinesCount['number'];
|
|
||||||
if ($intLineCount < $chkLimit) {
|
|
||||||
$chkLimit = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Get datasets
|
|
||||||
$strSQL = "SELECT `id`, `$preKeyField`, `host_name`, `hostgroup_name`, `register`, `active`, `config_id`, "
|
|
||||||
. "`access_group` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` "
|
|
||||||
. "IN ($strAccess) $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrDataLines, $intDataCount);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process data
|
|
||||||
$myContentClass->listData(
|
|
||||||
$mastertp,
|
|
||||||
$arrDataLines,
|
|
||||||
$intDataCount,
|
|
||||||
$intLineCount,
|
|
||||||
$preKeyField,
|
|
||||||
'process_field',
|
|
||||||
40
|
|
||||||
);
|
|
||||||
}
|
|
||||||
// Show messages
|
|
||||||
$myContentClass->showMessages(
|
|
||||||
$mastertp,
|
|
||||||
$strErrorMessage,
|
|
||||||
$strInfoMessage,
|
|
||||||
$strConsistMessage,
|
|
||||||
$arrTimeData,
|
|
||||||
$strTimeInfoString,
|
|
||||||
$intNoTime
|
|
||||||
);
|
|
||||||
//
|
|
||||||
// Process footer
|
|
||||||
// ==============
|
|
||||||
$myContentClass->showFooter($maintp, $setFileVersion);
|
|
@ -1,202 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Host extended information definition
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 21;
|
|
||||||
$preContent = 'admin/hostextinfo.htm.tpl';
|
|
||||||
$preListTpl = 'admin/datalist.htm.tpl';
|
|
||||||
$preSearchSession = 'hostextinfo';
|
|
||||||
$preTableName = 'tbl_hostextinfo';
|
|
||||||
$preKeyField = 'host_name';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Add or modify data
|
|
||||||
// ==================
|
|
||||||
if ((($chkModus == 'insert') || ($chkModus == 'modify')) && ($intGlobalWriteAccess == 0)) {
|
|
||||||
$strSQLx = "`$preTableName` SET `$preKeyField`=$chkSelValue1, `notes`='$chkTfValue1', `notes_url`='$chkTfValue2', "
|
|
||||||
. "`action_url`='$chkTfValue3', `icon_image`='$chkTfValue4', `icon_image_alt`='$chkTfValue5', "
|
|
||||||
. "`vrml_image`='$chkTfValue6', `statusmap_image`='$chkTfValue7', `2d_coords`='$chkTfValue8', "
|
|
||||||
. "`3d_coords`='$chkTfValue9', $preSQLCommon1";
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$strSQL = 'INSERT INTO ' .$strSQLx;
|
|
||||||
} else {
|
|
||||||
$strSQL = 'UPDATE ' .$strSQLx. ' WHERE `id`=' .$chkDataId;
|
|
||||||
}
|
|
||||||
if ($intWriteAccessId == 0) {
|
|
||||||
if ($chkSelValue1 != 0) {
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$chkDataId = $intInsertId;
|
|
||||||
}
|
|
||||||
if ($intReturn == 1) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strInfoMessage);
|
|
||||||
$myDataClass->updateStatusTable($preTableName);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$myDataClass->writeLog(translate('New host extended information inserted:'). ' ' .$chkSelValue1);
|
|
||||||
}
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$myDataClass->writeLog(translate('Host extended information modified:'). ' ' .$chkSelValue1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Database entry failed! Not all necessary data filled in!'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Database entry failed! No write access!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
if ($chkModus != 'add') {
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Get date/time of last database and config file manipulation
|
|
||||||
// ===========================================================
|
|
||||||
$intReturn = $myConfigClass->lastModifiedFile($preTableName, $arrTimeData, $strTimeInfoString);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Singe data form
|
|
||||||
// ===============
|
|
||||||
if ($chkModus == 'add') {
|
|
||||||
$conttp->setVariable('TITLE', translate('Define host extended information (hostextinfo.cfg)'));
|
|
||||||
// Do not show modified time list
|
|
||||||
$intNoTime = 1;
|
|
||||||
if (isset($arrModifyData[$preKeyField])) {
|
|
||||||
$intFieldId = $arrModifyData[$preKeyField];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn1 = $myVisClass->parseSelectSimple('tbl_host', $preKeyField, 'host', 0, $intFieldId);
|
|
||||||
if ($intReturn1 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
$myVisClass->processMessage(translate('Attention, no hosts defined!'), $strDBWarning);
|
|
||||||
$intDataWarning = 1;
|
|
||||||
}
|
|
||||||
// Process access group selection field
|
|
||||||
if (isset($arrModifyData['access_group'])) {
|
|
||||||
$intFieldId = $arrModifyData['access_group'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn = $myVisClass->parseSelectSimple('tbl_group', 'groupname', 'acc_group', 0, $intFieldId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Initial add/modify form definitions
|
|
||||||
$myContentClass->addFormInit($conttp);
|
|
||||||
if ($intDataWarning == 1) {
|
|
||||||
$conttp->setVariable('WARNING', $strDBWarning. '<br>' .translate('Saving not possible!'));
|
|
||||||
}
|
|
||||||
if ($intVersion < 3) {
|
|
||||||
$conttp->setVariable('VERSION_20_VALUE_MUST', 'mselValue1,');
|
|
||||||
}
|
|
||||||
// Insert data from database in "modify" mode
|
|
||||||
if (isset($arrModifyData) && ($chkSelModify == 'modify')) {
|
|
||||||
// Check relation information to find out locked configuration datasets
|
|
||||||
$intLocked = $myDataClass->infoRelation($preTableName, $arrModifyData['id'], $preKeyField);
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strRelMessage);
|
|
||||||
$strInfo = '<br><span class="redmessage">' .translate('Entry cannot be activated because it is used by '
|
|
||||||
. 'another configuration'). ':</span>';
|
|
||||||
$strInfo .= '<br><span class="greenmessage">' .$strRelMessage. '</span>';
|
|
||||||
// Process data
|
|
||||||
$myContentClass->addInsertData($conttp, $arrModifyData, $intLocked, $strInfo);
|
|
||||||
}
|
|
||||||
$conttp->parse('datainsert');
|
|
||||||
$conttp->show('datainsert');
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// List view
|
|
||||||
// ==========
|
|
||||||
if ($chkModus == 'display') {
|
|
||||||
// Initial list view definitions
|
|
||||||
$myContentClass->listViewInit($mastertp);
|
|
||||||
$mastertp->setVariable('TITLE', translate('Define host extended information (hostextinfo.cfg)'));
|
|
||||||
$mastertp->setVariable('FIELD_1', translate('Host name'));
|
|
||||||
$mastertp->setVariable('FIELD_2', translate('Notes'));
|
|
||||||
// Process search string
|
|
||||||
if ($_SESSION['search'][$preSearchSession] != '') {
|
|
||||||
$strSearchTxt = $_SESSION['search'][$preSearchSession];
|
|
||||||
$strSearchWhere = "AND (`tbl_host`.`$preKeyField` LIKE '%".$strSearchTxt."%' OR `$preTableName`.`notes` "
|
|
||||||
. "LIKE '%".$strSearchTxt."%' OR `$preTableName`.`notes_url` LIKE '%".$strSearchTxt."%')";
|
|
||||||
}
|
|
||||||
// Row sorting
|
|
||||||
$strOrderString = "ORDER BY `$preTableName`.`config_id`, `$preKeyField` $hidSortDir";
|
|
||||||
if ($hidSortBy == 2) {
|
|
||||||
$strOrderString = "ORDER BY `$preTableName`.`config_id`, `notes` $hidSortDir";
|
|
||||||
}
|
|
||||||
// Count datasets
|
|
||||||
$strSQL = "SELECT count(*) AS `number` FROM `$preTableName` "
|
|
||||||
. "LEFT JOIN `tbl_host` ON `$preTableName`.`$preKeyField`=`tbl_host`.`id` "
|
|
||||||
. "WHERE $strDomainWhere $strSearchWhere AND `$preTableName`.`access_group` IN ($strAccess)";
|
|
||||||
$booReturn = $myDBClass->hasSingleDataset($strSQL, $arrDataLinesCount);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$intLineCount = (int)$arrDataLinesCount['number'];
|
|
||||||
if ($intLineCount < $chkLimit) {
|
|
||||||
$chkLimit = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Get datasets
|
|
||||||
$strSQL = "SELECT `$preTableName`.`id`, `tbl_host`.`$preKeyField`, `$preTableName`.`notes`, "
|
|
||||||
. "`$preTableName`.`register`, `$preTableName`.`active`, `$preTableName`.`config_id`, "
|
|
||||||
. "`$preTableName`.`access_group` FROM `$preTableName` "
|
|
||||||
. "LEFT JOIN `tbl_host` ON `$preTableName`.`$preKeyField` = `tbl_host`.`id` "
|
|
||||||
. "WHERE $strDomainWhere $strSearchWhere AND `$preTableName`.`access_group` IN ($strAccess) $strOrderString "
|
|
||||||
. "LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrDataLines, $intDataCount);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
$myContentClass->listData($mastertp, $arrDataLines, $intDataCount, $intLineCount, $preKeyField, 'notes');
|
|
||||||
}
|
|
||||||
// Show messages
|
|
||||||
$myContentClass->showMessages(
|
|
||||||
$mastertp,
|
|
||||||
$strErrorMessage,
|
|
||||||
$strInfoMessage,
|
|
||||||
$strConsistMessage,
|
|
||||||
$arrTimeData,
|
|
||||||
$strTimeInfoString,
|
|
||||||
$intNoTime
|
|
||||||
);
|
|
||||||
//
|
|
||||||
// Process footer
|
|
||||||
// ==============
|
|
||||||
$myContentClass->showFooter($maintp, $setFileVersion);
|
|
@ -1,279 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Hostgroup definition
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 10;
|
|
||||||
$preContent = 'admin/hostgroups.htm.tpl';
|
|
||||||
$preListTpl = 'admin/datalist.htm.tpl';
|
|
||||||
$preSearchSession = 'hostgroup';
|
|
||||||
$preTableName = 'tbl_hostgroup';
|
|
||||||
$preKeyField = 'hostgroup_name';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Add or modify data
|
|
||||||
// ==================
|
|
||||||
if ((($chkModus == 'insert') || ($chkModus == 'modify')) && ($intGlobalWriteAccess == 0)) {
|
|
||||||
$strSQLx = "`$preTableName` SET `$preKeyField`='$chkTfValue1', `alias`='$chkTfValue2', `members`=$intMselValue1, "
|
|
||||||
. "`hostgroup_members`=$intMselValue2, `notes`='$chkTfValue3', `notes_url`='$chkTfValue4', "
|
|
||||||
. "`action_url`='$chkTfValue5', $preSQLCommon1";
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$strSQL = 'INSERT INTO ' .$strSQLx;
|
|
||||||
} else {
|
|
||||||
$strSQL = 'UPDATE ' .$strSQLx. ' WHERE `id`=' .$chkDataId;
|
|
||||||
}
|
|
||||||
if ($intWriteAccessId == 0) {
|
|
||||||
if (($chkTfValue1 != '') && ($chkTfValue2 != '') && (($intMselValue1 != 0) || ($intVersion >= 3))) {
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$chkDataId = $intInsertId;
|
|
||||||
}
|
|
||||||
if ($intReturn == 1) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strInfoMessage);
|
|
||||||
$myDataClass->updateStatusTable($preTableName);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$myDataClass->writeLog(translate('New host group inserted:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$myDataClass->writeLog(translate('Host group modified:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Insert/update relations
|
|
||||||
// =======================
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
if ($intMselValue1 != 0) {
|
|
||||||
$intRet1 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkHostgroupToHost',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue1
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet1) && ($intRet1 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue2 != 0) {
|
|
||||||
$intRet2 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkHostgroupToHostgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue2
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet2) && ($intRet2 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
} elseif ($chkModus == 'modify') {
|
|
||||||
if ($intMselValue1 != 0) {
|
|
||||||
$intRet1 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkHostgroupToHost',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue1
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet1 = $myDataClass->dataDeleteRelation('tbl_lnkHostgroupToHost', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet1 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue2 != 0) {
|
|
||||||
$intRet2 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkHostgroupToHostgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue2
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet2 = $myDataClass->dataDeleteRelation('tbl_lnkHostgroupToHostgroup', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet2 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (($intRet1 + $intRet2) != 0) {
|
|
||||||
$strInfoMessage = '';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Database entry failed! Not all necessary data filled in!'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Database entry failed! No write access!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
if ($chkModus != 'add') {
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Get date/time of last database and config file manipulation
|
|
||||||
// ===========================================================
|
|
||||||
$intReturn = $myConfigClass->lastModifiedFile($preTableName, $arrTimeData, $strTimeInfoString);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Singe data form
|
|
||||||
// ===============
|
|
||||||
if ($chkModus == 'add') {
|
|
||||||
$conttp->setVariable('TITLE', translate('Define host groups (hostgroups.cfg)'));
|
|
||||||
// Do not show modified time list
|
|
||||||
$intNoTime = 1;
|
|
||||||
// Process host selection field
|
|
||||||
if (isset($arrModifyData['members'])) {
|
|
||||||
$intFieldId = $arrModifyData['members'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn1 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_host',
|
|
||||||
'host_name',
|
|
||||||
'host_members',
|
|
||||||
'tbl_lnkHostgroupToHost',
|
|
||||||
2,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn1 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (($intReturn1 != 0) && ($intVersion < 3)) {
|
|
||||||
$myVisClass->processMessage(translate('Attention, no hosts defined!'), $strDBWarning);
|
|
||||||
$intDataWarning = 1;
|
|
||||||
}
|
|
||||||
// Process host group selection field
|
|
||||||
if (isset($arrModifyData['hostgroup_members'])) {
|
|
||||||
$intFieldId = $arrModifyData['hostgroup_members'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn2 = $myVisClass->parseSelectMulti(
|
|
||||||
$preTableName,
|
|
||||||
$preKeyField,
|
|
||||||
'hostgroups',
|
|
||||||
'tbl_lnkHostgroupToHostgroup',
|
|
||||||
0,
|
|
||||||
$intFieldId,
|
|
||||||
$chkListId
|
|
||||||
);
|
|
||||||
if ($intReturn2 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process access group selection field
|
|
||||||
if (isset($arrModifyData['access_group'])) {
|
|
||||||
$intFieldId = $arrModifyData['access_group'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn3 = $myVisClass->parseSelectSimple('tbl_group', 'groupname', 'acc_group', 0, $intFieldId);
|
|
||||||
if ($intReturn3 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Initial add/modify form definitions
|
|
||||||
$myContentClass->addFormInit($conttp);
|
|
||||||
if ($intDataWarning == 1) {
|
|
||||||
$conttp->setVariable('WARNING', $strDBWarning. '<br>' .translate('Saving not possible!'));
|
|
||||||
}
|
|
||||||
if ($intVersion < 3) {
|
|
||||||
$conttp->setVariable('VERSION_20_VALUE_MUST', 'mselValue1,');
|
|
||||||
}
|
|
||||||
// Insert data from database in "modify" mode
|
|
||||||
if (isset($arrModifyData) && ($chkSelModify == 'modify')) {
|
|
||||||
// Check relation information to find out locked configuration datasets
|
|
||||||
$intLocked = $myDataClass->infoRelation($preTableName, $arrModifyData['id'], $preKeyField);
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strRelMessage);
|
|
||||||
$strInfo = '<br><span class="redmessage">' .translate('Entry cannot be activated because it is used by '
|
|
||||||
. 'another configuration'). ':</span>';
|
|
||||||
$strInfo .= '<br><span class="greenmessage">' .$strRelMessage. '</span>';
|
|
||||||
// Process data
|
|
||||||
$myContentClass->addInsertData($conttp, $arrModifyData, $intLocked, $strInfo);
|
|
||||||
}
|
|
||||||
$conttp->parse('datainsert');
|
|
||||||
$conttp->show('datainsert');
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// List view
|
|
||||||
// ==========
|
|
||||||
if ($chkModus == 'display') {
|
|
||||||
// Initial list view definitions
|
|
||||||
$myContentClass->listViewInit($mastertp);
|
|
||||||
$mastertp->setVariable('TITLE', translate('Define host groups (hostgroups.cfg)'));
|
|
||||||
$mastertp->setVariable('FIELD_1', translate('Host group'));
|
|
||||||
$mastertp->setVariable('FIELD_2', translate('Description'));
|
|
||||||
// Process search string
|
|
||||||
if ($_SESSION['search'][$preSearchSession] != '') {
|
|
||||||
$strSearchTxt = $_SESSION['search'][$preSearchSession];
|
|
||||||
$strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%' OR `alias` LIKE '%".$strSearchTxt."%' "
|
|
||||||
. "OR `notes` LIKE '%".$strSearchTxt."%')";
|
|
||||||
}
|
|
||||||
// Row sorting
|
|
||||||
$strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir";
|
|
||||||
if ($hidSortBy == 2) {
|
|
||||||
$strOrderString = "ORDER BY `config_id`, `alias` $hidSortDir";
|
|
||||||
}
|
|
||||||
// Count datasets
|
|
||||||
$strSQL1 = "SELECT count(*) AS `number` FROM `$preTableName` "
|
|
||||||
. "WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)";
|
|
||||||
$booReturn1 = $myDBClass->hasSingleDataset($strSQL1, $arrDataLinesCount);
|
|
||||||
if ($booReturn1 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$intLineCount = (int)$arrDataLinesCount['number'];
|
|
||||||
if ($intLineCount < $chkLimit) {
|
|
||||||
$chkLimit = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Get datasets
|
|
||||||
$strSQL2 = "SELECT `id`, `$preKeyField`, `alias`, `register`, `active`, `config_id`, `access_group` "
|
|
||||||
. "FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` "
|
|
||||||
. "IN ($strAccess) $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
|
||||||
$booReturn2 = $myDBClass->hasDataArray($strSQL2, $arrDataLines, $intDataCount);
|
|
||||||
if ($booReturn2 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process data
|
|
||||||
$myContentClass->listData($mastertp, $arrDataLines, $intDataCount, $intLineCount, $preKeyField, 'alias');
|
|
||||||
}
|
|
||||||
// Show messages
|
|
||||||
$myContentClass->showMessages(
|
|
||||||
$mastertp,
|
|
||||||
$strErrorMessage,
|
|
||||||
$strInfoMessage,
|
|
||||||
$strConsistMessage,
|
|
||||||
$arrTimeData,
|
|
||||||
$strTimeInfoString,
|
|
||||||
$intNoTime
|
|
||||||
);
|
|
||||||
//
|
|
||||||
// Process footer
|
|
||||||
// ==============
|
|
||||||
$myContentClass->showFooter($maintp, $setFileVersion);
|
|
730
admin/hosts.php
730
admin/hosts.php
@ -1,730 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Host definition
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 8;
|
|
||||||
$preContent = 'admin/hosts.htm.tpl';
|
|
||||||
$preListTpl = 'admin/datalist_hosts.htm.tpl';
|
|
||||||
$preSearchSession = 'host';
|
|
||||||
$preTableName = 'tbl_host';
|
|
||||||
$preKeyField = 'host_name';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Data processing
|
|
||||||
// ===============
|
|
||||||
$strNO = substr($chkChbGr1a.$chkChbGr1b.$chkChbGr1c.$chkChbGr1d.$chkChbGr1e, 0, -1);
|
|
||||||
$strIS = substr($chkChbGr2a.$chkChbGr2b.$chkChbGr2c, 0, -1);
|
|
||||||
$strFL = substr($chkChbGr3a.$chkChbGr3b.$chkChbGr3c, 0, -1);
|
|
||||||
$strST = substr($chkChbGr4a.$chkChbGr4b.$chkChbGr4c, 0, -1);
|
|
||||||
if ($chkSelValue1 != '') {
|
|
||||||
for ($i = 1; $i <= 8; $i++) {
|
|
||||||
$tmpVar = 'chkTfArg'.$i;
|
|
||||||
$$tmpVar = str_replace('!', '::bang::', $$tmpVar);
|
|
||||||
if ($$tmpVar != '') {
|
|
||||||
$chkSelValue1 .= '!' .$$tmpVar;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Add or modify data
|
|
||||||
// ==================
|
|
||||||
if ((($chkModus == 'insert') || ($chkModus == 'modify')) && ($intGlobalWriteAccess == 0)) {
|
|
||||||
$strSQLx = "`$preTableName` SET `$preKeyField`='$chkTfValue1', `alias`='$chkTfValue3', "
|
|
||||||
. "`display_name`='$chkTfValue4', `address`='$chkTfValue5', `name`='$chkTfValue6', "
|
|
||||||
. "`parents`=$intMselValue1, `importance`=$chkTfNullVal9, `parents_tploptions`=$chkRadValue1, "
|
|
||||||
. "`hostgroups`=$intMselValue2, "
|
|
||||||
. "`hostgroups_tploptions`=$chkRadValue2, `check_command`='$chkSelValue1', `use_template`=$intTemplates, "
|
|
||||||
. "`initial_state`='$strIS', `max_check_attempts`=$chkTfNullVal2, `check_interval`=$chkTfNullVal3, "
|
|
||||||
. "`retry_interval`=$chkTfNullVal1, `active_checks_enabled`=$chkRadValue5, "
|
|
||||||
. "`passive_checks_enabled`=$chkRadValue6, `check_period`=$chkSelValue2, "
|
|
||||||
. "`obsess_over_host`=$chkRadValue8, `check_freshness`=$chkRadValue7, "
|
|
||||||
. "`freshness_threshold`=$chkTfNullVal4, `event_handler`=$chkSelValue3, "
|
|
||||||
. "`event_handler_enabled`=$chkRadValue9, `low_flap_threshold`=$chkTfNullVal5, "
|
|
||||||
. "`high_flap_threshold`=$chkTfNullVal6, `flap_detection_enabled`=$chkRadValue10, "
|
|
||||||
. "`flap_detection_options`='$strFL', `process_perf_data`=$chkRadValue13, "
|
|
||||||
. "`retain_status_information`=$chkRadValue11, `retain_nonstatus_information`=$chkRadValue12, "
|
|
||||||
. "`contacts`=$intMselValue3, `contacts_tploptions`=$chkRadValue3, `contact_groups`=$intMselValue4, "
|
|
||||||
. "`contact_groups_tploptions`=$chkRadValue4, `notification_interval`=$chkTfNullVal7, "
|
|
||||||
. "`notification_period`=$chkSelValue4, `first_notification_delay`=$chkTfNullVal8, "
|
|
||||||
. "`notification_options`='$strNO', `notifications_enabled`=$chkRadValue14, `stalking_options`='$strST', "
|
|
||||||
. "`notes`='$chkTfValue7', `notes_url`='$chkTfValue9', `action_url`='$chkTfValue11', "
|
|
||||||
. "`icon_image`='$chkTfValue12', `icon_image_alt`='$chkTfValue13', `vrml_image`='$chkTfValue8', "
|
|
||||||
. "`statusmap_image`='$chkTfValue10', `2d_coords`='$chkTfValue14', `3d_coords`='$chkTfValue15', "
|
|
||||||
. $preSQLCommon1;
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$strSQL = 'INSERT INTO ' .$strSQLx;
|
|
||||||
} else {
|
|
||||||
$strSQL = 'UPDATE ' .$strSQLx. ' WHERE `id`=' .$chkDataId;
|
|
||||||
}
|
|
||||||
if ($intWriteAccessId == 0) {
|
|
||||||
if (($chkTfValue1 != '') && ($chkTfValue5 != '')) {
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$chkDataId = $intInsertId;
|
|
||||||
}
|
|
||||||
if ($intReturn == 1) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strInfoMessage);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$myDataClass->writeLog(translate('New host inserted:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$myDataClass->writeLog(translate('Host modified:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Insert/update relations
|
|
||||||
// =======================
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
if ($intMselValue1 != 0) {
|
|
||||||
$intRet1 = $myDataClass->dataInsertRelation('tbl_lnkHostToHost', $chkDataId, $chkMselValue1);
|
|
||||||
}
|
|
||||||
if (isset($intRet1) && ($intRet1 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue2 != 0) {
|
|
||||||
$intRet2 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkHostToHostgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue2
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet2) && ($intRet2 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue3 != 0) {
|
|
||||||
$intRet3 = $myDataClass->dataInsertRelation('tbl_lnkHostToContact', $chkDataId, $chkMselValue3);
|
|
||||||
}
|
|
||||||
if (isset($intRet3) && ($intRet3 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue4 != 0) {
|
|
||||||
$intRet4 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkHostToContactgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue4
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet4) && ($intRet4 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
} elseif ($chkModus == 'modify') {
|
|
||||||
if ($intMselValue1 != 0) {
|
|
||||||
$intRet1 = $myDataClass->dataUpdateRelation('tbl_lnkHostToHost', $chkDataId, $chkMselValue1);
|
|
||||||
} else {
|
|
||||||
$intRet1 = $myDataClass->dataDeleteRelation('tbl_lnkHostToHost', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet1 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue2 != 0) {
|
|
||||||
$intRet2 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkHostToHostgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue2
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet2 = $myDataClass->dataDeleteRelation('tbl_lnkHostToHostgroup', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet2 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue3 != 0) {
|
|
||||||
$intRet3 = $myDataClass->dataUpdateRelation('tbl_lnkHostToContact', $chkDataId, $chkMselValue3);
|
|
||||||
} else {
|
|
||||||
$intRet3 = $myDataClass->dataDeleteRelation('tbl_lnkHostToContact', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet3 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue4 != 0) {
|
|
||||||
$intRet4 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkHostToContactgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue4
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet4 = $myDataClass->dataDeleteRelation('tbl_lnkHostToContactgroup', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet4 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (($intRet1 + $intRet2 + $intRet3 + $intRet4) != 0) {
|
|
||||||
$strInfoMessage = '';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Removing the config file if an entry was deleted or renamed
|
|
||||||
// ===========================================================
|
|
||||||
if (($chkModus == 'modify') && ($chkTfValue2 != $chkTfValue1) && ($chkDomainId != 0)) {
|
|
||||||
$myConfigClass->getConfigTargets($arrConfigID);
|
|
||||||
if (($arrConfigID != 1) && is_array($arrConfigID)) {
|
|
||||||
$intReturn = 0;
|
|
||||||
foreach ($arrConfigID as $intConfigID) {
|
|
||||||
$intReturn += $myConfigClass->moveFile('host', $chkTfValue2. '.cfg', $intConfigID);
|
|
||||||
}
|
|
||||||
if ($intReturn == 0) {
|
|
||||||
$myVisClass->processMessage(translate('The assigned, no longer used configuration files '
|
|
||||||
. 'were deleted successfully!'), $strInfoMessage);
|
|
||||||
$myDataClass->writeLog(translate('Host file deleted:'). ' ' .$chkTfValue2. '.cfg');
|
|
||||||
} else {
|
|
||||||
if ($chkDomainId == 0) {
|
|
||||||
$myVisClass->processMessage(translate('Common files cannot be removed from target '
|
|
||||||
. 'systems - please check manually'), $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Errors while deleting the old configuration '
|
|
||||||
. 'file - please check!:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Removing the config file if an entry was dectivated
|
|
||||||
// ===================================================
|
|
||||||
if (($chkModus == 'modify') && ($chkActive == 0)) {
|
|
||||||
$myConfigClass->getConfigTargets($arrConfigID);
|
|
||||||
if (($arrConfigID != 1) && is_array($arrConfigID)) {
|
|
||||||
$intReturn = 0;
|
|
||||||
foreach ($arrConfigID as $intConfigID) {
|
|
||||||
$intReturn += $myConfigClass->moveFile('host', $chkTfValue2. '.cfg', $intConfigID);
|
|
||||||
}
|
|
||||||
if ($intReturn == 0) {
|
|
||||||
$myVisClass->processMessage(translate('The assigned, no longer used configuration files '
|
|
||||||
. 'were deleted successfully!'), $strInfoMessage);
|
|
||||||
$myDataClass->writeLog(translate('Host file deleted:'). ' ' .$chkTfValue1. '.cfg');
|
|
||||||
} else {
|
|
||||||
if ($chkDomainId == 0) {
|
|
||||||
$myVisClass->processMessage(translate('Common files cannot be removed from target '
|
|
||||||
. 'systems - please check manually'), $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Errors while deleting the old configuration '
|
|
||||||
. 'file - please check!:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Insert/update session data for templates
|
|
||||||
// ========================================
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$strSQL = 'DELETE FROM `tbl_lnkHostToHosttemplate` WHERE `idMaster`=' .$chkDataId;
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (isset($_SESSION['templatedefinition']) && is_array($_SESSION['templatedefinition']) &&
|
|
||||||
(count($_SESSION['templatedefinition']) != 0)) {
|
|
||||||
$intSortId = 1;
|
|
||||||
/** @noinspection ForeachSourceInspection */
|
|
||||||
foreach ($_SESSION['templatedefinition'] as $elem) {
|
|
||||||
if ($elem['status'] == 0) {
|
|
||||||
$strSQL = 'INSERT INTO `tbl_lnkHostToHosttemplate` (`idMaster`,`idSlave`,`idTable`, '
|
|
||||||
. "`idSort`) VALUES ($chkDataId,".$elem['idSlave']. ',' .$elem['idTable']. ', '
|
|
||||||
. $intSortId. ')';
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$intSortId++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Insert/update session data for free variables
|
|
||||||
// =============================================
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$strSQL = 'SELECT * FROM `tbl_lnkHostToVariabledefinition` WHERE `idMaster`=' .$chkDataId;
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrData, $intDataCount);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intDataCount != 0) {
|
|
||||||
foreach ($arrData as $elem) {
|
|
||||||
$strSQL = 'DELETE FROM `tbl_variabledefinition` WHERE `id`=' .$elem['idSlave'];
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$strSQL = 'DELETE FROM `tbl_lnkHostToVariabledefinition` WHERE `idMaster`=' .$chkDataId;
|
|
||||||
$intReturn1 = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn1 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
$strSQL = 'UPDATE `tbl_host` SET `use_variables`=0 WHERE `id`=' .$chkDataId;
|
|
||||||
$intReturn2 = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn2 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (isset($_SESSION['variabledefinition']) && is_array($_SESSION['variabledefinition']) &&
|
|
||||||
(count($_SESSION['variabledefinition']) != 0)) {
|
|
||||||
$intCountVariable = 0;
|
|
||||||
/** @noinspection ForeachSourceInspection */
|
|
||||||
foreach ($_SESSION['variabledefinition'] as $elem) {
|
|
||||||
if ($elem['status'] == 0) {
|
|
||||||
$strSQL = 'INSERT INTO `tbl_variabledefinition` (`name`,`value`,`last_modified`) '
|
|
||||||
. "VALUES ('".$elem['definition']."','".$elem['range']."',now())";
|
|
||||||
$intReturn1 = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn1 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
$strSQL = 'INSERT INTO `tbl_lnkHostToVariabledefinition` (`idMaster`,`idSlave`) '
|
|
||||||
. "VALUES ($chkDataId,$intInsertId)";
|
|
||||||
$intReturn2 = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn2 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (($intReturn1 == 0) && ($intReturn2 == 0)) {
|
|
||||||
$intCountVariable++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($intCountVariable != 0) {
|
|
||||||
$strSQL = 'UPDATE `tbl_host` SET `use_variables`=1 WHERE `id`=' .$chkDataId;
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Insert/Update service <-> host relations
|
|
||||||
// ========================================
|
|
||||||
// Update service table last modified date
|
|
||||||
$strSQL = 'SELECT `idMaster` FROM `tbl_lnkServiceToHost` WHERE `idSlave`=' .$chkDataId;
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrData, $intDataCount);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intDataCount != 0) {
|
|
||||||
foreach ($arrData as $elem) {
|
|
||||||
$strSQL = 'UPDATE `tbl_service` SET `last_modified` = NOW() WHERE `id`=' .$elem['idMaster'];
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Remove any link data from host to service
|
|
||||||
$strSQL = 'DELETE FROM `tbl_lnkServiceToHost` WHERE `idSlave`=' .$chkDataId;
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (is_array($chkMselValue5)) {
|
|
||||||
foreach ($chkMselValue5 as $elem) {
|
|
||||||
if ($elem != '') {
|
|
||||||
$intExclude = 0;
|
|
||||||
if (0 === strpos($elem, 'e')) {
|
|
||||||
$intExclude = 1;
|
|
||||||
$elem = substr_replace($elem, '', 0, 1);
|
|
||||||
}
|
|
||||||
$strSQL1 = 'INSERT INTO `tbl_lnkServiceToHost` (`idMaster`,`idSlave`,`exclude`) '
|
|
||||||
. "VALUES ($elem,$chkDataId,$intExclude)";
|
|
||||||
$intReturn1 = $myDataClass->dataInsert($strSQL1, $intInsertId);
|
|
||||||
if ($intReturn1 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Update service table last modified date
|
|
||||||
$strSQL2 = 'UPDATE `tbl_service` SET `last_modified` = NOW() WHERE `id`=' . $elem;
|
|
||||||
$intReturn2 = $myDataClass->dataInsert($strSQL2, $intInsertId);
|
|
||||||
if ($intReturn2 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Check if Service ID is not 0
|
|
||||||
$strSQL3 = "SELECT `$preKeyField` FROM `tbl_service` WHERE `id`=$elem";
|
|
||||||
$strResult3 = $myDBClass->getFieldData($strSQL3);
|
|
||||||
if ($strResult3 == 0) {
|
|
||||||
$strSQL = "UPDATE `tbl_service` SET `$preKeyField`=1 WHERE `id`=$elem";
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Database entry failed! Not all necessary data filled in!'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Database entry failed! No write access!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
if ($chkModus != 'add') {
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Singe data form
|
|
||||||
// ===============
|
|
||||||
if ($chkModus == 'add') {
|
|
||||||
$conttp->setVariable('TITLE', translate('Define hosts (hosts.cfg)'));
|
|
||||||
// Do not show modified time list
|
|
||||||
$intNoTime = 1;
|
|
||||||
// Process template fields
|
|
||||||
$strWhere = '';
|
|
||||||
if (isset($arrModifyData) && ($chkSelModify == 'modify')) {
|
|
||||||
$strWhere = 'AND `id` <> ' .$arrModifyData['id'];
|
|
||||||
}
|
|
||||||
$strSQL1 = 'SELECT `id`,`template_name`, `active` ' .
|
|
||||||
"FROM `tbl_hosttemplate` WHERE $strDomainWhere2 ORDER BY `template_name`";
|
|
||||||
$booReturn1 = $myDBClass->hasDataArray($strSQL1, $arrDataTpl, $intDataCountTpl);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intDataCountTpl != 0) {
|
|
||||||
/** @var array $arrDataTpl */
|
|
||||||
foreach ($arrDataTpl as $elem) {
|
|
||||||
if ($elem['active'] == 0) {
|
|
||||||
$strActive = ' [inactive]';
|
|
||||||
$conttp->setVariable('SPECIAL_STYLE', 'inactive_option');
|
|
||||||
} else {
|
|
||||||
$strActive = '';
|
|
||||||
$conttp->setVariable('SPECIAL_STYLE', '');
|
|
||||||
}
|
|
||||||
$conttp->setVariable('DAT_TEMPLATE', htmlspecialchars($elem['template_name'], ENT_QUOTES, 'UTF-8').
|
|
||||||
$strActive);
|
|
||||||
$conttp->setVariable('DAT_TEMPLATE_ID', $elem['id']. '::1');
|
|
||||||
$conttp->parse('template');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$strSQL2 = 'SELECT `id`, `name`, `active` '
|
|
||||||
. "FROM `$preTableName` WHERE `name` <> '' $strWhere AND $strDomainWhere ORDER BY `name`";
|
|
||||||
$booReturn2 = $myDBClass->hasDataArray($strSQL2, $arrDataHpl, $intDataCountHpl);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intDataCountHpl != 0) {
|
|
||||||
/** @var array $arrDataHpl */
|
|
||||||
foreach ($arrDataHpl as $elem) {
|
|
||||||
if ($elem['active'] == 0) {
|
|
||||||
$strActive = ' [inactive]';
|
|
||||||
$conttp->setVariable('SPECIAL_STYLE', 'inactive_option');
|
|
||||||
} else {
|
|
||||||
$strActive = '';
|
|
||||||
$conttp->setVariable('SPECIAL_STYLE', '');
|
|
||||||
}
|
|
||||||
$conttp->setVariable('DAT_TEMPLATE', htmlspecialchars($elem['name'], ENT_QUOTES, 'UTF-8').$strActive);
|
|
||||||
$conttp->setVariable('DAT_TEMPLATE_ID', $elem['id']. '::2');
|
|
||||||
$conttp->parse('template');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Process host selection field
|
|
||||||
if (isset($arrModifyData['parents'])) {
|
|
||||||
$intFieldId = $arrModifyData['parents'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['id'])) {
|
|
||||||
$intKeyId = $arrModifyData['id'];
|
|
||||||
} else {
|
|
||||||
$intKeyId = 0;
|
|
||||||
}
|
|
||||||
$intReturn3 = $myVisClass->parseSelectMulti(
|
|
||||||
$preTableName,
|
|
||||||
$preKeyField,
|
|
||||||
'host_parents',
|
|
||||||
'tbl_lnkHostToHost',
|
|
||||||
0,
|
|
||||||
$intFieldId,
|
|
||||||
$intKeyId
|
|
||||||
);
|
|
||||||
if ($intReturn3 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process hostgroup selection field
|
|
||||||
if (isset($arrModifyData['hostgroups'])) {
|
|
||||||
$intFieldId = $arrModifyData['hostgroups'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn4 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_hostgroup',
|
|
||||||
'hostgroup_name',
|
|
||||||
'hostgroup',
|
|
||||||
'tbl_lnkHostToHostgroup',
|
|
||||||
0,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn4 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process check command selection field
|
|
||||||
if (isset($arrModifyData['check_command']) && ($arrModifyData['check_command'] != '')) {
|
|
||||||
$arrCommand = explode('!', $arrModifyData['check_command']);
|
|
||||||
$intFieldId = $arrCommand[0];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn5 = $myVisClass->parseSelectSimple('tbl_command', 'command_name', 'hostcommand', 2, $intFieldId);
|
|
||||||
if ($intReturn5 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process check period selection field
|
|
||||||
if (isset($arrModifyData['check_period'])) {
|
|
||||||
$intFieldId = $arrModifyData['check_period'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn6 = $myVisClass->parseSelectSimple('tbl_timeperiod', 'timeperiod_name', 'checkperiod', 1, $intFieldId);
|
|
||||||
if ($intReturn6 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['notification_period'])) {
|
|
||||||
$intFieldId = $arrModifyData['notification_period'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn7 = $myVisClass->parseSelectSimple('tbl_timeperiod', 'timeperiod_name', 'notifyperiod', 1, $intFieldId);
|
|
||||||
if ($intReturn7 != 0) {
|
|
||||||
$myVisClass->processMessage(translate('Attention, no time periods defined!'), $strDBWarning);
|
|
||||||
$intDataWarning = 1;
|
|
||||||
}
|
|
||||||
// Process event handler selection field
|
|
||||||
if (isset($arrModifyData['event_handler'])) {
|
|
||||||
$intFieldId = $arrModifyData['event_handler'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn8 = $myVisClass->parseSelectSimple('tbl_command', 'command_name', 'eventhandler', 1, $intFieldId);
|
|
||||||
if ($intReturn8 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process contact and contact group selection field
|
|
||||||
if (isset($arrModifyData['contacts'])) {
|
|
||||||
$intFieldId = $arrModifyData['contacts'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn9 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_contact',
|
|
||||||
'contact_name',
|
|
||||||
'host_contacts',
|
|
||||||
'tbl_lnkHostToContact',
|
|
||||||
2,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn9 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['contact_groups'])) {
|
|
||||||
$intFieldId = $arrModifyData['contact_groups'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn10 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_contactgroup',
|
|
||||||
'contactgroup_name',
|
|
||||||
'host_contactgroups',
|
|
||||||
'tbl_lnkHostToContactgroup',
|
|
||||||
2,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn10 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (($intReturn8 != 0) && ($intReturn10 != 0)) {
|
|
||||||
$myVisClass->processMessage(translate('Attention, no contact groups defined!'), $strDBWarning);
|
|
||||||
$intDataWarning = 1;
|
|
||||||
}
|
|
||||||
// Process access group selection field
|
|
||||||
if (isset($arrModifyData['access_group'])) {
|
|
||||||
$intFieldId = $arrModifyData['access_group'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn11 = $myVisClass->parseSelectSimple('tbl_group', 'groupname', 'acc_group', 0, $intFieldId);
|
|
||||||
if ($intReturn11 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process service selection field
|
|
||||||
if (isset($arrModifyData['contacts'])) {
|
|
||||||
$intFieldId = $arrModifyData['id'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn12 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_service',
|
|
||||||
'service_description',
|
|
||||||
'host_services',
|
|
||||||
'tbl_lnkServiceToHost',
|
|
||||||
0,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn12 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Initial add/modify form definitions
|
|
||||||
$strChbFields = 'ACE,PCE,FRE,OBS,EVH,FLE,STI,NSI,PED,NOE,PAR,HOG,COT,COG,TPL';
|
|
||||||
$myContentClass->addFormInit($conttp, $strChbFields);
|
|
||||||
if ($intDataWarning == 1) {
|
|
||||||
$conttp->setVariable('WARNING', $strDBWarning. '<br>' .translate('Saving not possible!'));
|
|
||||||
}
|
|
||||||
if ($intVersion < 3) {
|
|
||||||
$conttp->setVariable('VERSION_20_VALUE_MUST', 'mselValue1,');
|
|
||||||
}
|
|
||||||
// Insert data from database in "modify" mode
|
|
||||||
if (isset($arrModifyData) && ($chkSelModify == 'modify')) {
|
|
||||||
// Check relation information to find out locked configuration datasets
|
|
||||||
$intLocked = $myDataClass->infoRelation($preTableName, $arrModifyData['id'], $preKeyField);
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strRelMessage);
|
|
||||||
$strInfo = '<br><span class="redmessage">' .translate('Entry cannot be activated because it is used by '
|
|
||||||
. 'another configuration'). ':</span>';
|
|
||||||
$strInfo .= '<br><span class="greenmessage">' .$strRelMessage. '</span>';
|
|
||||||
// Process data
|
|
||||||
$myContentClass->addInsertData($conttp, $arrModifyData, $intLocked, $strInfo, $strChbFields);
|
|
||||||
$conttp->setVariable('DAT_ACE' .$arrModifyData['active_checks_enabled']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_PCE' .$arrModifyData['passive_checks_enabled']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_FRE' .$arrModifyData['check_freshness']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_OBS' .$arrModifyData['obsess_over_host']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_EVH' .$arrModifyData['event_handler_enabled']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_FLE' .$arrModifyData['flap_detection_enabled']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_STI' .$arrModifyData['retain_status_information']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_NSI' .$arrModifyData['retain_nonstatus_information']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_PED' .$arrModifyData['process_perf_data']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_NOE' .$arrModifyData['notifications_enabled']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_PAR' .$arrModifyData['parents_tploptions']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_HOG' .$arrModifyData['hostgroups_tploptions']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_COT' .$arrModifyData['contacts_tploptions']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_COG' .$arrModifyData['contact_groups_tploptions']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_TPL' .$arrModifyData['use_template_tploptions']. '_CHECKED', 'checked');
|
|
||||||
// Special processing for -1 values - write 'null' to integer fields
|
|
||||||
$strIntegerfelder = 'max_check_attempts,check_interval,retry_interval,freshness_threshold,low_flap_threshold,'
|
|
||||||
. 'high_flap_threshold,';
|
|
||||||
$strIntegerfelder .= 'notification_interval,first_notification_delay';
|
|
||||||
foreach (explode(',', $strIntegerfelder) as $elem) {
|
|
||||||
if ($arrModifyData[$elem] == -1) {
|
|
||||||
$conttp->setVariable('DAT_' .strtoupper($elem), 'null');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($arrModifyData['check_command'] != '') {
|
|
||||||
$arrArgument = explode('!', $arrModifyData['check_command']);
|
|
||||||
foreach ($arrArgument as $key => $value) {
|
|
||||||
if ($key == 0) {
|
|
||||||
$conttp->setVariable('IFRAME_SRC', $_SESSION['SETS']['path']['base_url'].
|
|
||||||
'admin/commandline.php?cname=' .$value);
|
|
||||||
} else {
|
|
||||||
$value1 = str_replace('::bang::', '!', $value);
|
|
||||||
$value2 = str_replace('::back::', "\\", $value1);
|
|
||||||
$conttp->setVariable('DAT_ARG' .$key, htmlentities($value2, ENT_QUOTES, 'UTF-8'));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Process option fields
|
|
||||||
foreach (explode(',', $arrModifyData['initial_state']) as $elem) {
|
|
||||||
$conttp->setVariable('DAT_IS' .strtoupper($elem). '_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
foreach (explode(',', $arrModifyData['flap_detection_options']) as $elem) {
|
|
||||||
$conttp->setVariable('DAT_FL' .strtoupper($elem). '_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
foreach (explode(',', $arrModifyData['notification_options']) as $elem) {
|
|
||||||
$conttp->setVariable('DAT_NO' .strtoupper($elem). '_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
foreach (explode(',', $arrModifyData['stalking_options']) as $elem) {
|
|
||||||
$conttp->setVariable('DAT_ST' .strtoupper($elem). '_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$conttp->parse('datainsert');
|
|
||||||
$conttp->show('datainsert');
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// List view
|
|
||||||
// ==========
|
|
||||||
if ($chkModus == 'display') {
|
|
||||||
// Initial list view definitions
|
|
||||||
$myContentClass->listViewInit($mastertp);
|
|
||||||
$mastertp->setVariable('TITLE', translate('Define hosts (hosts.cfg)'));
|
|
||||||
$mastertp->setVariable('FIELD_1', translate('Host name'));
|
|
||||||
$mastertp->setVariable('FIELD_2', translate('Description'));
|
|
||||||
// Process filter string
|
|
||||||
if ($_SESSION['search'][$preSearchSession] != '') {
|
|
||||||
$strSearchTxt = $_SESSION['search'][$preSearchSession];
|
|
||||||
$strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%' OR `alias` LIKE '%".$strSearchTxt."%' OR "
|
|
||||||
. "`display_name` LIKE '%".$strSearchTxt."%' OR `address` LIKE '%".$strSearchTxt."%')";
|
|
||||||
}
|
|
||||||
// Row sorting
|
|
||||||
$strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir";
|
|
||||||
if ($hidSortBy == 2) {
|
|
||||||
$strOrderString = "ORDER BY `config_id`, `alias` $hidSortDir";
|
|
||||||
}
|
|
||||||
// Count datasets
|
|
||||||
$strSQL = "SELECT count(*) AS `number` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere "
|
|
||||||
. "AND `access_group` IN ($strAccess)";
|
|
||||||
$booReturn1 = $myDBClass->hasSingleDataset($strSQL, $arrDataLinesCount);
|
|
||||||
if ($booReturn1 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$intLineCount = (int)$arrDataLinesCount['number'];
|
|
||||||
if ($intLineCount < $chkLimit) {
|
|
||||||
$chkLimit = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Get datasets
|
|
||||||
$strSQL = "SELECT `id`, `$preKeyField`, `alias`, `register`, `active`, `last_modified`, `config_id`, "
|
|
||||||
. "`access_group` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` "
|
|
||||||
. "IN ($strAccess) $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
|
||||||
$booReturn2 = $myDBClass->hasDataArray($strSQL, $arrDataLines, $intDataCount);
|
|
||||||
if ($booReturn2 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process data
|
|
||||||
$myContentClass->listData($mastertp, $arrDataLines, $intDataCount, $intLineCount, $preKeyField, 'alias', 0);
|
|
||||||
if ($myContentClass->strErrorMessage != '') {
|
|
||||||
$myVisClass->processMessage($myContentClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Show messages
|
|
||||||
$arrTimeData = array();
|
|
||||||
$strTimeInfoString = '';
|
|
||||||
$myContentClass->showMessages(
|
|
||||||
$mastertp,
|
|
||||||
$strErrorMessage,
|
|
||||||
$strInfoMessage,
|
|
||||||
$strConsistMessage,
|
|
||||||
$arrTimeData,
|
|
||||||
$strTimeInfoString,
|
|
||||||
$intNoTime
|
|
||||||
);
|
|
||||||
//
|
|
||||||
// Process footer
|
|
||||||
// ==============
|
|
||||||
$myContentClass->showFooter($maintp, $setFileVersion);
|
|
@ -1,594 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Hosttemplate definition
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 12;
|
|
||||||
$preContent = 'admin/hosttemplates.htm.tpl';
|
|
||||||
$preListTpl = 'admin/datalist.htm.tpl';
|
|
||||||
$preSearchSession = 'hosttemplate';
|
|
||||||
$preTableName = 'tbl_hosttemplate';
|
|
||||||
$preKeyField = 'template_name';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Data processing
|
|
||||||
// ===============
|
|
||||||
$strNO = substr($chkChbGr1a.$chkChbGr1b.$chkChbGr1c.$chkChbGr1d.$chkChbGr1e, 0, -1);
|
|
||||||
$strIS = substr($chkChbGr2a.$chkChbGr2b.$chkChbGr2c, 0, -1);
|
|
||||||
$strFL = substr($chkChbGr3a.$chkChbGr3b.$chkChbGr3c, 0, -1);
|
|
||||||
$strST = substr($chkChbGr4a.$chkChbGr4b.$chkChbGr4c, 0, -1);
|
|
||||||
if ($chkSelValue1 != '') {
|
|
||||||
for ($i = 1; $i <= 8; $i++) {
|
|
||||||
$tmpVar = 'chkTfArg'.$i;
|
|
||||||
$$tmpVar = str_replace('!', '::bang::', $$tmpVar);
|
|
||||||
if ($$tmpVar != '') {
|
|
||||||
$chkSelValue1 .= '!' .$$tmpVar;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Add or modify data
|
|
||||||
// ==================
|
|
||||||
if ((($chkModus == 'insert') || ($chkModus == 'modify')) && ($intGlobalWriteAccess == 0)) {
|
|
||||||
$strSQLx = "`$preTableName` SET `$preKeyField`='$chkTfValue1', `alias`='$chkTfValue2', `parents`=$intMselValue1, "
|
|
||||||
. "`parents_tploptions`=$chkRadValue1, `importance`=$chkTfNullVal9, `hostgroups`=$intMselValue2, "
|
|
||||||
. "`hostgroups_tploptions`=$chkRadValue2, `check_command`='$chkSelValue1', `use_template`=$intTemplates, "
|
|
||||||
. "`initial_state`='$strIS', `max_check_attempts`=$chkTfNullVal2, `check_interval`=$chkTfNullVal3, "
|
|
||||||
. "`retry_interval`=$chkTfNullVal1, `active_checks_enabled`=$chkRadValue5, "
|
|
||||||
. "`passive_checks_enabled`=$chkRadValue6, `check_period`=$chkSelValue2, "
|
|
||||||
. "`obsess_over_host`=$chkRadValue8, `check_freshness`=$chkRadValue7, "
|
|
||||||
. "`freshness_threshold`=$chkTfNullVal4, `event_handler`=$chkSelValue3, "
|
|
||||||
. "`event_handler_enabled`=$chkRadValue9, `low_flap_threshold`=$chkTfNullVal5, "
|
|
||||||
. "`high_flap_threshold`=$chkTfNullVal6, `flap_detection_enabled`=$chkRadValue10, "
|
|
||||||
. "`flap_detection_options`='$strFL', `process_perf_data`=$chkRadValue13, "
|
|
||||||
. "`retain_status_information`=$chkRadValue11, `retain_nonstatus_information`=$chkRadValue12, "
|
|
||||||
. "`contacts`=$intMselValue3, `contacts_tploptions`=$chkRadValue3, `contact_groups`=$intMselValue4, "
|
|
||||||
. "`contact_groups_tploptions`=$chkRadValue4, `notification_interval`=$chkTfNullVal7, "
|
|
||||||
. "`notification_period`=$chkSelValue4, `first_notification_delay`=$chkTfNullVal8, "
|
|
||||||
. "`notification_options`='$strNO', `notifications_enabled`=$chkRadValue14, `stalking_options`='$strST', "
|
|
||||||
. "`notes`='$chkTfValue3', `notes_url`='$chkTfValue5', `action_url`='$chkTfValue7', "
|
|
||||||
. "`icon_image`='$chkTfValue8', `icon_image_alt`='$chkTfValue10', `vrml_image`='$chkTfValue4', "
|
|
||||||
. "`statusmap_image`='$chkTfValue6', `2d_coords`='$chkTfValue9', `3d_coords`='$chkTfValue11', "
|
|
||||||
. "`use_variables`=$intVariables, $preSQLCommon2";
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$strSQL = 'INSERT INTO ' .$strSQLx;
|
|
||||||
} else {
|
|
||||||
$strSQL = 'UPDATE ' .$strSQLx. ' WHERE `id`=' .$chkDataId;
|
|
||||||
}
|
|
||||||
if ($intWriteAccessId == 0) {
|
|
||||||
if ($chkTfValue1 != '') {
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$chkDataId = $intInsertId;
|
|
||||||
}
|
|
||||||
if ($intReturn == 1) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strInfoMessage);
|
|
||||||
$myDataClass->updateStatusTable($preTableName);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$myDataClass->writeLog(translate('New host template inserted:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$myDataClass->writeLog(translate('Host template modified:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Insert/update relations
|
|
||||||
// =======================
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
if ($intMselValue1 != 0) {
|
|
||||||
$intRet1 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkHosttemplateToHost',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue1
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet1) && ($intRet1 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue2 != 0) {
|
|
||||||
$intRet2 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkHosttemplateToHostgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue2
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet2) && ($intRet2 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue3 != 0) {
|
|
||||||
$intRet3 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkHosttemplateToContact',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue3
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet3) && ($intRet3 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue4 != 0) {
|
|
||||||
$intRet4 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkHosttemplateToContactgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue4
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet4) && ($intRet4 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
} elseif ($chkModus == 'modify') {
|
|
||||||
if ($intMselValue1 != 0) {
|
|
||||||
$intRet1 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkHosttemplateToHost',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue1
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet1 = $myDataClass->dataDeleteRelation('tbl_lnkHosttemplateToHost', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet1 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue2 != 0) {
|
|
||||||
$intRet2 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkHosttemplateToHostgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue2
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet2 = $myDataClass->dataDeleteRelation('tbl_lnkHosttemplateToHostgroup', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet2 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue3 != 0) {
|
|
||||||
$intRet3 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkHosttemplateToContact',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue3
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet3 = $myDataClass->dataDeleteRelation('tbl_lnkHosttemplateToContact', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet3 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue4 != 0) {
|
|
||||||
$intRet4 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkHosttemplateToContactgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue4
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet4 = $myDataClass->dataDeleteRelation('tbl_lnkHosttemplateToContactgroup', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet4 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (($intRet1 + $intRet2 + $intRet3 + $intRet4) != 0) {
|
|
||||||
$strInfoMessage = '';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Insert/update session data for templates
|
|
||||||
// ========================================
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$strSQL = 'DELETE FROM `tbl_lnkHosttemplateToHosttemplate` WHERE `idMaster`=' .$chkDataId;
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (isset($_SESSION['templatedefinition']) && is_array($_SESSION['templatedefinition']) &&
|
|
||||||
(count($_SESSION['templatedefinition']) != 0)) {
|
|
||||||
$intSortId = 1;
|
|
||||||
/** @noinspection ForeachSourceInspection */
|
|
||||||
foreach ($_SESSION['templatedefinition'] as $elem) {
|
|
||||||
if ($elem['status'] == 0) {
|
|
||||||
$strSQL = 'INSERT INTO `tbl_lnkHosttemplateToHosttemplate` (`idMaster`,`idSlave`, '
|
|
||||||
. "`idTable`,`idSort`) VALUES ($chkDataId,".$elem['idSlave']. ', '
|
|
||||||
. $elem['idTable']. ',' .$intSortId. ')';
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$intSortId++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Insert/update session data for free variables
|
|
||||||
// =============================================
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$strSQL = 'SELECT * FROM `tbl_lnkHosttemplateToVariabledefinition` WHERE `idMaster`='
|
|
||||||
. $chkDataId;
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrData, $intDataCount);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intDataCount != 0) {
|
|
||||||
foreach ($arrData as $elem) {
|
|
||||||
$strSQL = 'DELETE FROM `tbl_variabledefinition` WHERE `id`=' .$elem['idSlave'];
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$strSQL = 'DELETE FROM `tbl_lnkHosttemplateToVariabledefinition` WHERE `idMaster`=' .$chkDataId;
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (isset($_SESSION['variabledefinition']) && is_array($_SESSION['variabledefinition']) &&
|
|
||||||
(count($_SESSION['variabledefinition']) != 0)) {
|
|
||||||
foreach ($_SESSION['variabledefinition'] as $elem) {
|
|
||||||
if ($elem['status'] == 0) {
|
|
||||||
$strSQL = 'INSERT INTO `tbl_variabledefinition` (`name`,`value`,`last_modified`) '
|
|
||||||
. "VALUES ('".$elem['definition']."','".$elem['range']."',now())";
|
|
||||||
$intReturn1 = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn1 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
$strSQL = 'INSERT INTO `tbl_lnkHosttemplateToVariabledefinition` (`idMaster`, '
|
|
||||||
. "`idSlave`) VALUES ($chkDataId,$intInsertId)";
|
|
||||||
$intReturn2 = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn2 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Database entry failed! Not all necessary data filled in!'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Database entry failed! No write access!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
if ($chkModus != 'add') {
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Get date/time of last database and config file manipulation
|
|
||||||
// ===========================================================
|
|
||||||
$intReturn = $myConfigClass->lastModifiedFile($preTableName, $arrTimeData, $strTimeInfoString);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Singe data form
|
|
||||||
// ===============
|
|
||||||
if ($chkModus == 'add') {
|
|
||||||
$conttp->setVariable('TITLE', translate('Host template definition (hosttemplates.cfg)'));
|
|
||||||
// Do not show modified time list
|
|
||||||
$intNoTime = 1;
|
|
||||||
// Process template fields
|
|
||||||
$strWhere = '';
|
|
||||||
if (isset($arrModifyData) && ($chkSelModify == 'modify')) {
|
|
||||||
$strWhere = 'AND `id` <> ' .$arrModifyData['id'];
|
|
||||||
}
|
|
||||||
$strSQL1 = "SELECT `id`,`$preKeyField`, `active` FROM `$preTableName` "
|
|
||||||
. "WHERE `config_id` = $chkDomainId $strWhere ORDER BY `$preKeyField`";
|
|
||||||
$booReturn1 = $myDBClass->hasDataArray($strSQL1, $arrDataTpl, $intDataCountTpl);
|
|
||||||
if ($booReturn1 == false) {
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intDataCountTpl != 0) {
|
|
||||||
/** @var array $arrDataTpl */
|
|
||||||
foreach ($arrDataTpl as $elem) {
|
|
||||||
if ($elem['active'] == 0) {
|
|
||||||
$strActive = ' [inactive]';
|
|
||||||
$conttp->setVariable('SPECIAL_STYLE', 'inactive_option');
|
|
||||||
} else {
|
|
||||||
$strActive = '';
|
|
||||||
$conttp->setVariable('SPECIAL_STYLE', '');
|
|
||||||
}
|
|
||||||
$conttp->setVariable('DAT_TEMPLATE', htmlspecialchars($elem[$preKeyField], ENT_QUOTES, 'UTF-8').$strActive);
|
|
||||||
$conttp->setVariable('DAT_TEMPLATE_ID', $elem['id']. '::1');
|
|
||||||
$conttp->parse('template');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$strSQL2 = 'SELECT `id`, `name`, `active` FROM `tbl_host` '
|
|
||||||
. "WHERE `name` <> '' AND `config_id` = $chkDomainId ORDER BY `name`";
|
|
||||||
$booReturn2 = $myDBClass->hasDataArray($strSQL2, $arrDataHpl, $intDataCountHpl);
|
|
||||||
if ($booReturn2 == false) {
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intDataCountHpl != 0) {
|
|
||||||
/** @var array $arrDataHpl */
|
|
||||||
foreach ($arrDataHpl as $elem) {
|
|
||||||
if ($elem['active'] == 0) {
|
|
||||||
$strActive = ' [inactive]';
|
|
||||||
$conttp->setVariable('SPECIAL_STYLE', 'inactive_option');
|
|
||||||
} else {
|
|
||||||
$strActive = '';
|
|
||||||
$conttp->setVariable('SPECIAL_STYLE', '');
|
|
||||||
}
|
|
||||||
$conttp->setVariable('DAT_TEMPLATE', htmlspecialchars($elem['name'], ENT_QUOTES, 'UTF-8').$strActive);
|
|
||||||
$conttp->setVariable('DAT_TEMPLATE_ID', $elem['id']. '::2');
|
|
||||||
$conttp->parse('template');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Process host selection field
|
|
||||||
if (isset($arrModifyData['parents'])) {
|
|
||||||
$intFieldId = $arrModifyData['parents'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn1 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_host',
|
|
||||||
'host_name',
|
|
||||||
'host_parents',
|
|
||||||
'tbl_lnkHosttemplateToHost',
|
|
||||||
0,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn1 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process hostgroup selection field
|
|
||||||
if (isset($arrModifyData['hostgroups'])) {
|
|
||||||
$intFieldId = $arrModifyData['hostgroups'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn2 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_hostgroup',
|
|
||||||
'hostgroup_name',
|
|
||||||
'hostgroup',
|
|
||||||
'tbl_lnkHosttemplateToHostgroup',
|
|
||||||
0,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn2 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process check command selection field
|
|
||||||
if (isset($arrModifyData['check_command']) && ($arrModifyData['check_command'] != '')) {
|
|
||||||
$arrCommand = explode('!', $arrModifyData['check_command']);
|
|
||||||
$intFieldId = $arrCommand[0];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn3 = $myVisClass->parseSelectSimple('tbl_command', 'command_name', 'hostcommand', 1, $intFieldId);
|
|
||||||
if ($intReturn3 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process check period selection field
|
|
||||||
if (isset($arrModifyData['check_period'])) {
|
|
||||||
$intFieldId = $arrModifyData['check_period'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn4 = $myVisClass->parseSelectSimple('tbl_timeperiod', 'timeperiod_name', 'checkperiod', 1, $intFieldId);
|
|
||||||
if ($intReturn4 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['notification_period'])) {
|
|
||||||
$intFieldId = $arrModifyData['notification_period'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn5 = $myVisClass->parseSelectSimple('tbl_timeperiod', 'timeperiod_name', 'notifyperiod', 1, $intFieldId);
|
|
||||||
if ($intReturn5 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process event handler selection field
|
|
||||||
if (isset($arrModifyData['event_handler'])) {
|
|
||||||
$intFieldId = $arrModifyData['event_handler'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn6 = $myVisClass->parseSelectSimple('tbl_command', 'command_name', 'eventhandler', 1, $intFieldId);
|
|
||||||
if ($intReturn6 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process contact and contact group selection field
|
|
||||||
if (isset($arrModifyData['contacts'])) {
|
|
||||||
$intFieldId = $arrModifyData['contacts'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn7 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_contact',
|
|
||||||
'contact_name',
|
|
||||||
'host_contacts',
|
|
||||||
'tbl_lnkHosttemplateToContact',
|
|
||||||
2,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn7 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['contact_groups'])) {
|
|
||||||
$intFieldId = $arrModifyData['contact_groups'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn8 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_contactgroup',
|
|
||||||
'contactgroup_name',
|
|
||||||
'host_contactgroups',
|
|
||||||
'tbl_lnkHosttemplateToContactgroup',
|
|
||||||
2,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn8 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process access group selection field
|
|
||||||
if (isset($arrModifyData['access_group'])) {
|
|
||||||
$intFieldId = $arrModifyData['access_group'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn9 = $myVisClass->parseSelectSimple('tbl_group', 'groupname', 'acc_group', 0, $intFieldId);
|
|
||||||
if ($intReturn9 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Initial add/modify form definitions
|
|
||||||
$strChbFields = 'ACE,PCE,FRE,OBS,EVH,FLE,STI,NSI,PED,NOE,PAR,HOG,COT,COG,TPL';
|
|
||||||
$myContentClass->addFormInit($conttp, $strChbFields);
|
|
||||||
if ($intDataWarning == 1) {
|
|
||||||
$conttp->setVariable('WARNING', $strDBWarning. '<br>' .translate('Saving not possible!'));
|
|
||||||
}
|
|
||||||
if ($intVersion < 3) {
|
|
||||||
$conttp->setVariable('VERSION_20_VALUE_MUST', 'mselValue1,');
|
|
||||||
}
|
|
||||||
// Insert data from database in "modify" mode
|
|
||||||
if (isset($arrModifyData) && ($chkSelModify == 'modify')) {
|
|
||||||
// Check relation information to find out locked configuration datasets
|
|
||||||
$intLocked = $myDataClass->infoRelation($preTableName, $arrModifyData['id'], $preKeyField);
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strRelMessage);
|
|
||||||
$strInfo = '<br><span class="redmessage">' .translate('Entry cannot be activated because it is used by '
|
|
||||||
. 'another configuration'). ':</span>';
|
|
||||||
$strInfo .= '<br><span class="greenmessage">' .$strRelMessage. '</span>';
|
|
||||||
// Process data
|
|
||||||
$myContentClass->addInsertData($conttp, $arrModifyData, $intLocked, $strInfo, $strChbFields);
|
|
||||||
$conttp->setVariable('DAT_ACE' .$arrModifyData['active_checks_enabled']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_PCE' .$arrModifyData['passive_checks_enabled']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_FRE' .$arrModifyData['check_freshness']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_OBS' .$arrModifyData['obsess_over_host']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_EVH' .$arrModifyData['event_handler_enabled']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_FLE' .$arrModifyData['flap_detection_enabled']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_STI' .$arrModifyData['retain_status_information']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_NSI' .$arrModifyData['retain_nonstatus_information']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_PED' .$arrModifyData['process_perf_data']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_NOE' .$arrModifyData['notifications_enabled']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_PAR' .$arrModifyData['parents_tploptions']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_HOG' .$arrModifyData['hostgroups_tploptions']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_COT' .$arrModifyData['contacts_tploptions']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_COG' .$arrModifyData['contact_groups_tploptions']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_TPL' .$arrModifyData['use_template_tploptions']. '_CHECKED', 'checked');
|
|
||||||
// Special processing for -1 values - write 'null' to integer fields
|
|
||||||
$strIntegerfelder = 'max_check_attempts,check_interval,retry_interval,freshness_threshold,low_flap_threshold,';
|
|
||||||
$strIntegerfelder .= 'high_flap_threshold,notification_interval,first_notification_delay';
|
|
||||||
foreach (explode(',', $strIntegerfelder) as $elem) {
|
|
||||||
if ($arrModifyData[$elem] == -1) {
|
|
||||||
$conttp->setVariable('DAT_' .strtoupper($elem), 'null');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($arrModifyData['check_command'] != '') {
|
|
||||||
$arrArgument = explode('!', $arrModifyData['check_command']);
|
|
||||||
foreach ($arrArgument as $key => $value) {
|
|
||||||
if ($key == 0) {
|
|
||||||
$conttp->setVariable('IFRAME_SRC', $_SESSION['SETS']['path']['base_url'].
|
|
||||||
'admin/commandline.php?cname=' .$value);
|
|
||||||
} else {
|
|
||||||
$value1 = str_replace('::bang::', '!', $value);
|
|
||||||
$value2 = str_replace('::back::', "\\", $value1);
|
|
||||||
$conttp->setVariable('DAT_ARG' .$key, htmlentities($value, ENT_QUOTES, 'UTF-8'));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Process option fields
|
|
||||||
foreach (explode(',', $arrModifyData['initial_state']) as $elem) {
|
|
||||||
$conttp->setVariable('DAT_IS' .strtoupper($elem). '_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
foreach (explode(',', $arrModifyData['flap_detection_options']) as $elem) {
|
|
||||||
$conttp->setVariable('DAT_FL' .strtoupper($elem). '_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
foreach (explode(',', $arrModifyData['notification_options']) as $elem) {
|
|
||||||
$conttp->setVariable('DAT_NO' .strtoupper($elem). '_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
foreach (explode(',', $arrModifyData['stalking_options']) as $elem) {
|
|
||||||
$conttp->setVariable('DAT_ST' .strtoupper($elem). '_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$conttp->parse('datainsert');
|
|
||||||
$conttp->show('datainsert');
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// List view
|
|
||||||
// ==========
|
|
||||||
if ($chkModus == 'display') {
|
|
||||||
// Initial list view definitions
|
|
||||||
$myContentClass->listViewInit($mastertp);
|
|
||||||
$mastertp->setVariable('TITLE', translate('Host template definition (hosttemplates.cfg)'));
|
|
||||||
$mastertp->setVariable('FIELD_1', translate('Host template name'));
|
|
||||||
$mastertp->setVariable('FIELD_2', translate('Description'));
|
|
||||||
// Process search string
|
|
||||||
if ($_SESSION['search'][$preSearchSession] != '') {
|
|
||||||
$strSearchTxt = $_SESSION['search'][$preSearchSession];
|
|
||||||
$strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%' OR `alias` LIKE '%".$strSearchTxt."%')";
|
|
||||||
}
|
|
||||||
// Row sorting
|
|
||||||
$strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir";
|
|
||||||
if ($hidSortBy == 2) {
|
|
||||||
$strOrderString = "ORDER BY `config_id`, `alias` $hidSortDir";
|
|
||||||
}
|
|
||||||
// Count datasets
|
|
||||||
$strSQL1 = "SELECT count(*) AS `number` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere "
|
|
||||||
. "AND `access_group` IN ($strAccess)";
|
|
||||||
$booReturn1 = $myDBClass->hasSingleDataset($strSQL1, $arrDataLinesCount);
|
|
||||||
if ($booReturn1 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$intLineCount = (int)$arrDataLinesCount['number'];
|
|
||||||
if ($intLineCount < $chkLimit) {
|
|
||||||
$chkLimit = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Get datasets
|
|
||||||
$strSQL2 = "SELECT `id`, `$preKeyField`, `alias`, `register`, `active`, `last_modified`, `config_id`, "
|
|
||||||
. "`access_group` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` "
|
|
||||||
. "IN ($strAccess) $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
|
||||||
$booReturn2 = $myDBClass->hasDataArray($strSQL2, $arrDataLines, $intDataCount);
|
|
||||||
if ($booReturn2 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process data
|
|
||||||
$myContentClass->listData($mastertp, $arrDataLines, $intDataCount, $intLineCount, $preKeyField, 'alias');
|
|
||||||
if ($myContentClass->strErrorMessage != '') {
|
|
||||||
$myVisClass->processMessage($myContentClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Show messages
|
|
||||||
$myContentClass->showMessages(
|
|
||||||
$mastertp,
|
|
||||||
$strErrorMessage,
|
|
||||||
$strInfoMessage,
|
|
||||||
$strConsistMessage,
|
|
||||||
$arrTimeData,
|
|
||||||
$strTimeInfoString,
|
|
||||||
$intNoTime
|
|
||||||
);
|
|
||||||
//
|
|
||||||
// Process footer
|
|
||||||
// ==============
|
|
||||||
$myContentClass->showFooter($maintp, $setFileVersion);
|
|
298
admin/import.php
298
admin/import.php
@ -1,298 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Admin configuration verification
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 25;
|
|
||||||
$preContent = 'admin/import.htm.tpl';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
$intModus = 0;
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Initialize import class
|
|
||||||
// =======================
|
|
||||||
$myImportClass = new functions\NagImportClass($_SESSION);
|
|
||||||
$myImportClass->myDBClass =& $myDBClass;
|
|
||||||
$myImportClass->myDataClass =& $myDataClass;
|
|
||||||
$myImportClass->myConfigClass =& $myConfigClass;
|
|
||||||
//
|
|
||||||
// Get configuration set ID
|
|
||||||
// ========================
|
|
||||||
$myConfigClass->getConfigTargets($arrConfigSet);
|
|
||||||
$intConfigId = $arrConfigSet[0];
|
|
||||||
//
|
|
||||||
// Process form variables
|
|
||||||
// ======================
|
|
||||||
if (isset($_FILES['datValue1']) && ($_FILES['datValue1']['name'] != '') && ($chkStatus == 1)) {
|
|
||||||
// Upload Error
|
|
||||||
if ($_FILES['datValue1']['error'] !== UPLOAD_ERR_OK) {
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('File upload error:'). ' ' .$_FILES['filMedia']['error'],
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intModus = 1;
|
|
||||||
$strFileName = tempnam($_SESSION['SETS']['path']['tempdir'], 'nagiosql_local_imp');
|
|
||||||
move_uploaded_file($_FILES['datValue1']['tmp_name'], $strFileName);
|
|
||||||
$intReturn = $myImportClass->fileImport($strFileName, $intConfigId, $chkChbValue1);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myImportClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myImportClass->strInfoMessage, $strInfoMessage);
|
|
||||||
$myDataClass->writeLog(translate('File imported - File [overwrite flag]:'). ' ' .
|
|
||||||
$_FILES['datValue1']['name']. ' [' .$chkChbValue1. ']');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (($chkMselValue1[0] != '') && ($chkStatus == 1)) {
|
|
||||||
/** @var array $chkMselValue1 */
|
|
||||||
foreach ($chkMselValue1 as $elem) {
|
|
||||||
$intModus = 1;
|
|
||||||
$myImportClass->strErrorMessage = '';
|
|
||||||
$myImportClass->strInfoMessage = '';
|
|
||||||
$intReturn = $myImportClass->fileImport($elem, $intConfigId, $chkChbValue1);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myImportClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myImportClass->strInfoMessage, $strInfoMessage);
|
|
||||||
$myDataClass->writeLog(translate('File imported - File [overwrite flag]:'). ' ' .$elem. ' ['
|
|
||||||
.$chkChbValue1. ']');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Start content
|
|
||||||
// =============
|
|
||||||
$conttp->setVariable('TITLE', translate('Configuration import'));
|
|
||||||
$conttp->parse('header');
|
|
||||||
$conttp->show('header');
|
|
||||||
$conttp->setVariable('LANG_SEARCH_STRING', translate('Filter string'));
|
|
||||||
$conttp->setVariable('LANG_SEARCH', translate('Search'));
|
|
||||||
$conttp->setVariable('LANG_DELETE', translate('Delete'));
|
|
||||||
$conttp->setVariable('LANG_DELETE_SEARCH', translate('Reset filter'));
|
|
||||||
$conttp->setVariable('DAT_SEARCH', $chkTfSearch);
|
|
||||||
$conttp->setVariable('TEMPLATE', translate('Template definition'));
|
|
||||||
$conttp->setVariable('IMPORTFILE', translate('Import file'));
|
|
||||||
$conttp->setVariable('LOCAL_FILE', translate('Local import file'));
|
|
||||||
$conttp->setVariable('OVERWRITE', translate('Overwrite database'));
|
|
||||||
$conttp->setVariable('MAKE', translate('Import'));
|
|
||||||
$conttp->setVariable('ABORT', translate('Abort'));
|
|
||||||
$conttp->setVariable('CTRL_INFO', translate('Hold CTRL to select<br>more than one'));
|
|
||||||
$conttp->setVariable('IMAGE_PATH', $_SESSION['SETS']['path']['base_url']. 'images/');
|
|
||||||
$conttp->setVariable('ACTION_INSERT', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$conttp->setVariable('DAT_IMPORTFILE_1', '');
|
|
||||||
$conttp->setVariable('IMPORT_INFO_1', translate('To prevent errors or misconfigurations, you should import your '
|
|
||||||
. 'configurations in an useful order. We recommend to do it like this:<br><br><b><i>commands -> '
|
|
||||||
. 'timeperiods -> contacttemplates -> contacts -> contactgroups -> hosttemplates -> hosts -> '
|
|
||||||
. 'hostgroups -> servicetemplates -> services -> servicegroups</i></b><br><br>'));
|
|
||||||
$conttp->setVariable('IMPORT_INFO_2', '<span style="color:#FF0000">' .translate('<b>Check your configuration after '
|
|
||||||
. 'import!</b><br>In cause of an error or an uncomplete configuration, re-importing the wrong configuration '
|
|
||||||
. 'can solve the problem.'). '</span>');
|
|
||||||
$conttp->parse('filelist1');
|
|
||||||
// Get settings
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'method', $intMethod);
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'basedir', $strBaseDir);
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'hostconfig', $strHostDir);
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'serviceconfig', $strServiceDir);
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'backupdir', $strBackupDir);
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'hostbackup', $strHostBackupDir);
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'servicebackup', $strServiceBackupDir);
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'importdir', $strImportDir);
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'nagiosbasedir', $strNagiosBaseDir);
|
|
||||||
if ($intMethod == 1) {
|
|
||||||
// Building local file list
|
|
||||||
$arrOutput1 = array();
|
|
||||||
$myConfigClass->storeDirToArray(
|
|
||||||
$strBaseDir,
|
|
||||||
"\.cfg",
|
|
||||||
'cgi.cfg|nagios.cfg|nrpe.cfg|nsca.cfg',
|
|
||||||
$arrOutput1,
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
if ($strNagiosBaseDir != $strBaseDir) {
|
|
||||||
$myConfigClass->storeDirToArray(
|
|
||||||
$strNagiosBaseDir,
|
|
||||||
"\.cfg",
|
|
||||||
'cgi.cfg|nagios.cfg|nrpe.cfg|nsca.cfg',
|
|
||||||
$arrOutput1,
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
$myConfigClass->storeDirToArray($strHostDir, "\.cfg", '', $arrOutput1, $strErrorMessage);
|
|
||||||
$myConfigClass->storeDirToArray($strServiceDir, "\.cfg", '', $arrOutput1, $strErrorMessage);
|
|
||||||
$myConfigClass->storeDirToArray($strHostBackupDir, "\.cfg_", '', $arrOutput1, $strErrorMessage);
|
|
||||||
$myConfigClass->storeDirToArray($strServiceBackupDir, "\.cfg_", '', $arrOutput1, $strErrorMessage);
|
|
||||||
if (($strImportDir != '') && ($strImportDir != $strBaseDir) && ($strImportDir != $strNagiosBaseDir)) {
|
|
||||||
$myConfigClass->storeDirToArray($strImportDir, "\.cfg", '', $arrOutput1, $strErrorMessage);
|
|
||||||
}
|
|
||||||
$arrOutput2=array_unique($arrOutput1);
|
|
||||||
if (is_array($arrOutput2) && (count($arrOutput2) != 0)) {
|
|
||||||
foreach ($arrOutput2 as $elem) {
|
|
||||||
if (($chkTfSearch == '') || (substr_count($elem, $chkTfSearch) != 0)) {
|
|
||||||
$conttp->setVariable('DAT_IMPORTFILE_2', $elem);
|
|
||||||
$conttp->parse('filelist2');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} elseif ($intMethod == 2) {
|
|
||||||
// Set up basic connection
|
|
||||||
if ($myConfigClass->getFTPConnection($intConfigId) == '0') {
|
|
||||||
$arrFiles = array();
|
|
||||||
$arrFiles1 = ftp_nlist($myConfigClass->resConnectId, $strBaseDir);
|
|
||||||
if (is_array($arrFiles1)) {
|
|
||||||
$arrFiles = array_merge($arrFiles, $arrFiles1);
|
|
||||||
}
|
|
||||||
$arrFiles2 = ftp_nlist($myConfigClass->resConnectId, $strHostDir);
|
|
||||||
if (is_array($arrFiles2)) {
|
|
||||||
$arrFiles = array_merge($arrFiles, $arrFiles2);
|
|
||||||
}
|
|
||||||
$arrFiles3 = ftp_nlist($myConfigClass->resConnectId, $strServiceDir);
|
|
||||||
if (is_array($arrFiles3)) {
|
|
||||||
$arrFiles = array_merge($arrFiles, $arrFiles3);
|
|
||||||
}
|
|
||||||
$arrFiles4 = ftp_nlist($myConfigClass->resConnectId, $strHostBackupDir);
|
|
||||||
if (is_array($arrFiles4)) {
|
|
||||||
$arrFiles = array_merge($arrFiles, $arrFiles4);
|
|
||||||
}
|
|
||||||
$arrFiles5 = ftp_nlist($myConfigClass->resConnectId, $strServiceBackupDir);
|
|
||||||
if (is_array($arrFiles5)) {
|
|
||||||
$arrFiles = array_merge($arrFiles, $arrFiles5);
|
|
||||||
}
|
|
||||||
if ($strImportDir != '') {
|
|
||||||
$arrFiles6 = ftp_nlist($myConfigClass->resConnectId, $strImportDir);
|
|
||||||
if (is_array($arrFiles6)) {
|
|
||||||
$arrFiles = array_merge($arrFiles, $arrFiles6);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (is_array($arrFiles) && (count($arrFiles) != 0)) {
|
|
||||||
foreach ($arrFiles as $elem) {
|
|
||||||
if (!substr_count($elem, 'cfg')) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (substr_count($elem, 'resource.cfg')) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (substr_count($elem, 'nagios.cfg')) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (substr_count($elem, 'cgi.cfg')) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (substr_count($elem, 'nrpe.cfg')) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (substr_count($elem, 'nsca.cfg')) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (($chkTfSearch == '') || (substr_count($elem, $chkTfSearch) != 0)) {
|
|
||||||
$conttp->setVariable('DAT_IMPORTFILE_2', str_replace('//', '/', $elem));
|
|
||||||
$conttp->parse('filelist2');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ftp_close($myConfigClass->resConnectId);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
} elseif ($intMethod == 3) {
|
|
||||||
// Set up basic connection
|
|
||||||
if ($myConfigClass->getSSHConnection($intConfigId) == '0') {
|
|
||||||
$arrFiles = array();
|
|
||||||
$intReturn = $myConfigClass->sendSSHCommand('ls ' .$strBaseDir. '*.cfg', $arrFiles1);
|
|
||||||
if (($intReturn == 0) && is_array($arrFiles1)) {
|
|
||||||
$arrFiles = array_merge($arrFiles, $arrFiles1);
|
|
||||||
}
|
|
||||||
$intReturn = $myConfigClass->sendSSHCommand('ls ' .$strHostDir. '*.cfg', $arrFiles2);
|
|
||||||
if (($intReturn == 0) && is_array($arrFiles2)) {
|
|
||||||
$arrFiles = array_merge($arrFiles, $arrFiles2);
|
|
||||||
}
|
|
||||||
$intReturn = $myConfigClass->sendSSHCommand('ls ' .$strServiceDir. '*.cfg', $arrFiles3);
|
|
||||||
if (($intReturn == 0) && is_array($arrFiles3)) {
|
|
||||||
$arrFiles = array_merge($arrFiles, $arrFiles3);
|
|
||||||
}
|
|
||||||
$intReturn = $myConfigClass->sendSSHCommand('ls ' .$strHostBackupDir. '*.cfg*', $arrFiles4);
|
|
||||||
if (($intReturn == 0) && is_array($arrFiles4)) {
|
|
||||||
$arrFiles = array_merge($arrFiles, $arrFiles4);
|
|
||||||
}
|
|
||||||
$intReturn = $myConfigClass->sendSSHCommand('ls ' .$strServiceBackupDir. '*.cfg*', $arrFiles5);
|
|
||||||
if (($intReturn == 0) && is_array($arrFiles5)) {
|
|
||||||
$arrFiles = array_merge($arrFiles, $arrFiles5);
|
|
||||||
}
|
|
||||||
if ($strImportDir != '') {
|
|
||||||
$intReturn = $myConfigClass->sendSSHCommand('ls ' .$strImportDir. '*.cfg', $arrFiles6);
|
|
||||||
if (($intReturn == 0) && is_array($arrFiles6)) {
|
|
||||||
$arrFiles = array_merge($arrFiles, $arrFiles6);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (is_array($arrFiles) && (count($arrFiles) != 0)) {
|
|
||||||
foreach ($arrFiles as $elem) {
|
|
||||||
if (!substr_count($elem, 'cfg')) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (substr_count($elem, 'resource.cfg')) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (substr_count($elem, 'nagios.cfg')) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (substr_count($elem, 'cgi.cfg')) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (substr_count($elem, 'nrpe.cfg')) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (substr_count($elem, 'nsca.cfg')) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (($chkTfSearch == '') || (substr_count($elem, $chkTfSearch) != 0)) {
|
|
||||||
$conttp->setVariable('DAT_IMPORTFILE_2', str_replace('//', '/', $elem));
|
|
||||||
$conttp->parse('filelist2');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Check access rights for adding new objects
|
|
||||||
if ($myVisClass->checkAccountGroup($prePageKey, 'write') != 0) {
|
|
||||||
$conttp->setVariable('ADD_CONTROL', 'disabled="disabled"');
|
|
||||||
}
|
|
||||||
if ($strErrorMessage != '') {
|
|
||||||
$conttp->setVariable('ERRORMESSAGE', $strErrorMessage);
|
|
||||||
}
|
|
||||||
$conttp->setVariable('INFOMESSAGE', $strInfoMessage);
|
|
||||||
$conttp->parse('main');
|
|
||||||
$conttp->show('main');
|
|
||||||
//
|
|
||||||
// Process footer
|
|
||||||
// ==============
|
|
||||||
$maintp->setVariable('VERSION_INFO', "<a href='https://sourceforge.net/projects/nagiosql/' "
|
|
||||||
. "target='_blank'>NagiosQL</a> $setFileVersion");
|
|
||||||
$maintp->parse('footer');
|
|
||||||
$maintp->show('footer');
|
|
@ -1,10 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
|
||||||
"http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>NagiosQL</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
109
admin/info.php
109
admin/info.php
@ -1,109 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Admin information dialog
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Include preprocessing file
|
|
||||||
// ==========================
|
|
||||||
$preNoMain = 1;
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
//
|
|
||||||
// Process get parameters
|
|
||||||
// ======================
|
|
||||||
$chkKey1 = filter_input(INPUT_GET, 'key1', FILTER_SANITIZE_STRING);
|
|
||||||
$chkKey2 = filter_input(INPUT_GET, 'key2', FILTER_SANITIZE_STRING);
|
|
||||||
$chkVersion = filter_input(INPUT_GET, 'version', FILTER_SANITIZE_STRING);
|
|
||||||
//
|
|
||||||
// Get information data
|
|
||||||
// ===================================================
|
|
||||||
if ($chkKey1 == 'admin' and isset($_SESSION['updInfo'])) {
|
|
||||||
// Exception for version check at admin.php
|
|
||||||
$strContentDB = $_SESSION['updInfo'];
|
|
||||||
} elseif ($chkKey1 == 'settings') {
|
|
||||||
// Exception for settings page to have gettext translated text
|
|
||||||
$arrTrans = array(
|
|
||||||
'txtRootPath' => translate('This is relative path of your NagiosQL Installation'),
|
|
||||||
'txtBasePath' => translate('This is the absolut path to your NagiosQL Installation'),
|
|
||||||
'selProtocol' => translate('If you need a secure connection, select HTTPS instead of HTTP'),
|
|
||||||
'txtTempdir' => translate('Please choose a temporary directory with write permissions. The default is the ' .
|
|
||||||
'temp directory provided by your OS'),
|
|
||||||
'selLanguage' => translate('Please choose your application language for new users and login portal'),
|
|
||||||
'txtEncoding' => translate('Encoding should be set to nothing else than utf-8. Any changes at your own risk'),
|
|
||||||
'txtDBserver' => translate('IP-Address or hostname of the database server<br>e.g. localhost'),
|
|
||||||
'txtDBport' => translate('MySQL Server Port, default is 3306'),
|
|
||||||
'txtDBname' => translate('Name of the NagiosQL database<br>e.g. db_nagiosql_v3'),
|
|
||||||
'txtDBuser' => translate('User with sufficient permission for the NagiosQL database<br>At least this user ' .
|
|
||||||
'should have SELECT, INSERT, UPDATE, DELETE permissions'),
|
|
||||||
'txtDBpass' => translate('Password for the above mentioned user'),
|
|
||||||
'txtLogoff' => translate('After the defined amount of seconds the session will terminate for security ' .
|
|
||||||
'reasons'),
|
|
||||||
'selWSAuth' => translate('Decide between authentication based on your Webserver<br>e.g. Apache ' .
|
|
||||||
'configuration (config file or htaccess) or NagiosQL'),
|
|
||||||
'txtLines' => translate('Number of entries per side that should be visible (e.g. services or hosts)'),
|
|
||||||
'selSeldisable' => translate('Method of selection of multiple entries by using the new dialog or by holding ' .
|
|
||||||
'CTRL + left mouse button, as in NagiosQL 2'),
|
|
||||||
'templatecheck' => translate('Enable or disable the warning if a required field contains no data in objects ' .
|
|
||||||
'with templates'),
|
|
||||||
'updatecheck' => translate('Enable or disable the automatic online version check.'),
|
|
||||||
'chkUpdProxy' => translate('If you require a Proxyserver to connect to the Internet (Port 80), please ' .
|
|
||||||
'define one.'),
|
|
||||||
'txtProxyServer' => translate('Address of your Proxyserver e.g. proxy.yourdomain.com:3128'),
|
|
||||||
'txtProxyUser' => translate('Username to connect through your proxy (optional)'),
|
|
||||||
'txtProxyPasswd' => translate('Password to connect through your proxy (optional)'),
|
|
||||||
);
|
|
||||||
$strContentDB = $arrTrans[$chkKey2];
|
|
||||||
} else {
|
|
||||||
// Get information from tbl_info
|
|
||||||
$strSQL = 'SELECT `infotext` FROM `tbl_info` ' .
|
|
||||||
"WHERE `key1` = '$chkKey1' AND `key2` = '$chkKey2' AND `version` = '$chkVersion' ".
|
|
||||||
"AND `language` = 'private'";
|
|
||||||
$strContentDB = $myDBClass->getFieldData($strSQL);
|
|
||||||
if ($strContentDB == '') {
|
|
||||||
$strSQL = 'SELECT `infotext` FROM `tbl_info` ' .
|
|
||||||
"WHERE `key1` = '$chkKey1' AND `key2` = '$chkKey2' AND `version` = '$chkVersion' ".
|
|
||||||
"AND `language` = 'default'";
|
|
||||||
$strContentDB = $myDBClass->getFieldData($strSQL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
||||||
<title><?php echo translate('Information PopUp');?></title>
|
|
||||||
<style type="text/css">
|
|
||||||
.infobody {
|
|
||||||
font-family:"Courier New", Courier, monospace;
|
|
||||||
font-size:12px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body class="infobody">
|
|
||||||
<?php
|
|
||||||
if ($strContentDB != '') {
|
|
||||||
echo $strContentDB;
|
|
||||||
} else {
|
|
||||||
echo translate('No information available');
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,140 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Admin logbook
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 37;
|
|
||||||
$preContent = 'admin/logbook.htm.tpl';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Delete log entries
|
|
||||||
// ==================
|
|
||||||
$strWhere = '';
|
|
||||||
if ($chkTfValue1 != '') {
|
|
||||||
$strWhere .= "AND `time` > '$chkTfValue1 00:00:00'";
|
|
||||||
}
|
|
||||||
if ($chkTfValue2 != '') {
|
|
||||||
$strWhere .= "AND `time` < '$chkTfValue2 23:59:59'";
|
|
||||||
}
|
|
||||||
if ($strWhere != '') {
|
|
||||||
$strSQL = 'DELETE FROM `tbl_logbook` WHERE 1=1 ';
|
|
||||||
$strSQL .= $strWhere;
|
|
||||||
$booReturn = $myDBClass->insertData($strSQL);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Dataset successfully deleted. Affected rows:'). ' ' .
|
|
||||||
$myDBClass->intAffectedRows, $strInfoMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Search data
|
|
||||||
// ===========
|
|
||||||
if ($chkTfSearch != '') {
|
|
||||||
$strWhere = "WHERE `user` LIKE '%$chkTfSearch%' OR `ipadress` LIKE '%$chkTfSearch%' "
|
|
||||||
. "OR `domain` LIKE '%$chkTfSearch%' OR `entry` LIKE '%$chkTfSearch%'";
|
|
||||||
} else {
|
|
||||||
$strWhere = '';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Get data
|
|
||||||
// ========
|
|
||||||
$intNumRows = $myDBClass->getFieldData("SELECT count(*) FROM `tbl_logbook` $strWhere");
|
|
||||||
if ($intNumRows <= $chkFromLine) {
|
|
||||||
$chkFromLine = 0;
|
|
||||||
}
|
|
||||||
$strSQL = "SELECT DATE_FORMAT(time,'%Y-%m-%d %H:%i:%s') AS `time`, `user`, `ipadress`, `domain`, `entry` "
|
|
||||||
. "FROM `tbl_logbook` $strWhere ORDER BY `time` DESC LIMIT $chkFromLine,".$SETS['common']['pagelines'];
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrDataLines, $intDataCount);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Start content
|
|
||||||
// =============
|
|
||||||
$conttp->setVariable('TITLE', translate('View logbook'));
|
|
||||||
foreach ($arrDescription as $elem) {
|
|
||||||
$conttp->setVariable($elem['name'], $elem['string']);
|
|
||||||
}
|
|
||||||
$conttp->setVariable('LANG_ENTRIES_BEFORE', translate('Delete logentries between:'));
|
|
||||||
$conttp->setVariable('LOCALE', $SETS['data']['locale']);
|
|
||||||
$conttp->setVariable('LANG_SELECT_DATE', translate('Please supply a start or a stop time at least'));
|
|
||||||
$conttp->setVariable('LANG_DELETELOG', translate('Do you really want to delete all log entries between the '
|
|
||||||
. 'selected dates?'));
|
|
||||||
$conttp->setVariable('DAT_SEARCH', $chkTfSearch);
|
|
||||||
// Legende einblenden
|
|
||||||
if ($chkFromLine > 1) {
|
|
||||||
$intPrevNumber = $chkFromLine - 20;
|
|
||||||
$conttp->setVariable('LANG_PREVIOUS', '<a href="' .filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING).
|
|
||||||
'?from_line=' .$intPrevNumber. '"><< ' .translate('previous 20 entries'). '</a>');
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('LANG_PREVIOUS', '');
|
|
||||||
}
|
|
||||||
if ($chkFromLine < $intNumRows-20) {
|
|
||||||
$intNextNumber = $chkFromLine + 20;
|
|
||||||
$conttp->setVariable('LANG_NEXT', '<a href="' .filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING).
|
|
||||||
'?from_line=' .$intNextNumber. '">' .translate('next 20 entries'). ' >></a>');
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('LANG_NEXT', '');
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Output log data
|
|
||||||
// ===============
|
|
||||||
if ($intDataCount != 0) {
|
|
||||||
for ($i = 0; $i < $intDataCount; $i++) {
|
|
||||||
// Set default values
|
|
||||||
if ($arrDataLines[$i]['ipadress'] == '') {
|
|
||||||
$arrDataLines[$i]['ipadress'] = ' ';
|
|
||||||
}
|
|
||||||
// Insert data values
|
|
||||||
$conttp->setVariable('DAT_TIME', $arrDataLines[$i]['time']);
|
|
||||||
$conttp->setVariable('DAT_ACCOUNT', $arrDataLines[$i]['user']);
|
|
||||||
$conttp->setVariable('DAT_ACTION', $arrDataLines[$i]['entry']);
|
|
||||||
$conttp->setVariable('DAT_IPADRESS', $arrDataLines[$i]['ipadress']);
|
|
||||||
$conttp->setVariable('DAT_DOMAIN', $arrDataLines[$i]['domain']);
|
|
||||||
$conttp->parse('logdatacell');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$conttp->setVariable('ERRORMESSAGE', '<br>' .$strErrorMessage);
|
|
||||||
$conttp->setVariable('INFOMESSAGE', '<br>' .$strInfoMessage);
|
|
||||||
// Check access rights for adding new objects
|
|
||||||
if ($myVisClass->checkAccountGroup($prePageKey, 'write') != 0) {
|
|
||||||
$conttp->setVariable('ADD_CONTROL', 'disabled="disabled"');
|
|
||||||
}
|
|
||||||
$conttp->parse('logbooksite');
|
|
||||||
$conttp->show('logbooksite');
|
|
||||||
//
|
|
||||||
// Process footer
|
|
||||||
// ==============
|
|
||||||
$maintp->setVariable('VERSION_INFO', "<a href='https://sourceforge.net/projects/nagiosql/' "
|
|
||||||
. "target='_blank'>NagiosQL</a> $setFileVersion");
|
|
||||||
$maintp->parse('footer');
|
|
||||||
$maintp->show('footer');
|
|
@ -1,108 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Menu access administration
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 34;
|
|
||||||
$preContent = 'admin/menuaccess.htm.tpl';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
$preNoAccessGrp = 1;
|
|
||||||
$intFieldId = 0;
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Process data
|
|
||||||
// ============
|
|
||||||
if (filter_input(INPUT_POST, 'subSave') && ($chkSelValue1 != 0)) {
|
|
||||||
$strSQL = "UPDATE `tbl_menu` SET `mnuGrpId`='$chkSelValue2' WHERE `mnuId`=$chkSelValue1";
|
|
||||||
$booReturn = $myDBClass->insertData($strSQL);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while inserting the data into the database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Data were successfully inserted to the data base!'), $strInfoMessage);
|
|
||||||
$myDataClass->writeLog(translate('Access group set for menu item:'). ' ' .
|
|
||||||
$myDBClass->getFieldData("SELECT `mnuName` FROM `tbl_menu` WHERE `mnuId`=$chkSelValue1"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Include content
|
|
||||||
// ===============
|
|
||||||
$conttp->setVariable('TITLE', translate('Define Menu Access Rights'));
|
|
||||||
foreach ($arrDescription as $elem) {
|
|
||||||
$conttp->setVariable($elem['name'], $elem['string']);
|
|
||||||
}
|
|
||||||
$conttp->setVariable('LANG_ACCESSDESCRIPTION', translate('In order for a user to get access, he needs to be member '
|
|
||||||
. 'of the group selected here.'));
|
|
||||||
//
|
|
||||||
// Auswahlfeld einlesen
|
|
||||||
// ====================
|
|
||||||
$strSQL = 'SELECT A.`mnuId` , B.`mnuName` AS `mainitem`, A.`mnuName` AS `subitem`, A.`mnuGrpId` '
|
|
||||||
. 'FROM `tbl_menu` AS A LEFT JOIN `tbl_menu` AS B ON A.`mnuTopId` = B.`mnuId` '
|
|
||||||
. 'ORDER BY A.`mnuTopId`, A.`mnuOrderId`';
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrDataLines, $intDataCount);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('SUBMENU_VALUE', '0');
|
|
||||||
$conttp->setVariable('SUBMENU_NAME', ' ');
|
|
||||||
$conttp->parse('submenu');
|
|
||||||
foreach ($arrDataLines as $elem) {
|
|
||||||
$conttp->setVariable('SUBMENU_VALUE', $elem['mnuId']);
|
|
||||||
if ($elem['mainitem'] != '') {
|
|
||||||
$conttp->setVariable('SUBMENU_NAME', translate($elem['mainitem']). ' - ' .translate($elem['subitem']));
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('SUBMENU_NAME', translate($elem['subitem']));
|
|
||||||
}
|
|
||||||
if ($chkSelValue1 == $elem['mnuId']) {
|
|
||||||
$conttp->setVariable('SUBMENU_SELECTED', 'selected');
|
|
||||||
$intFieldId = $elem['mnuGrpId'];
|
|
||||||
}
|
|
||||||
// Bypass main site
|
|
||||||
if ($elem['mnuId'] != 1) {
|
|
||||||
$conttp->parse('submenu');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Process access group selection field
|
|
||||||
$intReturn = $myVisClass->parseSelectSimple('tbl_group', 'groupname', 'acc_group', 0, $intFieldId);
|
|
||||||
}
|
|
||||||
$conttp->setVariable('ERRORMESSAGE', $strErrorMessage);
|
|
||||||
$conttp->setVariable('INFOMESSAGE', $strInfoMessage);
|
|
||||||
// Check access rights for adding new objects
|
|
||||||
if ($intGlobalWriteAccess == 1) {
|
|
||||||
$conttp->setVariable('DISABLE_SAVE', 'disabled="disabled"');
|
|
||||||
}
|
|
||||||
$conttp->parse('menuaccesssite');
|
|
||||||
$conttp->show('menuaccesssite');
|
|
||||||
//
|
|
||||||
// Process footer
|
|
||||||
// ==============
|
|
||||||
$maintp->setVariable('VERSION_INFO', "<a href='https://sourceforge.net/projects/nagiosql/' "
|
|
||||||
. "target='_blank'>NagiosQL</a> $setFileVersion");
|
|
||||||
$maintp->parse('footer');
|
|
||||||
$maintp->show('footer');
|
|
@ -1,112 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Admin specials overview
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 2;
|
|
||||||
$preContent = 'admin/mainpages.htm.tpl';
|
|
||||||
//
|
|
||||||
// Include preprocessing file
|
|
||||||
// ==========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Include content
|
|
||||||
// ===============
|
|
||||||
$conttp->setVariable('TITLE', translate('Monitoring'));
|
|
||||||
$conttp->parse('header');
|
|
||||||
$conttp->show('header');
|
|
||||||
$conttp->setVariable('DESC', translate('Define host and service supervisions as well as host and service groups.'));
|
|
||||||
$conttp->setVariable('STATISTICS', translate('Statistical datas'));
|
|
||||||
$conttp->setVariable('TYPE', translate('Group'));
|
|
||||||
$conttp->setVariable('ACTIVE', translate('Active'));
|
|
||||||
$conttp->setVariable('INACTIVE', translate('Inactive'));
|
|
||||||
//
|
|
||||||
// Include statistical data
|
|
||||||
// ========================
|
|
||||||
// Get read access groups
|
|
||||||
$strAccess = $myVisClass->getAccessGroups('read');
|
|
||||||
$intAccessGrp8 = (int)$myDBClass->getFieldData('SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=8');
|
|
||||||
$intAccessGrp9 = (int)$myDBClass->getFieldData('SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=9');
|
|
||||||
$intAccessGrp10 = (int)$myDBClass->getFieldData('SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=10');
|
|
||||||
$intAccessGrp11 = (int)$myDBClass->getFieldData('SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=11');
|
|
||||||
$intAccessGrp12 = (int)$myDBClass->getFieldData('SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=12');
|
|
||||||
$intAccessGrp13 = (int)$myDBClass->getFieldData('SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=13');
|
|
||||||
if ($myVisClass->checkAccountGroup($intAccessGrp8, 'read') == 0) {
|
|
||||||
$conttp->setVariable('NAME', translate('Hosts'));
|
|
||||||
$conttp->setVariable('ACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_host` '
|
|
||||||
. "WHERE `active`='1' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->setVariable('INACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_host` '
|
|
||||||
. "WHERE `active`='0' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->parse('statisticrow');
|
|
||||||
}
|
|
||||||
if ($myVisClass->checkAccountGroup($intAccessGrp9, 'read') == 0) {
|
|
||||||
$conttp->setVariable('NAME', translate('Services'));
|
|
||||||
$conttp->setVariable('ACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_service` '
|
|
||||||
. "WHERE `active`='1' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->setVariable('INACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_service` '
|
|
||||||
. "WHERE `active`='0' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->parse('statisticrow');
|
|
||||||
}
|
|
||||||
if ($myVisClass->checkAccountGroup($intAccessGrp10, 'read') == 0) {
|
|
||||||
$conttp->setVariable('NAME', translate('Host groups'));
|
|
||||||
$conttp->setVariable('ACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_hostgroup` '
|
|
||||||
. "WHERE `active`='1' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->setVariable('INACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_hostgroup` '
|
|
||||||
. "WHERE `active`='0' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->parse('statisticrow');
|
|
||||||
}
|
|
||||||
if ($myVisClass->checkAccountGroup($intAccessGrp11, 'read') == 0) {
|
|
||||||
$conttp->setVariable('NAME', translate('Service groups'));
|
|
||||||
$conttp->setVariable('ACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_servicegroup` '
|
|
||||||
. "WHERE `active`='1' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->setVariable('INACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_servicegroup` '
|
|
||||||
. "WHERE `active`='0' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->parse('statisticrow');
|
|
||||||
}
|
|
||||||
if ($myVisClass->checkAccountGroup($intAccessGrp12, 'read') == 0) {
|
|
||||||
$conttp->setVariable('NAME', translate('Host templates'));
|
|
||||||
$conttp->setVariable('ACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_hosttemplate` '
|
|
||||||
. "WHERE `active`='1' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->setVariable('INACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_hosttemplate` '
|
|
||||||
. "WHERE `active`='0' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->parse('statisticrow');
|
|
||||||
}
|
|
||||||
if ($myVisClass->checkAccountGroup($intAccessGrp13, 'read') == 0) {
|
|
||||||
$conttp->setVariable('NAME', translate('Service templates'));
|
|
||||||
$conttp->setVariable('ACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_servicetemplate` '
|
|
||||||
. "WHERE `active`='1' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->setVariable('INACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_servicetemplate` '
|
|
||||||
. "WHERE `active`='0' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->parse('statisticrow');
|
|
||||||
}
|
|
||||||
$conttp->parse('statistics');
|
|
||||||
$conttp->parse('main');
|
|
||||||
$conttp->show('main');
|
|
||||||
//
|
|
||||||
// Include Footer
|
|
||||||
// ==============
|
|
||||||
$maintp->setVariable('VERSION_INFO', "<a href='https://sourceforge.net/projects/nagiosql/' "
|
|
||||||
. "target='_blank'>NagiosQL</a> $setFileVersion");
|
|
||||||
$maintp->parse('footer');
|
|
||||||
$maintp->show('footer');
|
|
@ -1,64 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Admin timeperiod definitions
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Date : $LastChangedDate: 2018-04-10 10:48:30 +0200 (Tue, 10 Apr 2018) $
|
|
||||||
// Author : $LastChangedBy: martin $
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$preContent = 'admin/mutdialog.htm.tpl';
|
|
||||||
//
|
|
||||||
// Process post parameters
|
|
||||||
// =======================
|
|
||||||
$intExclude = filter_input(INPUT_GET, 'exclude', FILTER_VALIDATE_INT, array('options' => array('default' => 0)));
|
|
||||||
$chkObject = filter_input(INPUT_GET, 'object', FILTER_SANITIZE_STRING);
|
|
||||||
//
|
|
||||||
// Include preprocessing file
|
|
||||||
// ==========================
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
$preNoMain = 1;
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
//
|
|
||||||
// Include content
|
|
||||||
// ===============
|
|
||||||
$conttp->setVariable('BASE_PATH', $_SESSION['SETS']['path']['base_url']);
|
|
||||||
$conttp->setVariable('OPENER_FIELD', $chkObject);
|
|
||||||
$conttp->parse('header');
|
|
||||||
$conttp->show('header');
|
|
||||||
//
|
|
||||||
// Form
|
|
||||||
// ====
|
|
||||||
foreach ($arrDescription as $elem) {
|
|
||||||
$conttp->setVariable($elem['name'], $elem['string']);
|
|
||||||
}
|
|
||||||
$conttp->setVariable('OPENER_FIELD', $chkObject);
|
|
||||||
$conttp->setVariable('ACTION_INSERT', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$conttp->setVariable('IMAGE_PATH', $_SESSION['SETS']['path']['base_url']. 'images/');
|
|
||||||
$conttp->setVariable('AVAILABLE', translate('Available'));
|
|
||||||
$conttp->setVariable('SELECTED', translate('Selected'));
|
|
||||||
if (($intExclude == 1) || ($intVersion < 3)) {
|
|
||||||
$conttp->setVariable('DISABLE_HTML_BEGIN', '<!--');
|
|
||||||
$conttp->setVariable('DISABLE_HTML_END', '-->');
|
|
||||||
}
|
|
||||||
$conttp->parse('datainsert');
|
|
||||||
$conttp->show('datainsert');
|
|
@ -1,165 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Admin timeperiod definitions
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 28;
|
|
||||||
$preContent = 'admin/nagioscfg.htm.tpl';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
$intRemoveTmp = 0;
|
|
||||||
$strConfig = '';
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Get configuration set ID
|
|
||||||
// ========================
|
|
||||||
$myConfigClass->getConfigTargets($arrConfigSet);
|
|
||||||
$intConfigId = $arrConfigSet[0];
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'method', $intMethod);
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'nagiosbasedir', $strBaseDir);
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'conffile', $strConfigfile);
|
|
||||||
$strLocalBackup = $strConfigfile. '_old_' .date('YmdHis');
|
|
||||||
//
|
|
||||||
// Convert Windows to UNIX
|
|
||||||
// =======================
|
|
||||||
$chkTaFileText = str_replace("\r\n", "\n", $chkTaFileText);
|
|
||||||
//
|
|
||||||
// Process data
|
|
||||||
// ============
|
|
||||||
if (($chkTaFileText != '') && ($arrConfigSet[0] != 0)) {
|
|
||||||
if ($intMethod == 1) {
|
|
||||||
if (file_exists($strBaseDir) && (is_writable($strBaseDir) && is_writable($strConfigfile))) {
|
|
||||||
// Backup config file
|
|
||||||
$intReturn = $myConfigClass->moveFile('nagiosbasic', basename($strConfigfile), $intConfigId);
|
|
||||||
if ($intReturn == 1) {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Write configuration
|
|
||||||
$resFile = fopen($strConfigfile, 'wb');
|
|
||||||
fwrite($resFile, $chkTaFileText);
|
|
||||||
fclose($resFile);
|
|
||||||
$myVisClass->processMessage('<span style="color:green">' .translate('Configuration file successfully '
|
|
||||||
. 'written!'). '</span>', $strInfoMessage);
|
|
||||||
$myDataClass->writeLog(translate('Configuration successfully written:'). ' ' .$strConfigfile);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Cannot open/overwrite the configuration file (check the '
|
|
||||||
. 'permissions)!'), $strErrorMessage);
|
|
||||||
$myDataClass->writeLog(translate('Configuration write failed:'). ' ' .$strConfigfile);
|
|
||||||
}
|
|
||||||
} elseif (($intMethod == 2) || ($intMethod == 3)) {
|
|
||||||
// Backup config file
|
|
||||||
$intReturn1 = $myConfigClass->moveFile('nagiosbasic', basename($strConfigfile), $intConfigId);
|
|
||||||
if ($intReturn1 == 1) {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Write file to temporary
|
|
||||||
$strFileName = tempnam($_SESSION['SETS']['path']['tempdir'], 'nagiosql_conf');
|
|
||||||
$resFile = fopen($strFileName, 'wb');
|
|
||||||
fwrite($resFile, $chkTaFileText);
|
|
||||||
fclose($resFile);
|
|
||||||
// Copy configuration to remoty system
|
|
||||||
$intReturn2 = $myConfigClass->remoteFileCopy($strConfigfile, $intConfigId, $strFileName, 1);
|
|
||||||
if ($intReturn2 == 0) {
|
|
||||||
$myVisClass->processMessage('<span style="color:green">' .translate('Configuration file successfully '
|
|
||||||
. 'written!'). '</span>', $strInfoMessage);
|
|
||||||
$myDataClass->writeLog(translate('Configuration successfully written:'). ' ' .$strConfigfile);
|
|
||||||
unlink($strFileName);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Cannot open/overwrite the configuration file (check the permissions '
|
|
||||||
. 'on remote system)!'), $strErrorMessage);
|
|
||||||
$myDataClass->writeLog(translate('Configuration write failed (remote):'). ' ' .$strConfigfile);
|
|
||||||
unlink($strFileName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} elseif ($arrConfigSet[0] == 0) {
|
|
||||||
$myVisClass->processMessage(translate('There are no nagios configuration files in common domain, please select a '.
|
|
||||||
'valid domain to edit this files!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Include content
|
|
||||||
// ===============
|
|
||||||
$conttp->setVariable('TITLE', translate('Nagios main configuration file'));
|
|
||||||
$conttp->setVariable('ACTION_INSERT', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$conttp->setVariable('MAINSITE', $_SESSION['SETS']['path']['base_url']. 'admin.php');
|
|
||||||
foreach ($arrDescription as $elem) {
|
|
||||||
$conttp->setVariable($elem['name'], $elem['string']);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Open configuration
|
|
||||||
// ==================
|
|
||||||
if ($intMethod == 1) {
|
|
||||||
if (file_exists($strConfigfile) && is_readable($strConfigfile)) {
|
|
||||||
$resFile = fopen($strConfigfile, 'rb');
|
|
||||||
if ($resFile) {
|
|
||||||
while (!feof($resFile)) {
|
|
||||||
$strConfig .= fgets($resFile, 1024);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Cannot open the data file (check the permissions)!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
} elseif (($intMethod == 2) || ($intMethod == 3)) {
|
|
||||||
// Write file to temporary
|
|
||||||
$strFileName = tempnam($_SESSION['SETS']['path']['tempdir'], 'nagiosql_conf');
|
|
||||||
// Copy configuration from remoty system
|
|
||||||
$intReturn = $myConfigClass->remoteFileCopy($strConfigfile, $intConfigId, $strFileName, 0);
|
|
||||||
if ($intReturn == 0) {
|
|
||||||
$resFile = fopen($strFileName, 'rb');
|
|
||||||
if (is_resource($resFile)) {
|
|
||||||
while (!feof($resFile)) {
|
|
||||||
$strConfig .= fgets($resFile, 1024);
|
|
||||||
}
|
|
||||||
unlink($strFileName);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Cannot open the temporary file'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
$myDataClass->writeLog(translate('Configuration read failed (remote):'). ' ' .$strErrorMessage);
|
|
||||||
if (file_exists($strFileName)) {
|
|
||||||
unlink($strFileName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$conttp->setVariable('DAT_NAGIOS_CONFIG', $strConfig);
|
|
||||||
if ($strErrorMessage != '') {
|
|
||||||
$conttp->setVariable('ERRORMESSAGE', $strErrorMessage);
|
|
||||||
}
|
|
||||||
$conttp->setVariable('INFOMESSAGE', $strInfoMessage);
|
|
||||||
// Check access rights for adding new objects
|
|
||||||
if ($myVisClass->checkAccountGroup($prePageKey, 'write') != 0) {
|
|
||||||
$conttp->setVariable('ADD_CONTROL', 'disabled="disabled"');
|
|
||||||
}
|
|
||||||
$conttp->parse('naginsert');
|
|
||||||
$conttp->show('naginsert');
|
|
||||||
//
|
|
||||||
// Process footer
|
|
||||||
// ==============
|
|
||||||
$maintp->setVariable('VERSION_INFO', "<a href='https://sourceforge.net/projects/nagiosql/' "
|
|
||||||
. "target='_blank'>NagiosQL</a> $setFileVersion");
|
|
||||||
$maintp->parse('footer');
|
|
||||||
$maintp->show('footer');
|
|
@ -1,119 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Password administration
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 31;
|
|
||||||
$preContent = 'admin/password.htm.tpl';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
$preShowHeader = 0;
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Change password
|
|
||||||
// =======================
|
|
||||||
if (($chkTfValue1 != '') && ($chkTfValue2 != '')) {
|
|
||||||
// Check old password
|
|
||||||
$strSQL = 'SELECT * FROM `tbl_user` '
|
|
||||||
. "WHERE `username`='".$_SESSION['username']."' AND `password`=MD5('$chkTfValue1')";
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrDataLines, $intDataCount);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} elseif ($intDataCount == 1) {
|
|
||||||
// Check equality and password length
|
|
||||||
if (($chkTfValue2 === $chkTfValue3) && (strlen($chkTfValue2) >=5)) {
|
|
||||||
// Update database
|
|
||||||
$strSQLUpdate = "UPDATE `tbl_user` SET `password`=MD5('$chkTfValue2'), `last_login`=NOW() "
|
|
||||||
. "WHERE `username`='".$_SESSION['username']."'";
|
|
||||||
$booReturn = $myDBClass->insertData($strSQLUpdate);
|
|
||||||
if ($booReturn == true) {
|
|
||||||
$myDataClass->writeLog(translate('Password successfully modified'));
|
|
||||||
// Force new login
|
|
||||||
$_SESSION['logged_in'] = 0;
|
|
||||||
$_SESSION['username'] = '';
|
|
||||||
$_SESSION['userid'] = 0;
|
|
||||||
$_SESSION['groupadm'] = 0;
|
|
||||||
$_SESSION['domain'] = 0;
|
|
||||||
header('Location: ' .$SETS['path']['protocol']. '://' .
|
|
||||||
filter_input(INPUT_SERVER, 'HTTP_HOST', FILTER_SANITIZE_STRING).
|
|
||||||
$_SESSION['SETS']['path']['base_url']. 'index.php');
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// New password wrong
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Password too short or password fields do not match!'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// Old password wrong
|
|
||||||
$myVisClass->processMessage(translate('The old password is invalid'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
} elseif (filter_input(INPUT_POST, 'submit')) {
|
|
||||||
// Wrong data
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Database entry failed! Not all necessary data filled in!'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Output header variable
|
|
||||||
// ======================
|
|
||||||
echo $tplHeaderVar;
|
|
||||||
//
|
|
||||||
// Include content
|
|
||||||
// ===============
|
|
||||||
foreach ($arrDescription as $elem) {
|
|
||||||
$conttp->setVariable($elem['name'], $elem['string']);
|
|
||||||
}
|
|
||||||
$conttp->setVariable('LANG_SAVE', translate('Save'));
|
|
||||||
$conttp->setVariable('LANG_ABORT', translate('Abort'));
|
|
||||||
$conttp->setVariable('FILL_ALLFIELDS', translate('Please fill in all fields marked with an *'));
|
|
||||||
$conttp->setVariable('FILL_NEW_PASSWD_NOT_EQUAL', translate('The new passwords don not match!'));
|
|
||||||
$conttp->setVariable('FILL_NEW_PWDSHORT', translate('The new password is too short - use at least 6 characters!'));
|
|
||||||
if ($strErrorMessage != '') {
|
|
||||||
$conttp->setVariable('ERRORMESSAGE', $strErrorMessage);
|
|
||||||
}
|
|
||||||
$conttp->setVariable('ACTION_INSERT', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$conttp->setVariable('IMAGE_PATH', $_SESSION['SETS']['path']['base_url']. 'images/');
|
|
||||||
// Check access rights for adding new objects
|
|
||||||
if ($myVisClass->checkAccountGroup($prePageKey, 'write') != 0) {
|
|
||||||
$conttp->setVariable('ADD_CONTROL', 'disabled="disabled"');
|
|
||||||
}
|
|
||||||
$conttp->parse('passwordsite');
|
|
||||||
$conttp->show('passwordsite');
|
|
||||||
//
|
|
||||||
// Include footer
|
|
||||||
// ==============
|
|
||||||
$maintp->setVariable('VERSION_INFO', "<a href='https://sourceforge.net/projects/nagiosql/' "
|
|
||||||
. "target='_blank'>NagiosQL</a> $setFileVersion");
|
|
||||||
$maintp->parse('footer');
|
|
||||||
$maintp->show('footer');
|
|
@ -1,764 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Service dependencies definition
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 22;
|
|
||||||
$preContent = 'admin/servicedependencies.htm.tpl';
|
|
||||||
$preListTpl = 'admin/datalist.htm.tpl';
|
|
||||||
$preSearchSession = 'servicedependencies';
|
|
||||||
$preTableName = 'tbl_servicedependency';
|
|
||||||
$preKeyField = 'config_name';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Data processing
|
|
||||||
// ===============
|
|
||||||
$strEO = substr($chkChbGr1a.$chkChbGr1b.$chkChbGr1c.$chkChbGr1d.$chkChbGr1e.$chkChbGr1f, 0, -1);
|
|
||||||
$strNO = substr($chkChbGr2a.$chkChbGr2b.$chkChbGr2c.$chkChbGr2d.$chkChbGr2e.$chkChbGr2f, 0, -1);
|
|
||||||
//
|
|
||||||
// Add or modify data
|
|
||||||
// ==================
|
|
||||||
if ((($chkModus == 'insert') || ($chkModus == 'modify')) && ($intGlobalWriteAccess == 0)) {
|
|
||||||
$strSQLx = "`$preTableName` SET `dependent_host_name`=$intMselValue2, `dependent_hostgroup_name`=$intMselValue4, "
|
|
||||||
. "`dependent_service_description`=$intMselValue6, `dependent_servicegroup_name`=$intMselValue8, "
|
|
||||||
. "`host_name`=$intMselValue1, `hostgroup_name`=$intMselValue3, `service_description`=$intMselValue5, "
|
|
||||||
. "`servicegroup_name`=$intMselValue7, `$preKeyField`='$chkTfValue1', `inherits_parent`='$chkChbValue1', "
|
|
||||||
. "`execution_failure_criteria`='$strEO', `notification_failure_criteria`='$strNO', "
|
|
||||||
. "`dependency_period`=$chkSelValue1, $preSQLCommon1";
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$strSQL = 'INSERT INTO ' .$strSQLx;
|
|
||||||
} else {
|
|
||||||
$strSQL = 'UPDATE ' .$strSQLx. ' WHERE `id`=' .$chkDataId;
|
|
||||||
}
|
|
||||||
if ($intWriteAccessId == 0) {
|
|
||||||
if (($chkTfValue1 != '') && (($intMselValue5 != 0) || ($intMselValue7 != 0)) &&
|
|
||||||
(($intMselValue6 != 0) || ($intMselValue8 != 0))) {
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$chkDataId = $intInsertId;
|
|
||||||
}
|
|
||||||
if ($intReturn == 1) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strInfoMessage);
|
|
||||||
$myDataClass->updateStatusTable($preTableName);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$myDataClass->writeLog(translate('New service dependency inserted:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$myDataClass->writeLog(translate('Service dependency modified:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Insert/update relations
|
|
||||||
// =======================
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
if ($intMselValue1 != 0) {
|
|
||||||
$intRet1 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkServicedependencyToHost_H',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue1
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet1) && ($intRet1 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue2 != 0) {
|
|
||||||
$intRet2 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkServicedependencyToHost_DH',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue2
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet2) && ($intRet2 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue3 != 0) {
|
|
||||||
$intRet3 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkServicedependencyToHostgroup_H',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue3
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet3) && ($intRet3 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue4 != 0) {
|
|
||||||
$intRet4 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkServicedependencyToHostgroup_DH',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue4
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet4) && ($intRet4 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue5 != 0) {
|
|
||||||
$intRet5 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkServicedependencyToService_S',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue5
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet5) && ($intRet5 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue6 != 0) {
|
|
||||||
$intRet6 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkServicedependencyToService_DS',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue6
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet6) && ($intRet6 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue7 != 0) {
|
|
||||||
$intRet7 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkServicedependencyToServicegroup_S',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue7
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet7) && ($intRet7 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue8 != 0) {
|
|
||||||
$intRet8 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkServicedependencyToServicegroup_DS',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue8
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet8) && ($intRet8 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
} elseif ($chkModus == 'modify') {
|
|
||||||
if ($intMselValue1 != 0) {
|
|
||||||
$intRet1 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkServicedependencyToHost_H',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue1
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet1 = $myDataClass->dataDeleteRelation('tbl_lnkServicedependencyToHost_H', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet1 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue2 != 0) {
|
|
||||||
$intRet2 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkServicedependencyToHost_DH',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue2
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet2 = $myDataClass->dataDeleteRelation('tbl_lnkServicedependencyToHost_DH', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet2 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue3 != 0) {
|
|
||||||
$intRet3 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkServicedependencyToHostgroup_H',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue3
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet3 = $myDataClass->dataDeleteRelation(
|
|
||||||
'tbl_lnkServicedependencyToHostgroup_H',
|
|
||||||
$chkDataId
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if ($intRet3 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue4 != 0) {
|
|
||||||
$intRet4 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkServicedependencyToHostgroup_DH',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue4
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet4 = $myDataClass->dataDeleteRelation(
|
|
||||||
'tbl_lnkServicedependencyToHostgroup_DH',
|
|
||||||
$chkDataId
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if ($intRet4 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue5 != 0) {
|
|
||||||
$intRet5 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkServicedependencyToService_S',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue5
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet5 = $myDataClass->dataDeleteRelation(
|
|
||||||
'tbl_lnkServicedependencyToService_S',
|
|
||||||
$chkDataId
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if ($intRet5 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue6 != 0) {
|
|
||||||
$intRet6 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkServicedependencyToService_DS',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue6
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet6 = $myDataClass->dataDeleteRelation(
|
|
||||||
'tbl_lnkServicedependencyToService_DS',
|
|
||||||
$chkDataId
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if ($intRet6 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue7 != 0) {
|
|
||||||
$intRet7 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkServicedependencyToServicegroup_S',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue7
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet7 = $myDataClass->dataDeleteRelation(
|
|
||||||
'tbl_lnkServicedependencyToServicegroup_S',
|
|
||||||
$chkDataId
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if ($intRet7 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue8 != 0) {
|
|
||||||
$intRet8 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkServicedependencyToServicegroup_DS',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue8
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet8 = $myDataClass->dataDeleteRelation(
|
|
||||||
'tbl_lnkServicedependencyToServicegroup_DS',
|
|
||||||
$chkDataId
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if ($intRet8 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (($intRet1 + $intRet2 + $intRet3 + $intRet4 + $intRet5 + $intRet6 + $intRet7 + $intRet8) != 0) {
|
|
||||||
$strInfoMessage = '';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Update Import HASH
|
|
||||||
// ==================
|
|
||||||
$booReturn = $myDataClass->updateHash($preTableName, $chkDataId);
|
|
||||||
if ($booReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Database entry failed! Not all necessary data filled in!'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Database entry failed! No write access!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
if (($chkModus != 'add') && ($chkModus != 'refresh')) {
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Get date/time of last database and config file manipulation
|
|
||||||
// ===========================================================
|
|
||||||
$intReturn = $myConfigClass->lastModifiedFile($preTableName, $arrTimeData, $strTimeInfoString);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Singe data form
|
|
||||||
// ===============
|
|
||||||
if (($chkModus == 'add') || ($chkModus == 'refresh')) {
|
|
||||||
$conttp->setVariable('TITLE', translate('Define service dependencies (servicedependencies.cfg)'));
|
|
||||||
if ($chkModus == 'refresh') {
|
|
||||||
$_SESSION['refresh']['sd_host'] = $chkMselValue1;
|
|
||||||
$_SESSION['refresh']['sd_dependent_host'] = $chkMselValue2;
|
|
||||||
$_SESSION['refresh']['sd_hostgroup'] = $chkMselValue3;
|
|
||||||
$_SESSION['refresh']['sd_dependent_hostgroup'] = $chkMselValue4;
|
|
||||||
$_SESSION['refresh']['sd_service'] = $chkMselValue5;
|
|
||||||
$_SESSION['refresh']['sd_dependent_service'] = $chkMselValue6;
|
|
||||||
$_SESSION['refresh']['sd_servicegroup'] = $chkMselValue7;
|
|
||||||
$_SESSION['refresh']['sd_dependent_servicegroup'] = $chkMselValue8;
|
|
||||||
$myVisClass->arrSession = $_SESSION;
|
|
||||||
} else {
|
|
||||||
$_SESSION['refresh']['sd_host'] = $chkMselValue1;
|
|
||||||
$_SESSION['refresh']['sd_dependent_host'] = $chkMselValue2;
|
|
||||||
$_SESSION['refresh']['sd_hostgroup'] = $chkMselValue3;
|
|
||||||
$_SESSION['refresh']['sd_dependent_hostgroup'] = $chkMselValue4;
|
|
||||||
$_SESSION['refresh']['sd_service'] = $chkMselValue5;
|
|
||||||
$_SESSION['refresh']['sd_dependent_service'] = $chkMselValue6;
|
|
||||||
$_SESSION['refresh']['sd_servicegroup'] = $chkMselValue7;
|
|
||||||
$_SESSION['refresh']['sd_dependent_servicegroup'] = $chkMselValue8;
|
|
||||||
if (isset($arrModifyData['dependent_host_name']) && ($arrModifyData['dependent_host_name'] > 0)) {
|
|
||||||
$arrTemp = array();
|
|
||||||
$strSQL = 'SELECT `idSlave`, `exclude` FROM `tbl_lnkServicedependencyToHost_DH` '
|
|
||||||
. 'WHERE `idMaster` = ' .$arrModifyData['id'];
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrData, $intDC);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($booReturn && ($intDC != 0)) {
|
|
||||||
foreach ($arrData as $elem) {
|
|
||||||
if ($elem['exclude'] == 1) {
|
|
||||||
$arrTemp[] = 'e' .$elem['idSlave'];
|
|
||||||
} else {
|
|
||||||
$arrTemp[] = $elem['idSlave'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($arrModifyData['dependent_host_name'] == 2) {
|
|
||||||
$arrTemp[] = '*';
|
|
||||||
}
|
|
||||||
$_SESSION['refresh']['sd_dependent_host'] = $arrTemp;
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['host_name']) && ($arrModifyData['host_name'] > 0)) {
|
|
||||||
$arrTemp = array();
|
|
||||||
$strSQL = 'SELECT `idSlave`, `exclude` FROM `tbl_lnkServicedependencyToHost_H` '
|
|
||||||
. 'WHERE `idMaster` = ' .$arrModifyData['id'];
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrData, $intDC);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intDC != 0) {
|
|
||||||
foreach ($arrData as $elem) {
|
|
||||||
if ($elem['exclude'] == 1) {
|
|
||||||
$arrTemp[] = 'e' .$elem['idSlave'];
|
|
||||||
} else {
|
|
||||||
$arrTemp[] = $elem['idSlave'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($arrModifyData['host_name'] == 2) {
|
|
||||||
$arrTemp[] = '*';
|
|
||||||
}
|
|
||||||
$_SESSION['refresh']['sd_host'] = $arrTemp;
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['dependent_hostgroup_name']) && ($arrModifyData['dependent_hostgroup_name'] > 0)) {
|
|
||||||
$arrTemp = array();
|
|
||||||
$strSQL = 'SELECT `idSlave`, `exclude` FROM `tbl_lnkServicedependencyToHostgroup_DH` '
|
|
||||||
. 'WHERE `idMaster` = ' .$arrModifyData['id'];
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrData, $intDC);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intDC != 0) {
|
|
||||||
foreach ($arrData as $elem) {
|
|
||||||
if ($elem['exclude'] == 1) {
|
|
||||||
$arrTemp[] = 'e' .$elem['idSlave'];
|
|
||||||
} else {
|
|
||||||
$arrTemp[] = $elem['idSlave'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($arrModifyData['dependent_hostgroup_name'] == 2) {
|
|
||||||
$arrTemp[] = '*';
|
|
||||||
}
|
|
||||||
$_SESSION['refresh']['sd_dependent_hostgroup'] = $arrTemp;
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['hostgroup_name']) && ($arrModifyData['hostgroup_name'] > 0)) {
|
|
||||||
$arrTemp = array();
|
|
||||||
$strSQL = 'SELECT `idSlave`, `exclude` FROM `tbl_lnkServicedependencyToHostgroup_H` '
|
|
||||||
. 'WHERE `idMaster` = ' .$arrModifyData['id'];
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrData, $intDC);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intDC != 0) {
|
|
||||||
foreach ($arrData as $elem) {
|
|
||||||
if ($elem['exclude'] == 1) {
|
|
||||||
$arrTemp[] = 'e' .$elem['idSlave'];
|
|
||||||
} else {
|
|
||||||
$arrTemp[] = $elem['idSlave'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($arrModifyData['hostgroup_name'] == 2) {
|
|
||||||
$arrTemp[] = '*';
|
|
||||||
}
|
|
||||||
$_SESSION['refresh']['sd_hostgroup'] = $arrTemp;
|
|
||||||
}
|
|
||||||
$myVisClass->arrSession = $_SESSION;
|
|
||||||
}
|
|
||||||
// Do not show modified time list
|
|
||||||
$intNoTime = 1;
|
|
||||||
// Process host selection field
|
|
||||||
if (isset($arrModifyData['dependent_host_name'])) {
|
|
||||||
$intFieldId = $arrModifyData['dependent_host_name'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
if (($chkModus == 'refresh') && is_array($chkMselValue2) && (count($chkMselValue2) != 0)) {
|
|
||||||
$strRefresh = 'sd_dependent_host';
|
|
||||||
} else {
|
|
||||||
$strRefresh = '';
|
|
||||||
}
|
|
||||||
$intReturn1 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_host',
|
|
||||||
'host_name',
|
|
||||||
'dependent_host',
|
|
||||||
'tbl_lnkServicedependencyToHost_DH',
|
|
||||||
0,
|
|
||||||
$intFieldId,
|
|
||||||
-9,
|
|
||||||
$strRefresh
|
|
||||||
);
|
|
||||||
if ($intReturn1 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['host_name'])) {
|
|
||||||
$intFieldId = $arrModifyData['host_name'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
if (($chkModus == 'refresh') && is_array($chkMselValue1) && (count($chkMselValue1) != 0)) {
|
|
||||||
$strRefresh = 'sd_host';
|
|
||||||
} else {
|
|
||||||
$strRefresh = '';
|
|
||||||
}
|
|
||||||
$intReturn1 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_host',
|
|
||||||
'host_name',
|
|
||||||
'host',
|
|
||||||
'tbl_lnkServicedependencyToHost_H',
|
|
||||||
0,
|
|
||||||
$intFieldId,
|
|
||||||
-9,
|
|
||||||
$strRefresh
|
|
||||||
);
|
|
||||||
if ($intReturn1 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process time period selection field
|
|
||||||
if (isset($arrModifyData['dependency_period'])) {
|
|
||||||
$intFieldId = $arrModifyData['dependency_period'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
if ($chkModus == 'refresh') {
|
|
||||||
$intFieldId = $chkSelValue1;
|
|
||||||
}
|
|
||||||
$intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod', 'timeperiod_name', 'timeperiod', 1, $intFieldId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process host group selection field
|
|
||||||
if (isset($arrModifyData['dependent_hostgroup_name'])) {
|
|
||||||
$intFieldId = $arrModifyData['dependent_hostgroup_name'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
if (($chkModus == 'refresh') && is_array($chkMselValue4) && (count($chkMselValue4) != 0)) {
|
|
||||||
$strRefresh = 'sd_dependent_hostgroup';
|
|
||||||
} else {
|
|
||||||
$strRefresh = '';
|
|
||||||
}
|
|
||||||
$intReturn2 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_hostgroup',
|
|
||||||
'hostgroup_name',
|
|
||||||
'dependent_hostgroup',
|
|
||||||
'tbl_lnkServicedependencyToHostgroup_DH',
|
|
||||||
0,
|
|
||||||
$intFieldId,
|
|
||||||
-9,
|
|
||||||
$strRefresh
|
|
||||||
);
|
|
||||||
if ($intReturn2 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['hostgroup_name'])) {
|
|
||||||
$intFieldId = $arrModifyData['hostgroup_name'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
if (($chkModus == 'refresh') && is_array($chkMselValue3) && (count($chkMselValue3) != 0)) {
|
|
||||||
$strRefresh = 'sd_hostgroup';
|
|
||||||
} else {
|
|
||||||
$strRefresh = '';
|
|
||||||
}
|
|
||||||
$intReturn2 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_hostgroup',
|
|
||||||
'hostgroup_name',
|
|
||||||
'hostgroup',
|
|
||||||
'tbl_lnkServicedependencyToHostgroup_H',
|
|
||||||
0,
|
|
||||||
$intFieldId,
|
|
||||||
-9,
|
|
||||||
$strRefresh
|
|
||||||
);
|
|
||||||
if ($intReturn2 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (($intReturn1 != 0) && ($intReturn2 != 0)) {
|
|
||||||
$myVisClass->processMessage(translate('Attention, no hosts and hostgroups defined!'), $strDBWarning);
|
|
||||||
$intDataWarning = 1;
|
|
||||||
}
|
|
||||||
// Process services selection field
|
|
||||||
if (isset($arrModifyData['dependent_service_description'])) {
|
|
||||||
$intFieldId = $arrModifyData['dependent_service_description'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
if (($chkModus == 'refresh') && is_array($chkMselValue6) && (count($chkMselValue6) != 0)) {
|
|
||||||
$strRefresh = 'sd_dependent_service';
|
|
||||||
} else {
|
|
||||||
$strRefresh = '';
|
|
||||||
}
|
|
||||||
$intReturn = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_service',
|
|
||||||
'service_description',
|
|
||||||
'dependent_service',
|
|
||||||
'tbl_lnkServicedependencyToService_DS',
|
|
||||||
2,
|
|
||||||
$intFieldId,
|
|
||||||
-9,
|
|
||||||
$strRefresh
|
|
||||||
);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['service_description'])) {
|
|
||||||
$intFieldId = $arrModifyData['service_description'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
if (($chkModus == 'refresh') && is_array($chkMselValue5) && (count($chkMselValue5) != 0)) {
|
|
||||||
$strRefresh = 'sd_service';
|
|
||||||
} else {
|
|
||||||
$strRefresh = '';
|
|
||||||
}
|
|
||||||
$intReturn = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_service',
|
|
||||||
'service_description',
|
|
||||||
'service',
|
|
||||||
'tbl_lnkServicedependencyToService_S',
|
|
||||||
2,
|
|
||||||
$intFieldId,
|
|
||||||
-9,
|
|
||||||
$strRefresh
|
|
||||||
);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process servicegroup selection field
|
|
||||||
if (isset($arrModifyData['dependent_servicegroup_name'])) {
|
|
||||||
$intFieldId = $arrModifyData['dependent_servicegroup_name'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
if (($chkModus == 'refresh') && is_array($chkMselValue8) && (count($chkMselValue8) != 0)) {
|
|
||||||
$strRefresh = 'sd_dependent_servicegroup';
|
|
||||||
} else {
|
|
||||||
$strRefresh = '';
|
|
||||||
}
|
|
||||||
$intReturn = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_servicegroup',
|
|
||||||
'servicegroup_name',
|
|
||||||
'dependent_servicegroup',
|
|
||||||
'tbl_lnkServicedependencyToServicegroup_DS',
|
|
||||||
0,
|
|
||||||
$intFieldId,
|
|
||||||
-9,
|
|
||||||
$strRefresh
|
|
||||||
);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['servicegroup_name'])) {
|
|
||||||
$intFieldId = $arrModifyData['servicegroup_name'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
if (($chkModus == 'refresh') && is_array($chkMselValue7) && (count($chkMselValue7) != 0)) {
|
|
||||||
$strRefresh = 'sd_servicegroup';
|
|
||||||
} else {
|
|
||||||
$strRefresh = '';
|
|
||||||
}
|
|
||||||
$intReturn = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_servicegroup',
|
|
||||||
'servicegroup_name',
|
|
||||||
'servicegroup',
|
|
||||||
'tbl_lnkServicedependencyToServicegroup_S',
|
|
||||||
0,
|
|
||||||
$intFieldId,
|
|
||||||
-9,
|
|
||||||
$strRefresh
|
|
||||||
);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process access group selection field
|
|
||||||
if (isset($arrModifyData['access_group'])) {
|
|
||||||
$intFieldId = $arrModifyData['access_group'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
if ($chkModus == 'refresh') {
|
|
||||||
$intFieldId = $chkSelAccGr;
|
|
||||||
}
|
|
||||||
$intReturn = $myVisClass->parseSelectSimple('tbl_group', 'groupname', 'acc_group', 0, $intFieldId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Initial add/modify form definitions
|
|
||||||
$myContentClass->addFormInit($conttp);
|
|
||||||
if ($intDataWarning == 1) {
|
|
||||||
$conttp->setVariable('WARNING', $strDBWarning. '<br>' .translate('Saving not possible!'));
|
|
||||||
}
|
|
||||||
if ($intVersion < 3) {
|
|
||||||
$conttp->setVariable('VERSION_20_VALUE_MUST', 'mselValue1,');
|
|
||||||
}
|
|
||||||
if ($chkModus == 'refresh') {
|
|
||||||
if ($chkTfValue1 != '') {
|
|
||||||
$conttp->setVariable('DAT_CONFIG_NAME', $chkTfValue1);
|
|
||||||
}
|
|
||||||
foreach (explode(',', $strEO) as $elem) {
|
|
||||||
$conttp->setVariable('DAT_EO' .strtoupper($elem). '_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
foreach (explode(',', $strNO) as $elem) {
|
|
||||||
$conttp->setVariable('DAT_NO' .strtoupper($elem). '_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
if ($chkActive != 1) {
|
|
||||||
$conttp->setVariable('ACT_CHECKED', '');
|
|
||||||
}
|
|
||||||
if ($chkRegister != 1) {
|
|
||||||
$conttp->setVariable('REG_CHECKED', '');
|
|
||||||
}
|
|
||||||
if ($chkChbValue1 == 1) {
|
|
||||||
$conttp->setVariable('ACT_INHERIT', 'checked');
|
|
||||||
}
|
|
||||||
if ($chkDataId != 0) {
|
|
||||||
$conttp->setVariable('DAT_ID', $chkDataId);
|
|
||||||
$conttp->setVariable('MODUS', 'modify');
|
|
||||||
}
|
|
||||||
// Insert data from database in "modify" mode
|
|
||||||
} elseif (isset($arrModifyData) && ($chkSelModify == 'modify')) {
|
|
||||||
// Check relation information to find out locked configuration datasets
|
|
||||||
$intLocked = $myDataClass->infoRelation($preTableName, $arrModifyData['id'], $preKeyField);
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strRelMessage);
|
|
||||||
$strInfo = '<br><span class="redmessage">' .translate('Entry cannot be activated because it is used by '
|
|
||||||
. 'another configuration'). ':</span>';
|
|
||||||
$strInfo .= '<br><span class="greenmessage">' .$strRelMessage. '</span>';
|
|
||||||
// Process data
|
|
||||||
$myContentClass->addInsertData($conttp, $arrModifyData, $intLocked, $strInfo);
|
|
||||||
// Setting special data
|
|
||||||
if ($arrModifyData['inherits_parent'] == 1) {
|
|
||||||
$conttp->setVariable('ACT_INHERIT', 'checked');
|
|
||||||
}
|
|
||||||
foreach (explode(',', $arrModifyData['execution_failure_criteria']) as $elem) {
|
|
||||||
$conttp->setVariable('DAT_EO' .strtoupper($elem). '_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
foreach (explode(',', $arrModifyData['notification_failure_criteria']) as $elem) {
|
|
||||||
$conttp->setVariable('DAT_NO' .strtoupper($elem). '_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$conttp->parse('datainsert');
|
|
||||||
$conttp->show('datainsert');
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// List view
|
|
||||||
// ==========
|
|
||||||
if ($chkModus == 'display') {
|
|
||||||
// Initial list view definitions
|
|
||||||
$myContentClass->listViewInit($mastertp);
|
|
||||||
$mastertp->setVariable('TITLE', translate('Define service dependencies (servicedependencies.cfg)'));
|
|
||||||
$mastertp->setVariable('FIELD_1', translate('Config name'));
|
|
||||||
$mastertp->setVariable('FIELD_2', translate('Dependent services'));
|
|
||||||
// Process search string
|
|
||||||
if ($_SESSION['search'][$preSearchSession] != '') {
|
|
||||||
$strSearchTxt = $_SESSION['search'][$preSearchSession];
|
|
||||||
$strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%')";
|
|
||||||
}
|
|
||||||
// Row sorting
|
|
||||||
$strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir";
|
|
||||||
if ($hidSortBy == 2) {
|
|
||||||
$strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir";
|
|
||||||
}
|
|
||||||
$mastertp->setVariable('DISABLE_SORT_2', 'disable');
|
|
||||||
// Count datasets
|
|
||||||
$strSQL = "SELECT count(*) AS `number` FROM `$preTableName` "
|
|
||||||
. "WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)";
|
|
||||||
$booReturn = $myDBClass->hasSingleDataset($strSQL, $arrDataLinesCount);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$intLineCount = (int)$arrDataLinesCount['number'];
|
|
||||||
if ($intLineCount < $chkLimit) {
|
|
||||||
$chkLimit = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Get datasetsk
|
|
||||||
$strSQL = "SELECT `id`, `$preKeyField`, `dependent_service_description`, `register`, `active`, `config_id`, "
|
|
||||||
. "`access_group` FROM `$preTableName`WHERE $strDomainWhere $strSearchWhere AND `access_group` "
|
|
||||||
. "IN ($strAccess) $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrDataLines, $intDataCount);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process data
|
|
||||||
$myContentClass->listData(
|
|
||||||
$mastertp,
|
|
||||||
$arrDataLines,
|
|
||||||
$intDataCount,
|
|
||||||
$intLineCount,
|
|
||||||
$preKeyField,
|
|
||||||
'process_field',
|
|
||||||
40
|
|
||||||
);
|
|
||||||
}
|
|
||||||
// Show messages
|
|
||||||
$myContentClass->showMessages(
|
|
||||||
$mastertp,
|
|
||||||
$strErrorMessage,
|
|
||||||
$strInfoMessage,
|
|
||||||
$strConsistMessage,
|
|
||||||
$arrTimeData,
|
|
||||||
$strTimeInfoString,
|
|
||||||
$intNoTime
|
|
||||||
);
|
|
||||||
//
|
|
||||||
// Process footer
|
|
||||||
// ==============
|
|
||||||
$myContentClass->showFooter($maintp, $setFileVersion);
|
|
@ -1,615 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Service escalation definition
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 23;
|
|
||||||
$preContent = 'admin/serviceescalations.htm.tpl';
|
|
||||||
$preListTpl = 'admin/datalist.htm.tpl';
|
|
||||||
$preSearchSession = 'serviceescalation';
|
|
||||||
$preTableName = 'tbl_serviceescalation';
|
|
||||||
$preKeyField = 'config_name';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Data processing
|
|
||||||
// ===============
|
|
||||||
$strEO = substr($chkChbGr1a.$chkChbGr1b.$chkChbGr1c.$chkChbGr1d, 0, -1);
|
|
||||||
//
|
|
||||||
// Add or modify data
|
|
||||||
// ==================
|
|
||||||
if ((($chkModus == 'insert') || ($chkModus == 'modify')) && ($intGlobalWriteAccess == 0)) {
|
|
||||||
$strSQLx = "`$preTableName` SET `$preKeyField`='$chkTfValue1', `host_name`=$intMselValue1, "
|
|
||||||
. "`service_description`=$intMselValue3, `hostgroup_name`=$intMselValue2, `contacts`=$intMselValue4, "
|
|
||||||
. "`contact_groups`=$intMselValue5, `servicegroup_name`=$intMselValue6, `first_notification`=$chkTfNullVal1, "
|
|
||||||
. "`last_notification`=$chkTfNullVal2, `notification_interval`=$chkTfNullVal3, "
|
|
||||||
. "`escalation_period`='$chkSelValue1', `escalation_options`='$strEO', $preSQLCommon1";
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$strSQL = 'INSERT INTO ' .$strSQLx;
|
|
||||||
} else {
|
|
||||||
$strSQL = 'UPDATE ' .$strSQLx. ' WHERE `id`=' .$chkDataId;
|
|
||||||
}
|
|
||||||
if ($intWriteAccessId == 0) {
|
|
||||||
if ((($intMselValue1 != 0) || ($intMselValue2 != 0) || ($intMselValue6 != 0)) && (($intMselValue3 != 0) ||
|
|
||||||
($intMselValue6 != 0)) && (($intMselValue5 != 0) || ($intMselValue4 != 0)) && ($chkTfNullVal1 != 'NULL') &&
|
|
||||||
($chkTfNullVal2 != 'NULL') && ($chkTfNullVal3 != 'NULL')) {
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$chkDataId = $intInsertId;
|
|
||||||
}
|
|
||||||
if ($intReturn == 1) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strInfoMessage);
|
|
||||||
$myDataClass->updateStatusTable($preTableName);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$myDataClass->writeLog(translate('New service escalation inserted:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$myDataClass->writeLog(translate('Service escalation modified:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Insert/update relations
|
|
||||||
// =======================
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
if ($intMselValue1 != 0) {
|
|
||||||
$intRet1 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkServiceescalationToHost',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue1
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet1) && ($intRet1 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue2 != 0) {
|
|
||||||
$intRet2 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkServiceescalationToHostgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue2
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet2) && ($intRet2 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue3 != 0) {
|
|
||||||
$intRet3 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkServiceescalationToService',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue3
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet3) && ($intRet3 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue4 != 0) {
|
|
||||||
$intRet4 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkServiceescalationToContact',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue4
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet4) && ($intRet4 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue5 != 0) {
|
|
||||||
$intRet5 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkServiceescalationToContactgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue5
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet5) && ($intRet5 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue6 != 0) {
|
|
||||||
$intRet6 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkServiceescalationToServicegroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue6
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet6) && ($intRet6 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
} elseif ($chkModus == 'modify') {
|
|
||||||
if ($intMselValue1 != 0) {
|
|
||||||
$intRet1 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkServiceescalationToHost',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue1
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet1 = $myDataClass->dataDeleteRelation('tbl_lnkServiceescalationToHost', $chkDataId);
|
|
||||||
}
|
|
||||||
if (isset($intRet1) && ($intRet1 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue2 != 0) {
|
|
||||||
$intRet2 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkServiceescalationToHostgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue2
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet2 = $myDataClass->dataDeleteRelation('tbl_lnkServiceescalationToHostgroup', $chkDataId);
|
|
||||||
}
|
|
||||||
if (isset($intRet2) && ($intRet2 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue3 != 0) {
|
|
||||||
$intRet3 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkServiceescalationToService',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue3
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet3 = $myDataClass->dataDeleteRelation('tbl_lnkServiceescalationToService', $chkDataId);
|
|
||||||
}
|
|
||||||
if (isset($intRet3) && ($intRet3 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue4 != 0) {
|
|
||||||
$intRet4 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkServiceescalationToContact',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue4
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet4 = $myDataClass->dataDeleteRelation('tbl_lnkServiceescalationToContact', $chkDataId);
|
|
||||||
}
|
|
||||||
if (isset($intRet4) && ($intRet4 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue5 != 0) {
|
|
||||||
$intRet5 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkServiceescalationToContactgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue5
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet5 = $myDataClass->dataDeleteRelation(
|
|
||||||
'tbl_lnkServiceescalationToContactgroup',
|
|
||||||
$chkDataId
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet5) && ($intRet5 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue6 != 0) {
|
|
||||||
$intRet6 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkServiceescalationToServicegroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue6
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet6 = $myDataClass->dataDeleteRelation(
|
|
||||||
'tbl_lnkServiceescalationToServicegroup',
|
|
||||||
$chkDataId
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet6) && ($intRet6 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (($intRet1 + $intRet2 + $intRet3 + $intRet4 + $intRet5 + $intRet6) != 0) {
|
|
||||||
$strInfoMessage = '';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Update Import HASH
|
|
||||||
// ==================
|
|
||||||
$booReturn = $myDataClass->updateHash($preTableName, $chkDataId);
|
|
||||||
if ($booReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Database entry failed! Not all necessary data filled in!'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Database entry failed! No write access!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
if (($chkModus != 'add') && ($chkModus != 'refresh')) {
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Get date/time of last database and config file manipulation
|
|
||||||
// ===========================================================
|
|
||||||
$intReturn = $myConfigClass->lastModifiedFile($preTableName, $arrTimeData, $strTimeInfoString);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Singe data form
|
|
||||||
// ===============
|
|
||||||
if (($chkModus == 'add') || ($chkModus == 'refresh')) {
|
|
||||||
$conttp->setVariable('TITLE', translate('Define service escalation (serviceescalations.cfg)'));
|
|
||||||
// Do not show modified time list
|
|
||||||
$intNoTime = 1;
|
|
||||||
// Refresh mode
|
|
||||||
if ($chkModus == 'refresh') {
|
|
||||||
$_SESSION['refresh']['se_host'] = $chkMselValue1;
|
|
||||||
$_SESSION['refresh']['se_hostgroup'] = $chkMselValue2;
|
|
||||||
$_SESSION['refresh']['se_service'] = $chkMselValue3;
|
|
||||||
$_SESSION['refresh']['se_contact'] = $chkMselValue4;
|
|
||||||
$_SESSION['refresh']['se_contactgroup'] = $chkMselValue5;
|
|
||||||
$_SESSION['refresh']['se_servicegroup'] = $chkMselValue6;
|
|
||||||
$myVisClass->arrSession = $_SESSION;
|
|
||||||
} else {
|
|
||||||
$_SESSION['refresh']['se_host'] = $chkMselValue1;
|
|
||||||
$_SESSION['refresh']['se_hostgroup'] = $chkMselValue2;
|
|
||||||
$_SESSION['refresh']['se_service'] = $chkMselValue3;
|
|
||||||
$_SESSION['refresh']['se_contact'] = $chkMselValue4;
|
|
||||||
$_SESSION['refresh']['se_contactgroup'] = $chkMselValue5;
|
|
||||||
$_SESSION['refresh']['se_servicegroup'] = $chkMselValue6;
|
|
||||||
if (isset($arrModifyData['host_name']) && ($arrModifyData['host_name'] > 0)) {
|
|
||||||
$arrTemp = array();
|
|
||||||
$strSQL = 'SELECT `idSlave`, `exclude` '
|
|
||||||
. 'FROM `tbl_lnkServiceescalationToHost` WHERE `idMaster` = ' .$arrModifyData['id'];
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrData, $intDC);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intDC != 0) {
|
|
||||||
foreach ($arrData as $elem) {
|
|
||||||
if ($elem['exclude'] == 1) {
|
|
||||||
$arrTemp[] = 'e' .$elem['idSlave'];
|
|
||||||
} else {
|
|
||||||
$arrTemp[] = $elem['idSlave'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($arrModifyData['host_name'] == 2) {
|
|
||||||
$arrTemp[] = '*';
|
|
||||||
}
|
|
||||||
$_SESSION['refresh']['se_host'] = $arrTemp;
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['hostgroup_name']) && ($arrModifyData['hostgroup_name'] > 0)) {
|
|
||||||
$arrTemp = array();
|
|
||||||
$strSQL = 'SELECT `idSlave`, `exclude` '
|
|
||||||
. 'FROM `tbl_lnkServiceescalationToHostgroup` WHERE `idMaster` = ' .$arrModifyData['id'];
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrData, $intDC);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intDC != 0) {
|
|
||||||
foreach ($arrData as $elem) {
|
|
||||||
if ($elem['exclude'] == 1) {
|
|
||||||
$arrTemp[] = 'e' .$elem['idSlave'];
|
|
||||||
} else {
|
|
||||||
$arrTemp[] = $elem['idSlave'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($arrModifyData['hostgroup_name'] == 2) {
|
|
||||||
$arrTemp[] = '*';
|
|
||||||
}
|
|
||||||
$_SESSION['refresh']['se_hostgroup'] = $arrTemp;
|
|
||||||
}
|
|
||||||
$myVisClass->arrSession = $_SESSION;
|
|
||||||
}
|
|
||||||
// Process host selection field
|
|
||||||
if (isset($arrModifyData['host_name'])) {
|
|
||||||
$intFieldId = $arrModifyData['host_name'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
if (($chkModus == 'refresh') && is_array($chkMselValue1) && (count($chkMselValue1) != 0)) {
|
|
||||||
$strRefresh = 'se_host';
|
|
||||||
} else {
|
|
||||||
$strRefresh = '';
|
|
||||||
}
|
|
||||||
$intReturn1 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_host',
|
|
||||||
'host_name',
|
|
||||||
'host',
|
|
||||||
'tbl_lnkServiceescalationToHost',
|
|
||||||
2,
|
|
||||||
$intFieldId,
|
|
||||||
-9,
|
|
||||||
$strRefresh
|
|
||||||
);
|
|
||||||
if ($intReturn1 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['hostgroup_name'])) {
|
|
||||||
$intFieldId = $arrModifyData['hostgroup_name'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
if (($chkModus == 'refresh') && is_array($chkMselValue2) && (count($chkMselValue2) != 0)) {
|
|
||||||
$strRefresh = 'se_hostgroup';
|
|
||||||
} else {
|
|
||||||
$strRefresh = '';
|
|
||||||
}
|
|
||||||
$intReturn2 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_hostgroup',
|
|
||||||
'hostgroup_name',
|
|
||||||
'hostgroup',
|
|
||||||
'tbl_lnkServiceescalationToHostgroup',
|
|
||||||
2,
|
|
||||||
$intFieldId,
|
|
||||||
-9,
|
|
||||||
$strRefresh
|
|
||||||
);
|
|
||||||
if ($intReturn2 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (($intReturn1 != 0) && ($intReturn2 != 0)) {
|
|
||||||
$myVisClass->processMessage(translate('Attention, no hosts and hostgroups defined!'), $strDBWarning);
|
|
||||||
$intDataWarning = 1;
|
|
||||||
}
|
|
||||||
// Process time period selection field
|
|
||||||
if (isset($arrModifyData['escalation_period'])) {
|
|
||||||
$intFieldId = $arrModifyData['escalation_period'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
if ($chkModus == 'refresh') {
|
|
||||||
$intFieldId = $chkSelValue1;
|
|
||||||
}
|
|
||||||
$intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod', 'timeperiod_name', 'timeperiod', 1, $intFieldId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process contact and contact group selection field
|
|
||||||
if (isset($arrModifyData['contacts'])) {
|
|
||||||
$intFieldId = $arrModifyData['contacts'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
if (($chkModus == 'refresh') && is_array($chkMselValue4) && (count($chkMselValue4) != 0)) {
|
|
||||||
$strRefresh = 'se_contact';
|
|
||||||
} else {
|
|
||||||
$strRefresh = '';
|
|
||||||
}
|
|
||||||
$intReturn1 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_contact',
|
|
||||||
'contact_name',
|
|
||||||
'contact',
|
|
||||||
'tbl_lnkServiceescalationToContact',
|
|
||||||
2,
|
|
||||||
$intFieldId,
|
|
||||||
-9,
|
|
||||||
$strRefresh
|
|
||||||
);
|
|
||||||
if ($intReturn1 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['contact_groups'])) {
|
|
||||||
$intFieldId = $arrModifyData['contact_groups'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
if (($chkModus == 'refresh') && is_array($chkMselValue5) && (count($chkMselValue5) != 0)) {
|
|
||||||
$strRefresh = 'se_contactgroup';
|
|
||||||
} else {
|
|
||||||
$strRefresh = '';
|
|
||||||
}
|
|
||||||
$intReturn2 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_contactgroup',
|
|
||||||
'contactgroup_name',
|
|
||||||
'contactgroup',
|
|
||||||
'tbl_lnkServiceescalationToContactgroup',
|
|
||||||
2,
|
|
||||||
$intFieldId,
|
|
||||||
-9,
|
|
||||||
$strRefresh
|
|
||||||
);
|
|
||||||
if ($intReturn2 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (($intReturn1 != 0) && ($intReturn2 != 0)) {
|
|
||||||
$myVisClass->processMessage(translate('Attention, no contacts and contactgroups defined!'), $strDBWarning);
|
|
||||||
$intDataWarning = 1;
|
|
||||||
}
|
|
||||||
// Process services selection field
|
|
||||||
if (isset($arrModifyData['service_description'])) {
|
|
||||||
$intFieldId = $arrModifyData['service_description'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
if (($chkModus == 'refresh') && is_array($chkMselValue3) && (count($chkMselValue3) != 0)) {
|
|
||||||
$strRefresh = 'se_service';
|
|
||||||
} else {
|
|
||||||
$strRefresh = '';
|
|
||||||
}
|
|
||||||
$intReturn = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_service',
|
|
||||||
'service_description',
|
|
||||||
'service',
|
|
||||||
'tbl_lnkServiceescalationToService',
|
|
||||||
2,
|
|
||||||
$intFieldId,
|
|
||||||
-9,
|
|
||||||
$strRefresh
|
|
||||||
);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process servicegroup selection field
|
|
||||||
if (isset($arrModifyData['servicegroup_name'])) {
|
|
||||||
$intFieldId = $arrModifyData['servicegroup_name'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
if (($chkModus == 'refresh') && is_array($chkMselValue6) && (count($chkMselValue6) != 0)) {
|
|
||||||
$strRefresh = 'se_servicegroup';
|
|
||||||
} else {
|
|
||||||
$strRefresh = '';
|
|
||||||
}
|
|
||||||
$intReturn = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_servicegroup',
|
|
||||||
'servicegroup_name',
|
|
||||||
'servicegroup',
|
|
||||||
'tbl_lnkServiceescalationToServicegroup',
|
|
||||||
0,
|
|
||||||
$intFieldId,
|
|
||||||
-9,
|
|
||||||
$strRefresh
|
|
||||||
);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process access group selection field
|
|
||||||
if (isset($arrModifyData['access_group'])) {
|
|
||||||
$intFieldId = $arrModifyData['access_group'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
if ($chkModus == 'refresh') {
|
|
||||||
$intFieldId = $chkSelAccGr;
|
|
||||||
}
|
|
||||||
$intReturn = $myVisClass->parseSelectSimple('tbl_group', 'groupname', 'acc_group', 0, $intFieldId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Initial add/modify form definitions
|
|
||||||
$myContentClass->addFormInit($conttp);
|
|
||||||
if ($intDataWarning == 1) {
|
|
||||||
$conttp->setVariable('WARNING', $strDBWarning. '<br>' .translate('Saving not possible!'));
|
|
||||||
}
|
|
||||||
if ($intVersion < 3) {
|
|
||||||
$conttp->setVariable('VERSION_20_VALUE_MUST', 'mselValue1,');
|
|
||||||
}
|
|
||||||
if ($chkModus == 'refresh') {
|
|
||||||
if ($chkTfNullVal1 != 'NULL') {
|
|
||||||
$conttp->setVariable('DAT_FIRST_NOTIFICATION', $chkTfNullVal1);
|
|
||||||
}
|
|
||||||
if ($chkTfNullVal2 != 'NULL') {
|
|
||||||
$conttp->setVariable('DAT_LAST_NOTIFICATION', $chkTfNullVal2);
|
|
||||||
}
|
|
||||||
if ($chkTfNullVal3 != 'NULL') {
|
|
||||||
$conttp->setVariable('DAT_NOTIFICATION_INTERVAL', $chkTfNullVal3);
|
|
||||||
}
|
|
||||||
if ($chkTfValue1 != '') {
|
|
||||||
$conttp->setVariable('DAT_CONFIG_NAME', $chkTfValue1);
|
|
||||||
}
|
|
||||||
foreach (explode(',', $strEO) as $elem) {
|
|
||||||
$conttp->setVariable('DAT_EO' .strtoupper($elem). '_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
if ($chkActive != 1) {
|
|
||||||
$conttp->setVariable('ACT_CHECKED', '');
|
|
||||||
}
|
|
||||||
if ($chkRegister != 1) {
|
|
||||||
$conttp->setVariable('REG_CHECKED', '');
|
|
||||||
}
|
|
||||||
if ($chkDataId != 0) {
|
|
||||||
$conttp->setVariable('MODUS', 'modify');
|
|
||||||
$conttp->setVariable('DAT_ID', $chkDataId);
|
|
||||||
}
|
|
||||||
// Insert data from database in "modify" mode
|
|
||||||
} elseif (isset($arrModifyData) && ($chkSelModify == 'modify')) {
|
|
||||||
// Check relation information to find out locked configuration datasets
|
|
||||||
$intLocked = $myDataClass->infoRelation($preTableName, $arrModifyData['id'], $preKeyField);
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strRelMessage);
|
|
||||||
$strInfo = '<br><span class="redmessage">' .translate('Entry cannot be activated because it is used by '
|
|
||||||
.'another configuration'). ':</span>';
|
|
||||||
$strInfo .= '<br><span class="greenmessage">' .$strRelMessage. '</span>';
|
|
||||||
// Process data
|
|
||||||
$myContentClass->addInsertData($conttp, $arrModifyData, $intLocked, $strInfo);
|
|
||||||
// Process option fields
|
|
||||||
foreach (explode(',', $arrModifyData['escalation_options']) as $elem) {
|
|
||||||
$conttp->setVariable('DAT_EO' .strtoupper($elem). '_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$conttp->parse('datainsert');
|
|
||||||
$conttp->show('datainsert');
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// List view
|
|
||||||
// ==========
|
|
||||||
if ($chkModus == 'display') {
|
|
||||||
// Initial list view definitions
|
|
||||||
$myContentClass->listViewInit($mastertp);
|
|
||||||
$mastertp->setVariable('TITLE', translate('Define service escalation (serviceescalations.cfg)'));
|
|
||||||
$mastertp->setVariable('FIELD_1', translate('Config name'));
|
|
||||||
$mastertp->setVariable('FIELD_2', translate('Services'));
|
|
||||||
// Process search string
|
|
||||||
if ($_SESSION['search'][$preSearchSession] != '') {
|
|
||||||
$strSearchTxt = $_SESSION['search'][$preSearchSession];
|
|
||||||
$strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%')";
|
|
||||||
}
|
|
||||||
// Row sorting
|
|
||||||
$strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir";
|
|
||||||
if ($hidSortBy == 2) {
|
|
||||||
$strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir";
|
|
||||||
}
|
|
||||||
$mastertp->setVariable('DISABLE_SORT_2', 'disable');
|
|
||||||
// Count datasets
|
|
||||||
$strSQL = "SELECT count(*) AS `number` FROM `$preTableName` "
|
|
||||||
. "WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)";
|
|
||||||
$booReturn = $myDBClass->hasSingleDataset($strSQL, $arrDataLinesCount);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$intLineCount = (int)$arrDataLinesCount['number'];
|
|
||||||
if ($intLineCount < $chkLimit) {
|
|
||||||
$chkLimit = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Get datasets
|
|
||||||
$strSQL = "SELECT `id`, `$preKeyField`, `service_description`, `register`, `active`, `config_id`, "
|
|
||||||
. "`access_group` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` IN "
|
|
||||||
. "($strAccess) $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrDataLines, $intDataCount);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process data
|
|
||||||
$myContentClass->listData(
|
|
||||||
$mastertp,
|
|
||||||
$arrDataLines,
|
|
||||||
$intDataCount,
|
|
||||||
$intLineCount,
|
|
||||||
$preKeyField,
|
|
||||||
'process_field',
|
|
||||||
40
|
|
||||||
);
|
|
||||||
}
|
|
||||||
// Show messages
|
|
||||||
$myContentClass->showMessages(
|
|
||||||
$mastertp,
|
|
||||||
$strErrorMessage,
|
|
||||||
$strInfoMessage,
|
|
||||||
$strConsistMessage,
|
|
||||||
$arrTimeData,
|
|
||||||
$strTimeInfoString,
|
|
||||||
$intNoTime
|
|
||||||
);
|
|
||||||
//
|
|
||||||
// Process footer
|
|
||||||
// ==============
|
|
||||||
$myContentClass->showFooter($maintp, $setFileVersion);
|
|
@ -1,279 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Service extended information definition
|
|
||||||
// Component : Service escalation definition
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 24;
|
|
||||||
$preContent = 'admin/serviceextinfo.htm.tpl';
|
|
||||||
$preListTpl = 'admin/datalist.htm.tpl';
|
|
||||||
$preSearchSession = 'serviceextinfo';
|
|
||||||
$preTableName = 'tbl_serviceextinfo';
|
|
||||||
$preKeyField = 'host_name';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Add or modify data
|
|
||||||
// ==================
|
|
||||||
if ((($chkModus == 'insert') || ($chkModus == 'modify')) && ($intGlobalWriteAccess == 0)) {
|
|
||||||
$strSQLx = "`$preTableName` SET `$preKeyField`='$chkSelValue1', `service_description`='$chkSelValue2', "
|
|
||||||
. "`notes`='$chkTfValue1', `notes_url`='$chkTfValue2', `action_url`='$chkTfValue3', "
|
|
||||||
. "`icon_image`='$chkTfValue4', `icon_image_alt`='$chkTfValue5', $preSQLCommon1";
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$strSQL = 'INSERT INTO ' .$strSQLx;
|
|
||||||
} else {
|
|
||||||
$strSQL = 'UPDATE ' .$strSQLx. ' WHERE `id`=' .$chkDataId;
|
|
||||||
}
|
|
||||||
if ($intWriteAccessId == 0) {
|
|
||||||
if (($chkSelValue1 != 0) && ($chkSelValue2 != 0)) {
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$chkDataId = $intInsertId;
|
|
||||||
}
|
|
||||||
if ($intReturn == 1) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strInfoMessage);
|
|
||||||
$myDataClass->updateStatusTable($preTableName);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$myDataClass->writeLog(translate('New service extended information inserted:'). ' ' .$chkSelValue1.
|
|
||||||
'::' .$chkSelValue2);
|
|
||||||
}
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$myDataClass->writeLog(translate('Service extended information modified:'). ' ' .$chkSelValue1.
|
|
||||||
'::' .$chkSelValue2);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Update Import HASH
|
|
||||||
// ==================
|
|
||||||
$booReturn = $myDataClass->updateHash($preTableName, $chkDataId);
|
|
||||||
if ($booReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Database entry failed! Not all necessary data filled in!'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Database entry failed! No write access!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
if (($chkModus != 'add') && ($chkModus != 'refresh')) {
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Get date/time of last database and config file manipulation
|
|
||||||
// ===========================================================
|
|
||||||
$intReturn = $myConfigClass->lastModifiedFile($preTableName, $arrTimeData, $strTimeInfoString);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Singe data form
|
|
||||||
// ===============
|
|
||||||
if (($chkModus == 'add') || ($chkModus == 'refresh')) {
|
|
||||||
$conttp->setVariable('TITLE', translate('Define service extended information (serviceextinfo.cfg)'));
|
|
||||||
// Do not show modified time list
|
|
||||||
$intNoTime = 1;
|
|
||||||
// Refresh mode
|
|
||||||
if ($chkModus == 'refresh') {
|
|
||||||
$_SESSION['refresh']['se_host'] = $chkSelValue1;
|
|
||||||
$myVisClass->arrSession = $_SESSION;
|
|
||||||
} else {
|
|
||||||
$_SESSION['refresh']['se_host'] = $chkSelValue1;
|
|
||||||
if (isset($arrModifyData[$preKeyField]) && ($arrModifyData[$preKeyField] != 0)) {
|
|
||||||
$strSQL = "SELECT `$preKeyField` FROM `$preTableName` WHERE `id` = ".$arrModifyData['id'];
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrData, $intDC);
|
|
||||||
if ($intDC != 0) {
|
|
||||||
$_SESSION['refresh']['se_host'] = $arrData[0][$preKeyField];
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$strSQL = 'SELECT `id` FROM `tbl_host` '
|
|
||||||
. "WHERE `active`='1' AND `config_id`=$chkDomainId ORDER BY `$preKeyField`";
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrData, $intDC);
|
|
||||||
if ($intDC != 0) {
|
|
||||||
$_SESSION['refresh']['se_host'] = $arrData[0]['id'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$myVisClass->arrSession = $_SESSION;
|
|
||||||
}
|
|
||||||
// Process host selection field
|
|
||||||
if (isset($arrModifyData[$preKeyField])) {
|
|
||||||
$intFieldId = $arrModifyData[$preKeyField];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
if (($chkModus == 'refresh') && ($chkSelValue1 != 0)) {
|
|
||||||
$intFieldId = $chkSelValue1;
|
|
||||||
}
|
|
||||||
$intReturn1 = $myVisClass->parseSelectSimple('tbl_host', $preKeyField, 'host', 0, $intFieldId);
|
|
||||||
if ($intReturn1 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
$myVisClass->processMessage(translate('Attention, no hosts defined!'), $strDBWarning);
|
|
||||||
$intDataWarning = 1;
|
|
||||||
}
|
|
||||||
// Process service selection field
|
|
||||||
if (isset($arrModifyData['service_description'])) {
|
|
||||||
$intFieldId = $arrModifyData['service_description'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn1 = $myVisClass->parseSelectSimple(
|
|
||||||
'tbl_service',
|
|
||||||
'service_description',
|
|
||||||
'service_extinfo',
|
|
||||||
0,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn1 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process access group selection field
|
|
||||||
if (isset($arrModifyData['access_group'])) {
|
|
||||||
$intFieldId = $arrModifyData['access_group'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn = $myVisClass->parseSelectSimple('tbl_group', 'groupname', 'acc_group', 0, $intFieldId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Initial add/modify form definitions
|
|
||||||
$myContentClass->addFormInit($conttp);
|
|
||||||
if ($intDataWarning == 1) {
|
|
||||||
$conttp->setVariable('WARNING', $strDBWarning. '<br>' .translate('Saving not possible!'));
|
|
||||||
}
|
|
||||||
if ($intVersion < 3) {
|
|
||||||
$conttp->setVariable('VERSION_20_VALUE_MUST', 'mselValue1,');
|
|
||||||
}
|
|
||||||
if ($chkModus == 'refresh') {
|
|
||||||
$conttp->setVariable('DAT_NOTES', $chkTfValue1);
|
|
||||||
$conttp->setVariable('DAT_NOTES_URL', $chkTfValue2);
|
|
||||||
$conttp->setVariable('DAT_ACTION_URL', $chkTfValue3);
|
|
||||||
$conttp->setVariable('DAT_ICON_IMAGE', $chkTfValue4);
|
|
||||||
$conttp->setVariable('DAT_ICON_IMAGE_ALT', $chkTfValue5);
|
|
||||||
if ($chkActive != 1) {
|
|
||||||
$conttp->setVariable('ACT_CHECKED', '');
|
|
||||||
}
|
|
||||||
if ($chkRegister != 1) {
|
|
||||||
$conttp->setVariable('REG_CHECKED', '');
|
|
||||||
}
|
|
||||||
if ($chkDataId != 0) {
|
|
||||||
$conttp->setVariable('MODUS', 'modify');
|
|
||||||
$conttp->setVariable('DAT_ID', $chkDataId);
|
|
||||||
}
|
|
||||||
// Insert data from database in "modify" mode
|
|
||||||
} elseif (isset($arrModifyData) && ($chkSelModify == 'modify')) {
|
|
||||||
// Check relation information to find out locked configuration datasets
|
|
||||||
$intLocked = $myDataClass->infoRelation($preTableName, $arrModifyData['id'], $preKeyField);
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strRelMessage);
|
|
||||||
$strInfo = '<br><span class="redmessage">' .translate('Entry cannot be activated because it is used by '
|
|
||||||
.'another configuration'). ':</span>';
|
|
||||||
$strInfo .= '<br><span class="greenmessage">' .$strRelMessage. '</span>';
|
|
||||||
// Process data
|
|
||||||
$myContentClass->addInsertData($conttp, $arrModifyData, $intLocked, $strInfo);
|
|
||||||
}
|
|
||||||
$conttp->parse('datainsert');
|
|
||||||
$conttp->show('datainsert');
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// List view
|
|
||||||
// ==========
|
|
||||||
if ($chkModus == 'display') {
|
|
||||||
// Initial list view definitions
|
|
||||||
$myContentClass->listViewInit($mastertp);
|
|
||||||
$mastertp->setVariable('TITLE', translate('Define service extended information (serviceextinfo.cfg)'));
|
|
||||||
$mastertp->setVariable('FIELD_1', translate('Hostname'));
|
|
||||||
$mastertp->setVariable('FIELD_2', translate('Service'));
|
|
||||||
// Process search string
|
|
||||||
if ($_SESSION['search'][$preSearchSession] != '') {
|
|
||||||
$strSearchTxt = $_SESSION['search'][$preSearchSession];
|
|
||||||
$strSearchWhere = "AND (`tbl_host`.`$preKeyField` LIKE '%".$strSearchTxt."%' OR `$preTableName`.`notes` "
|
|
||||||
. "LIKE '%".$strSearchTxt."%' OR `$preTableName`.`notes_url` LIKE '%".$strSearchTxt."%')";
|
|
||||||
}
|
|
||||||
// Row sorting
|
|
||||||
$strOrderString = "ORDER BY `$preTableName`.`config_id`, `$preKeyField` $hidSortDir";
|
|
||||||
if ($hidSortBy == 2) {
|
|
||||||
$strOrderString = "ORDER BY `$preTableName`.`config_id`, `tbl_service`.`service_description` $hidSortDir";
|
|
||||||
}
|
|
||||||
// Count datasets
|
|
||||||
$strSQL = "SELECT count(*) AS `number` FROM `$preTableName` "
|
|
||||||
. "LEFT JOIN `tbl_host` ON `$preTableName`.`$preKeyField` = `tbl_host`.`id` "
|
|
||||||
. "LEFT JOIN `tbl_service` ON `$preTableName`.`service_description` = `tbl_service`.`id` "
|
|
||||||
. "WHERE $strDomainWhere $strSearchWhere AND `$preTableName`.`access_group` IN ($strAccess)";
|
|
||||||
$booReturn = $myDBClass->hasSingleDataset($strSQL, $arrDataLinesCount);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$intLineCount = (int)$arrDataLinesCount['number'];
|
|
||||||
if ($intLineCount < $chkLimit) {
|
|
||||||
$chkLimit = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Get datasets
|
|
||||||
$strSQL = "SELECT `$preTableName`.`id`, `tbl_host`.`$preKeyField`, `tbl_service`.`service_description`, "
|
|
||||||
. "`$preTableName`.`notes`, `$preTableName`.`register`, `$preTableName`.`active`, `$preTableName`.`config_id`, "
|
|
||||||
. "`$preTableName`.`access_group` FROM `$preTableName` "
|
|
||||||
. "LEFT JOIN `tbl_host` ON `$preTableName`.`$preKeyField` = `tbl_host`.`id` "
|
|
||||||
. "LEFT JOIN `tbl_service` ON `$preTableName`.`service_description` = `tbl_service`.`id` "
|
|
||||||
. "WHERE $strDomainWhere $strSearchWhere AND `$preTableName`.`access_group` IN ($strAccess) $strOrderString "
|
|
||||||
. "LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrDataLines, $intDataCount);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process data
|
|
||||||
$myContentClass->listData(
|
|
||||||
$mastertp,
|
|
||||||
$arrDataLines,
|
|
||||||
$intDataCount,
|
|
||||||
$intLineCount,
|
|
||||||
$preKeyField,
|
|
||||||
'service_description'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
// Show messages
|
|
||||||
$myContentClass->showMessages(
|
|
||||||
$mastertp,
|
|
||||||
$strErrorMessage,
|
|
||||||
$strInfoMessage,
|
|
||||||
$strConsistMessage,
|
|
||||||
$arrTimeData,
|
|
||||||
$strTimeInfoString,
|
|
||||||
$intNoTime
|
|
||||||
);
|
|
||||||
//
|
|
||||||
// Process footer
|
|
||||||
// ==============
|
|
||||||
$myContentClass->showFooter($maintp, $setFileVersion);
|
|
@ -1,281 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Admin servicegroup definition
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 11;
|
|
||||||
$preContent = 'admin/servicegroups.htm.tpl';
|
|
||||||
$preListTpl = 'admin/datalist.htm.tpl';
|
|
||||||
$preSearchSession = 'servicegroup';
|
|
||||||
$preTableName = 'tbl_servicegroup';
|
|
||||||
$preKeyField = 'servicegroup_name';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
//
|
|
||||||
// Include preprocessing file
|
|
||||||
// ==========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Add or modify data
|
|
||||||
// ==================
|
|
||||||
if ((($chkModus == 'insert') || ($chkModus == 'modify')) && ($intGlobalWriteAccess == 0)) {
|
|
||||||
$strSQLx = "`$preTableName` SET `$preKeyField`='$chkTfValue1', `alias`='$chkTfValue2', `members`=$intMselValue1, "
|
|
||||||
. "`servicegroup_members`=$intMselValue2, `notes`='$chkTfValue3', `notes_url`='$chkTfValue4', "
|
|
||||||
. "`action_url`='$chkTfValue5', $preSQLCommon1";
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$strSQL = 'INSERT INTO ' .$strSQLx;
|
|
||||||
} else {
|
|
||||||
$strSQL = 'UPDATE ' .$strSQLx. ' WHERE `id`=' .$chkDataId;
|
|
||||||
}
|
|
||||||
if ($intWriteAccessId == 0) {
|
|
||||||
if (($chkTfValue1 != '') && ($chkTfValue2 != '') && (($intMselValue1 != 0) || ($intVersion >= 3))) {
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$chkDataId = $intInsertId;
|
|
||||||
}
|
|
||||||
if ($intReturn == 1) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strInfoMessage);
|
|
||||||
$myDataClass->updateStatusTable($preTableName);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$myDataClass->writeLog(translate('New service group inserted:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$myDataClass->writeLog(translate('Service group modified:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Insert/update relations
|
|
||||||
// =======================
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
if ($intMselValue1 != 0) {
|
|
||||||
$intRet1 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkServicegroupToService',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue1,
|
|
||||||
1
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet1) && ($intRet1 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue2 != 0) {
|
|
||||||
$intRet2 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkServicegroupToServicegroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue2
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet2) && ($intRet2 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
} elseif ($chkModus == 'modify') {
|
|
||||||
if ($intMselValue1 != 0) {
|
|
||||||
$intRet1 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkServicegroupToService',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue1,
|
|
||||||
1
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet1 = $myDataClass->dataDeleteRelation('tbl_lnkServicegroupToService', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet1 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue2 != 0) {
|
|
||||||
$intRet2 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkServicegroupToServicegroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue2
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet2 = $myDataClass->dataDeleteRelation('tbl_lnkServicegroupToServicegroup', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet2 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (($intRet1 + $intRet2) != 0) {
|
|
||||||
$strInfoMessage = '';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Database entry failed! Not all necessary data filled in!'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Database entry failed! No write access!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
if ($chkModus != 'add') {
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Get date/time of last database and config file manipulation
|
|
||||||
// ===========================================================
|
|
||||||
$intReturn = $myConfigClass->lastModifiedFile($preTableName, $arrTimeData, $strTimeInfoString);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Singe data form
|
|
||||||
// ===============
|
|
||||||
if ($chkModus == 'add') {
|
|
||||||
$conttp->setVariable('TITLE', translate('Define service groups (servicegroups.cfg)'));
|
|
||||||
// Do not show modified time list
|
|
||||||
$intNoTime = 1;
|
|
||||||
// Process service selection field
|
|
||||||
if (isset($arrModifyData['members'])) {
|
|
||||||
$intFieldId = $arrModifyData['members'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn1 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_service',
|
|
||||||
'service_description',
|
|
||||||
'service_members',
|
|
||||||
'tbl_lnkServicegroupToService',
|
|
||||||
0,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn1 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (($intReturn1 != 0) && ($intVersion < 3)) {
|
|
||||||
$myVisClass->processMessage(translate('Attention, no services defined!'), $strDBWarning);
|
|
||||||
$intDataWarning = 1;
|
|
||||||
}
|
|
||||||
// Process service group selection field
|
|
||||||
if (isset($arrModifyData['servicegroup_members'])) {
|
|
||||||
$intFieldId = $arrModifyData['servicegroup_members'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn2 = $myVisClass->parseSelectMulti(
|
|
||||||
$preTableName,
|
|
||||||
$preKeyField,
|
|
||||||
'servicegroups',
|
|
||||||
'tbl_lnkServicegroupToServicegroup',
|
|
||||||
0,
|
|
||||||
$intFieldId,
|
|
||||||
$chkListId
|
|
||||||
);
|
|
||||||
if ($intReturn2 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process access group selection field
|
|
||||||
if (isset($arrModifyData['access_group'])) {
|
|
||||||
$intFieldId = $arrModifyData['access_group'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn3 = $myVisClass->parseSelectSimple('tbl_group', 'groupname', 'acc_group', 0, $intFieldId);
|
|
||||||
if ($intReturn3 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Initial add/modify form definitions
|
|
||||||
$myContentClass->addFormInit($conttp);
|
|
||||||
if ($intDataWarning == 1) {
|
|
||||||
$conttp->setVariable('WARNING', $strDBWarning. '<br>' .translate('Saving not possible!'));
|
|
||||||
}
|
|
||||||
if ($intVersion < 3) {
|
|
||||||
$conttp->setVariable('VERSION_20_VALUE_MUST', 'mselValue1,');
|
|
||||||
}
|
|
||||||
// Insert data from database in "modify" mode
|
|
||||||
if (isset($arrModifyData) && ($chkSelModify == 'modify')) {
|
|
||||||
// Check relation information to find out locked configuration datasets
|
|
||||||
$intLocked = $myDataClass->infoRelation($preTableName, $arrModifyData['id'], $preKeyField);
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strRelMessage);
|
|
||||||
$strInfo = '<br><span class="redmessage">' .translate('Entry cannot be activated because it is used by '
|
|
||||||
. 'another configuration'). ':</span>';
|
|
||||||
$strInfo .= '<br><span class="greenmessage">' .$strRelMessage. '</span>';
|
|
||||||
// Process data
|
|
||||||
$myContentClass->addInsertData($conttp, $arrModifyData, $intLocked, $strInfo);
|
|
||||||
}
|
|
||||||
$conttp->parse('datainsert');
|
|
||||||
$conttp->show('datainsert');
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// List view
|
|
||||||
// ==========
|
|
||||||
if ($chkModus == 'display') {
|
|
||||||
// Initial list view definitions
|
|
||||||
$myContentClass->listViewInit($mastertp);
|
|
||||||
$mastertp->setVariable('TITLE', translate('Define service groups (servicegroups.cfg)'));
|
|
||||||
$mastertp->setVariable('FIELD_1', translate('Service group'));
|
|
||||||
$mastertp->setVariable('FIELD_2', translate('Description'));
|
|
||||||
// Process search string
|
|
||||||
if ($_SESSION['search'][$preSearchSession] != '') {
|
|
||||||
$strSearchTxt = $_SESSION['search'][$preSearchSession];
|
|
||||||
$strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%' OR `alias` LIKE '%".$strSearchTxt."%' "
|
|
||||||
. "OR `notes` LIKE '%".$strSearchTxt."%')";
|
|
||||||
}
|
|
||||||
// Row sorting
|
|
||||||
$strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir";
|
|
||||||
if ($hidSortBy == 2) {
|
|
||||||
$strOrderString = "ORDER BY `config_id`, `alias` $hidSortDir";
|
|
||||||
}
|
|
||||||
// Count datasets
|
|
||||||
$strSQL1 = "SELECT count(*) AS `number` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere "
|
|
||||||
. "AND `access_group` IN ($strAccess)";
|
|
||||||
$booReturn1 = $myDBClass->hasSingleDataset($strSQL1, $arrDataLinesCount);
|
|
||||||
if ($booReturn1 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$intLineCount = (int)$arrDataLinesCount['number'];
|
|
||||||
if ($intLineCount < $chkLimit) {
|
|
||||||
$chkLimit = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Get datasets
|
|
||||||
$strSQL2 = "SELECT `id`, `$preKeyField`, `alias`, `register`, `active`, `config_id`, `access_group` "
|
|
||||||
. "FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess) "
|
|
||||||
. "$strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
|
||||||
$booReturn2 = $myDBClass->hasDataArray($strSQL2, $arrDataLines, $intDataCount);
|
|
||||||
if ($booReturn2 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process data
|
|
||||||
$myContentClass->listData($mastertp, $arrDataLines, $intDataCount, $intLineCount, $preKeyField, 'alias');
|
|
||||||
}
|
|
||||||
// Show messages
|
|
||||||
$myContentClass->showMessages(
|
|
||||||
$mastertp,
|
|
||||||
$strErrorMessage,
|
|
||||||
$strInfoMessage,
|
|
||||||
$strConsistMessage,
|
|
||||||
$arrTimeData,
|
|
||||||
$strTimeInfoString,
|
|
||||||
$intNoTime
|
|
||||||
);
|
|
||||||
//
|
|
||||||
// Process footer
|
|
||||||
// ==============
|
|
||||||
$myContentClass->showFooter($maintp, $setFileVersion);
|
|
@ -1,793 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Service definition
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 9;
|
|
||||||
$preContent = 'admin/services.htm.tpl';
|
|
||||||
$preListTpl = 'admin/datalist_services.htm.tpl';
|
|
||||||
$preSearchSession = 'service';
|
|
||||||
$preTableName = 'tbl_service';
|
|
||||||
$preKeyField = 'config_name';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Data processing
|
|
||||||
// ===============
|
|
||||||
$strNO = substr($chkChbGr1a.$chkChbGr1b.$chkChbGr1c.$chkChbGr1d.$chkChbGr1e.$chkChbGr1f, 0, -1);
|
|
||||||
$strIS = substr($chkChbGr2a.$chkChbGr2b.$chkChbGr2c.$chkChbGr2d, 0, -1);
|
|
||||||
$strFL = substr($chkChbGr3a.$chkChbGr3b.$chkChbGr3c.$chkChbGr3d, 0, -1);
|
|
||||||
$strST = substr($chkChbGr4a.$chkChbGr4b.$chkChbGr4c.$chkChbGr4d, 0, -1);
|
|
||||||
if ($chkSelValue1 != '') {
|
|
||||||
for ($i = 1; $i <= 8; $i++) {
|
|
||||||
$tmpVar = 'chkTfArg'.$i;
|
|
||||||
$$tmpVar = str_replace('!', '::bang::', $$tmpVar);
|
|
||||||
if ($$tmpVar != '') {
|
|
||||||
$chkSelValue1 .= '!' .$$tmpVar;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Add or modify data
|
|
||||||
// ==================
|
|
||||||
if ((($chkModus == 'insert') || ($chkModus == 'modify')) && ($intGlobalWriteAccess == 0)) {
|
|
||||||
$strSQLx = "`$preTableName` SET `$preKeyField`='$chkTfValue1', `host_name`=$intMselValue1, "
|
|
||||||
. "`host_name_tploptions`=$chkRadValue1, `hostgroup_name`=$intMselValue2, "
|
|
||||||
. "`hostgroup_name_tploptions`=$chkRadValue2, `service_description`='$chkTfValue3', "
|
|
||||||
. "`display_name`='$chkTfValue4', `parents`=$intMselValue6, `parents_tploptions`=$chkRadValue18, "
|
|
||||||
. "`importance`=$chkTfNullVal9, `servicegroups`=$intMselValue3, "
|
|
||||||
. "`servicegroups_tploptions`=$chkRadValue3, `check_command`='$chkSelValue1', "
|
|
||||||
. "`use_template`=$intTemplates, `is_volatile`=$chkRadValue14, `initial_state`='$strIS', "
|
|
||||||
. "`max_check_attempts`=$chkTfNullVal2, `check_interval`=$chkTfNullVal3, `retry_interval`=$chkTfNullVal1, "
|
|
||||||
. "`active_checks_enabled`=$chkRadValue4, `passive_checks_enabled`=$chkRadValue5, "
|
|
||||||
. "`check_period`=$chkSelValue2, `parallelize_check`=$chkRadValue6, `obsess_over_service`=$chkRadValue8, "
|
|
||||||
. "`check_freshness`=$chkRadValue7, `freshness_threshold`=$chkTfNullVal4, `event_handler`=$chkSelValue3, "
|
|
||||||
. "`event_handler_enabled`=$chkRadValue9, `low_flap_threshold`=$chkTfNullVal5, "
|
|
||||||
. "`high_flap_threshold`=$chkTfNullVal6, `flap_detection_enabled`=$chkRadValue10, "
|
|
||||||
. "`flap_detection_options`='$strFL', `process_perf_data`=$chkRadValue13, "
|
|
||||||
. "`retain_status_information`=$chkRadValue11, `retain_nonstatus_information`=$chkRadValue12, "
|
|
||||||
. "`contacts`=$intMselValue4, `contacts_tploptions`=$chkRadValue15, `contact_groups`=$intMselValue5, "
|
|
||||||
. "`contact_groups_tploptions`=$chkRadValue16, `notification_interval`=$chkTfNullVal7, "
|
|
||||||
. "`notification_period`=$chkSelValue4, `first_notification_delay`=$chkTfNullVal8, "
|
|
||||||
. "`notification_options`='$strNO', `notifications_enabled`=$chkRadValue17, `stalking_options`='$strST', "
|
|
||||||
. "`notes`='$chkTfValue5', `notes_url`='$chkTfValue6', `action_url`='$chkTfValue7', "
|
|
||||||
. "`icon_image`='$chkTfValue8', `icon_image_alt`='$chkTfValue9', `name`='$chkTfValue10', $preSQLCommon1";
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$strSQL = 'INSERT INTO ' .$strSQLx;
|
|
||||||
} else {
|
|
||||||
$strSQL = 'UPDATE ' .$strSQLx. ' WHERE `id`=' .$chkDataId;
|
|
||||||
}
|
|
||||||
if ($intWriteAccessId == 0) {
|
|
||||||
if (($chkTfValue1 != '') && ($chkTfValue3 != '')) {
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$chkDataId = $intInsertId;
|
|
||||||
}
|
|
||||||
if ($intReturn == 1) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strInfoMessage);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$myDataClass->writeLog(translate('New service inserted:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$myDataClass->writeLog(translate('Service modified:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Insert/update relations
|
|
||||||
// =======================
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
if ($intMselValue1 != 0) {
|
|
||||||
$intRet1 = $myDataClass->dataInsertRelation('tbl_lnkServiceToHost', $chkDataId, $chkMselValue1);
|
|
||||||
}
|
|
||||||
if (isset($intRet1) && ($intRet1 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue2 != 0) {
|
|
||||||
$intRet2 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkServiceToHostgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue2
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet2) && ($intRet2 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue3 != 0) {
|
|
||||||
$intRet3 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkServiceToServicegroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue3
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet3) && ($intRet3 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue4 != 0) {
|
|
||||||
$intRet4 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkServiceToContact',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue4
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet4) && ($intRet4 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue5 != 0) {
|
|
||||||
$intRet5 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkServiceToContactgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue5
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet5) && ($intRet5 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue6 != 0) {
|
|
||||||
$intRet6 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkServiceToService',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue6
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet6) && ($intRet6 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
} elseif ($chkModus == 'modify') {
|
|
||||||
if ($intMselValue1 != 0) {
|
|
||||||
$intRet1 = $myDataClass->dataUpdateRelation('tbl_lnkServiceToHost', $chkDataId, $chkMselValue1);
|
|
||||||
} else {
|
|
||||||
$intRet1 = $myDataClass->dataDeleteRelation('tbl_lnkServiceToHost', $chkDataId);
|
|
||||||
}
|
|
||||||
if (isset($intRet1) && ($intRet1 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue2 != 0) {
|
|
||||||
$intRet2 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkServiceToHostgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue2
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet2 = $myDataClass->dataDeleteRelation('tbl_lnkServiceToHostgroup', $chkDataId);
|
|
||||||
}
|
|
||||||
if (isset($intRet1) && ($intRet1 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue3 != 0) {
|
|
||||||
$intRet3 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkServiceToServicegroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue3
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet3 = $myDataClass->dataDeleteRelation('tbl_lnkServiceToServicegroup', $chkDataId);
|
|
||||||
}
|
|
||||||
if (isset($intRet1) && ($intRet1 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue4 != 0) {
|
|
||||||
$intRet4 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkServiceToContact',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue4
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet4 = $myDataClass->dataDeleteRelation('tbl_lnkServiceToContact', $chkDataId);
|
|
||||||
}
|
|
||||||
if (isset($intRet1) && ($intRet1 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue5 != 0) {
|
|
||||||
$intRet5 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkServiceToContactgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue5
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet5 = $myDataClass->dataDeleteRelation('tbl_lnkServiceToContactgroup', $chkDataId);
|
|
||||||
}
|
|
||||||
if (isset($intRet5) && ($intRet1 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue6 != 0) {
|
|
||||||
$intRet6 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkServiceToService',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue6
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet6 = $myDataClass->dataDeleteRelation('tbl_lnkServiceToService', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet6 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (($intRet1 + $intRet2 + $intRet3 + $intRet4 + $intRet5 + $intRet6) != 0) {
|
|
||||||
$strInfoMessage = '';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Removing the config file if an entry was deleted or renamed
|
|
||||||
// ===========================================================
|
|
||||||
if (($chkModus == 'modify') && ($chkTfValue2 != $chkTfValue1) && ($chkDomainId != 0)) {
|
|
||||||
$intServiceCount = $myDBClass->countRows("SELECT * FROM `$preTableName` "
|
|
||||||
. "WHERE BINARY `$preKeyField`='$chkTfValue2' AND `config_id`=$chkDomainId "
|
|
||||||
. "AND `active`='1'");
|
|
||||||
if ($intServiceCount == 0) {
|
|
||||||
$myConfigClass->getConfigTargets($arrConfigID);
|
|
||||||
if (($arrConfigID != 1) && is_array($arrConfigID)) {
|
|
||||||
$intReturn = 0;
|
|
||||||
foreach ($arrConfigID as $intConfigID) {
|
|
||||||
$intReturn += $myConfigClass->moveFile('service', $chkTfValue2. '.cfg', $intConfigID);
|
|
||||||
}
|
|
||||||
if ($intReturn == 0) {
|
|
||||||
$myVisClass->processMessage(translate('The assigned, no longer used configuration '
|
|
||||||
. 'files were deleted successfully!'), $strInfoMessage);
|
|
||||||
$myDataClass->writeLog(translate('Service file deleted:'). ' ' .$chkTfValue2. '.cfg');
|
|
||||||
} else {
|
|
||||||
if ($chkDomainId == 0) {
|
|
||||||
$myVisClass->processMessage(translate('Common files cannot be removed from target '
|
|
||||||
. 'systems - please check manually'), $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Errors while deleting the old configuration '
|
|
||||||
. 'file - please check!:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Removing the config file if an entry was dectivated
|
|
||||||
// ===================================================
|
|
||||||
if (($chkModus == 'modify') && ($chkActive == 0)) {
|
|
||||||
$intServiceCount = $myDBClass->countRows("SELECT * FROM `$preTableName` "
|
|
||||||
. "WHERE `$preKeyField`='$chkTfValue2' AND `config_id`=$chkDomainId AND `active`='1'");
|
|
||||||
if ($intServiceCount == 0) {
|
|
||||||
$myConfigClass->getConfigTargets($arrConfigID);
|
|
||||||
if (($arrConfigID != 1) && is_array($arrConfigID)) {
|
|
||||||
$intReturn = 0;
|
|
||||||
foreach ($arrConfigID as $intConfigID) {
|
|
||||||
$intReturn += $myConfigClass->moveFile('service', $chkTfValue2. '.cfg', $intConfigID);
|
|
||||||
}
|
|
||||||
if ($intReturn == 0) {
|
|
||||||
$myVisClass->processMessage(translate('The assigned, no longer used configuration '
|
|
||||||
. 'files were deleted successfully!'), $strInfoMessage);
|
|
||||||
$myDataClass->writeLog(translate('Service file deleted:'). ' ' .$chkTfValue2. '.cfg');
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Errors while deleting the old configuration '
|
|
||||||
. 'file - please check!:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Insert/update session data for templates
|
|
||||||
// ========================================
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$strSQL = 'DELETE FROM `tbl_lnkServiceToServicetemplate` WHERE `idMaster`=' .$chkDataId;
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (isset($_SESSION['templatedefinition']) && is_array($_SESSION['templatedefinition']) &&
|
|
||||||
(count($_SESSION['templatedefinition']) != 0)) {
|
|
||||||
$intSortId = 1;
|
|
||||||
/** @noinspection ForeachSourceInspection */
|
|
||||||
foreach ($_SESSION['templatedefinition'] as $elem) {
|
|
||||||
if ($elem['status'] == 0) {
|
|
||||||
$strSQL = 'INSERT INTO `tbl_lnkServiceToServicetemplate` (`idMaster`,`idSlave`, '
|
|
||||||
. "`idTable`,`idSort`) VALUES ($chkDataId,".$elem['idSlave']. ', '
|
|
||||||
. $elem['idTable']. ',' .$intSortId. ')';
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$intSortId++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Insert/update session data for free variables
|
|
||||||
// =============================================
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$strSQL = 'SELECT * FROM `tbl_lnkServiceToVariabledefinition` WHERE `idMaster`=' .$chkDataId;
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrData, $intDataCount);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intDataCount != 0) {
|
|
||||||
foreach ($arrData as $elem) {
|
|
||||||
$strSQL = 'DELETE FROM `tbl_variabledefinition` WHERE `id`=' .$elem['idSlave'];
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$strSQL1 = 'DELETE FROM `tbl_lnkServiceToVariabledefinition` WHERE `idMaster`=' .$chkDataId;
|
|
||||||
$intReturn1 = $myDataClass->dataInsert($strSQL1, $intInsertId);
|
|
||||||
if ($intReturn1 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
$strSQL2 = 'UPDATE `tbl_service` SET `use_variables`=0 WHERE `id`=' .$chkDataId;
|
|
||||||
$intReturn2 = $myDataClass->dataInsert($strSQL2, $intInsertId);
|
|
||||||
if ($intReturn2 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (isset($_SESSION['variabledefinition']) && is_array($_SESSION['variabledefinition']) &&
|
|
||||||
(count($_SESSION['variabledefinition']) != 0)) {
|
|
||||||
$intCountVariable = 0;
|
|
||||||
/** @noinspection ForeachSourceInspection */
|
|
||||||
foreach ($_SESSION['variabledefinition'] as $elem) {
|
|
||||||
if ($elem['status'] == 0) {
|
|
||||||
$strSQL = 'INSERT INTO `tbl_variabledefinition` (`name`,`value`,`last_modified`) '
|
|
||||||
. "VALUES ('".$elem['definition']."','".$elem['range']."',now())";
|
|
||||||
$intReturn1 = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn1 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
$strSQL = 'INSERT INTO `tbl_lnkServiceToVariabledefinition` (`idMaster`,`idSlave`) '
|
|
||||||
. "VALUES ($chkDataId,$intInsertId)";
|
|
||||||
$intReturn2 = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn2 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (($intReturn1 == 0) && ($intReturn2 == 0)) {
|
|
||||||
$intCountVariable++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($intCountVariable != 0) {
|
|
||||||
$strSQL = 'UPDATE `tbl_service` SET `use_variables`=1 WHERE `id`=' .$chkDataId;
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Update Import HASH
|
|
||||||
// ==================
|
|
||||||
$intReturn = $myDataClass->updateHash($preTableName, $chkDataId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Database entry failed! Not all necessary data filled in!'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Database entry failed! No write access!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
if ($chkModus != 'add') {
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Singe data form
|
|
||||||
// ===============
|
|
||||||
if ($chkModus == 'add') {
|
|
||||||
$conttp->setVariable('TITLE', translate('Define services (services.cfg)'));
|
|
||||||
// Do not show modified time list
|
|
||||||
$intNoTime = 1;
|
|
||||||
// Process template fields
|
|
||||||
$strWhere = '';
|
|
||||||
if (isset($arrModifyData) && ($chkSelModify == 'modify')) {
|
|
||||||
$strWhere = 'AND `id` <> ' .$arrModifyData['id'];
|
|
||||||
}
|
|
||||||
$strSQL1 = 'SELECT `id`,`template_name`, `active` FROM `tbl_servicetemplate` '
|
|
||||||
. "WHERE $strDomainWhere2 ORDER BY `template_name`";
|
|
||||||
$booReturn1 = $myDBClass->hasDataArray($strSQL1, $arrDataTpl, $intDataCountTpl);
|
|
||||||
if ($booReturn1 == false) {
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intDataCountTpl != 0) {
|
|
||||||
/** @var array $arrDataTpl */
|
|
||||||
foreach ($arrDataTpl as $elem) {
|
|
||||||
if ($elem['active'] == 0) {
|
|
||||||
$strActive = ' [inactive]';
|
|
||||||
$conttp->setVariable('SPECIAL_STYLE', 'inactive_option');
|
|
||||||
} else {
|
|
||||||
$strActive = '';
|
|
||||||
$conttp->setVariable('SPECIAL_STYLE', '');
|
|
||||||
}
|
|
||||||
$conttp->setVariable('DAT_TEMPLATE', htmlspecialchars($elem['template_name'], ENT_QUOTES, 'UTF-8').
|
|
||||||
$strActive);
|
|
||||||
$conttp->setVariable('DAT_TEMPLATE_ID', $elem['id']. '::1');
|
|
||||||
$conttp->parse('template');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$strSQL2 = "SELECT `id`, `name`, `active` FROM `$preTableName` "
|
|
||||||
. "WHERE `name` <> '' $strWhere AND $strDomainWhere ORDER BY `name`";
|
|
||||||
$booReturn2 = $myDBClass->hasDataArray($strSQL2, $arrDataHpl, $intDataCountHpl);
|
|
||||||
if ($booReturn2 == false) {
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intDataCountHpl != 0) {
|
|
||||||
/** @var array $arrDataHpl */
|
|
||||||
foreach ($arrDataHpl as $elem) {
|
|
||||||
if ($elem['active'] == 0) {
|
|
||||||
$strActive = ' [inactive]';
|
|
||||||
$conttp->setVariable('SPECIAL_STYLE', 'inactive_option');
|
|
||||||
} else {
|
|
||||||
$strActive = '';
|
|
||||||
$conttp->setVariable('SPECIAL_STYLE', '');
|
|
||||||
}
|
|
||||||
$conttp->setVariable('DAT_TEMPLATE', htmlspecialchars($elem['name'], ENT_QUOTES, 'UTF-8').$strActive);
|
|
||||||
$conttp->setVariable('DAT_TEMPLATE_ID', $elem['id']. '::2');
|
|
||||||
$conttp->parse('template');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Process host selection field
|
|
||||||
if (isset($arrModifyData['host_name'])) {
|
|
||||||
$intFieldId = $arrModifyData['host_name'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn3 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_host',
|
|
||||||
'host_name',
|
|
||||||
'hosts',
|
|
||||||
'tbl_lnkServiceToHost',
|
|
||||||
2,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn3 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['hostgroup_name'])) {
|
|
||||||
$intFieldId = $arrModifyData['hostgroup_name'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn4 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_hostgroup',
|
|
||||||
'hostgroup_name',
|
|
||||||
'hostgroup',
|
|
||||||
'tbl_lnkServiceToHostgroup',
|
|
||||||
2,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn4 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (($intReturn3 != 0) && ($intReturn4 != 0)) {
|
|
||||||
$myVisClass->processMessage(translate('Attention, no hosts or hostgroups defined!'), $strDBWarning);
|
|
||||||
$intDataWarning = 1;
|
|
||||||
}
|
|
||||||
// Process service selection field
|
|
||||||
if (isset($arrModifyData['parents'])) {
|
|
||||||
$intFieldId = $arrModifyData['parents'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['id'])) {
|
|
||||||
$intKeyId = $arrModifyData['id'];
|
|
||||||
} else {
|
|
||||||
$intKeyId = 0;
|
|
||||||
}
|
|
||||||
$intReturn3 = $myVisClass->parseSelectMulti(
|
|
||||||
$preTableName,
|
|
||||||
$preKeyField,
|
|
||||||
'service_parents',
|
|
||||||
'tbl_lnkServiceToService',
|
|
||||||
0,
|
|
||||||
$intFieldId,
|
|
||||||
$intKeyId
|
|
||||||
);
|
|
||||||
if ($intReturn3 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process service groups selection field
|
|
||||||
if (isset($arrModifyData['servicegroups'])) {
|
|
||||||
$intFieldId = $arrModifyData['servicegroups'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn5 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_servicegroup',
|
|
||||||
'servicegroup_name',
|
|
||||||
'servicegroup',
|
|
||||||
'tbl_lnkServiceToServicegroup',
|
|
||||||
0,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn5 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process check command selection field
|
|
||||||
if (isset($arrModifyData['check_command']) && ($arrModifyData['check_command'] != '')) {
|
|
||||||
$arrCommand = explode('!', $arrModifyData['check_command']);
|
|
||||||
$intFieldId = $arrCommand[0];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn6 = $myVisClass->parseSelectSimple('tbl_command', 'command_name', 'servicecommand', 2, $intFieldId);
|
|
||||||
if ($intReturn6 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intReturn6 != 0) {
|
|
||||||
$myVisClass->processMessage(translate('Attention, no check commands defined!'), $strDBWarning);
|
|
||||||
$intDataWarning = 1;
|
|
||||||
}
|
|
||||||
// Process check period selection field
|
|
||||||
if (isset($arrModifyData['check_period'])) {
|
|
||||||
$intFieldId = $arrModifyData['check_period'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn7 = $myVisClass->parseSelectSimple('tbl_timeperiod', 'timeperiod_name', 'checkperiod', 1, $intFieldId);
|
|
||||||
if ($intReturn7 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['notification_period'])) {
|
|
||||||
$intFieldId = $arrModifyData['notification_period'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn8 = $myVisClass->parseSelectSimple('tbl_timeperiod', 'timeperiod_name', 'notifyperiod', 1, $intFieldId);
|
|
||||||
if ($intReturn8 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intReturn8 != 0) {
|
|
||||||
$myVisClass->processMessage(translate('Attention, no time periods defined!'), $strDBWarning);
|
|
||||||
$intDataWarning = 1;
|
|
||||||
}
|
|
||||||
// Process event handler selection field
|
|
||||||
if (isset($arrModifyData['event_handler'])) {
|
|
||||||
$intFieldId = $arrModifyData['event_handler'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn9 = $myVisClass->parseSelectSimple('tbl_command', 'command_name', 'eventhandler', 1, $intFieldId);
|
|
||||||
if ($intReturn9 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process contact and contact group selection field
|
|
||||||
if (isset($arrModifyData['contacts'])) {
|
|
||||||
$intFieldId = $arrModifyData['contacts'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn10 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_contact',
|
|
||||||
'contact_name',
|
|
||||||
'service_contacts',
|
|
||||||
'tbl_lnkServiceToContact',
|
|
||||||
2,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn10 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['contact_groups'])) {
|
|
||||||
$intFieldId = $arrModifyData['contact_groups'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn12 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_contactgroup',
|
|
||||||
'contactgroup_name',
|
|
||||||
'service_contactgroups',
|
|
||||||
'tbl_lnkServiceToContactgroup',
|
|
||||||
2,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn12 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (($intReturn9 != 0) && ($intReturn12 != 0)) {
|
|
||||||
$myVisClass->processMessage(translate('Attention, no contacts or contact groups defined!'), $strDBWarning);
|
|
||||||
$intDataWarning = 1;
|
|
||||||
}
|
|
||||||
// Process access group selection field
|
|
||||||
if (isset($arrModifyData['access_group'])) {
|
|
||||||
$intFieldId = $arrModifyData['access_group'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn13 = $myVisClass->parseSelectSimple('tbl_group', 'groupname', 'acc_group', 0, $intFieldId);
|
|
||||||
if ($intReturn13 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Initial add/modify form definitions
|
|
||||||
$strChbFields = 'ACE,PCE,PAC,FRE,OBS,EVH,FLE,STI,NSI,PED,ISV,NOE,HOS,HOG,SEG,COT,COG,TPL';
|
|
||||||
$myContentClass->addFormInit($conttp, $strChbFields);
|
|
||||||
if ($intDataWarning == 1) {
|
|
||||||
$conttp->setVariable('WARNING', $strDBWarning. '<br>' .translate('Saving not possible!'));
|
|
||||||
}
|
|
||||||
// Insert data from database in "modify" mode
|
|
||||||
if (isset($arrModifyData) && ($chkSelModify == 'modify')) {
|
|
||||||
// Check relation information to find out locked configuration datasets
|
|
||||||
$intLocked = $myDataClass->infoRelation($preTableName, $arrModifyData['id'], $preKeyField);
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strRelMessage);
|
|
||||||
$strInfo = '<br><span class="redmessage">' .translate('Entry cannot be activated because it is used by '
|
|
||||||
. 'another configuration'). ':</span>';
|
|
||||||
$strInfo .= '<br><span class="greenmessage">' .$strRelMessage. '</span>';
|
|
||||||
// Process data
|
|
||||||
$myContentClass->addInsertData($conttp, $arrModifyData, $intLocked, $strInfo, $strChbFields);
|
|
||||||
$conttp->setVariable('DAT_ACE' .$arrModifyData['active_checks_enabled']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_PCE' .$arrModifyData['passive_checks_enabled']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_PAC' .$arrModifyData['parallelize_check']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_FRE' .$arrModifyData['check_freshness']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_OBS' .$arrModifyData['obsess_over_service']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_EVH' .$arrModifyData['event_handler_enabled']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_FLE' .$arrModifyData['flap_detection_enabled']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_STI' .$arrModifyData['retain_status_information']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_NSI' .$arrModifyData['retain_nonstatus_information']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_PED' .$arrModifyData['process_perf_data']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_ISV' .$arrModifyData['is_volatile']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_NOE' .$arrModifyData['notifications_enabled']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_HOS' .$arrModifyData['host_name_tploptions']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_HOG' .$arrModifyData['hostgroup_name_tploptions']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_SEG' .$arrModifyData['servicegroups_tploptions']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_COT' .$arrModifyData['contacts_tploptions']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_COG' .$arrModifyData['contact_groups_tploptions']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_TPL' .$arrModifyData['use_template_tploptions']. '_CHECKED', 'checked');
|
|
||||||
// Special processing for -1 values - write 'null' to integer fields
|
|
||||||
$strIntegerfelder = 'max_check_attempts,check_interval,retry_interval,freshness_threshold,';
|
|
||||||
$strIntegerfelder .= 'low_flap_threshold,high_flap_threshold,notification_interval,first_notification_delay';
|
|
||||||
foreach (explode(',', $strIntegerfelder) as $elem) {
|
|
||||||
if ($arrModifyData[$elem] == -1) {
|
|
||||||
$conttp->setVariable('DAT_' .strtoupper($elem), 'null');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($arrModifyData['check_command'] != '') {
|
|
||||||
$arrArgument = explode('!', $arrModifyData['check_command']);
|
|
||||||
foreach ($arrArgument as $key => $value) {
|
|
||||||
if ($key == 0) {
|
|
||||||
$conttp->setVariable('IFRAME_SRC', $_SESSION['SETS']['path']['base_url'].
|
|
||||||
'admin/commandline.php?cname=' .$value);
|
|
||||||
} else {
|
|
||||||
$value1 = str_replace('::bang::', '!', $value);
|
|
||||||
$value2 = str_replace('::back::', "\\", $value1);
|
|
||||||
$conttp->setVariable('DAT_ARG' .$key, htmlentities($value2, ENT_QUOTES, 'UTF-8'));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Process option fields
|
|
||||||
foreach (explode(',', $arrModifyData['initial_state']) as $elem) {
|
|
||||||
$conttp->setVariable('DAT_IS' .strtoupper($elem). '_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
foreach (explode(',', $arrModifyData['flap_detection_options']) as $elem) {
|
|
||||||
$conttp->setVariable('DAT_FL' .strtoupper($elem). '_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
foreach (explode(',', $arrModifyData['notification_options']) as $elem) {
|
|
||||||
$conttp->setVariable('DAT_NO' .strtoupper($elem). '_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
foreach (explode(',', $arrModifyData['stalking_options']) as $elem) {
|
|
||||||
$conttp->setVariable('DAT_ST' .strtoupper($elem). '_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$conttp->parse('datainsert');
|
|
||||||
$conttp->show('datainsert');
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// List view
|
|
||||||
// ==========
|
|
||||||
if ($chkModus == 'display') {
|
|
||||||
// Initial list view definitions
|
|
||||||
$myContentClass->listViewInit($mastertp);
|
|
||||||
$mastertp->setVariable('TITLE', translate('Define services (services.cfg)'));
|
|
||||||
$mastertp->setVariable('FIELD_1', translate('Config name'));
|
|
||||||
$mastertp->setVariable('FIELD_2', translate('Service name'));
|
|
||||||
// Configuration name selection
|
|
||||||
$mastertp->setVariable('DAT_CONFIGNAME', translate('All configs'));
|
|
||||||
$mastertp->parse('configlist');
|
|
||||||
$strSQL1 = "SELECT DISTINCT `$preKeyField` FROM `$preTableName` WHERE $strDomainWhere ORDER BY `$preKeyField`";
|
|
||||||
$booReturn1 = $myDBClass->hasDataArray($strSQL1, $arrDataConfig, $intDataCount);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} elseif ($intDataCount != 0) {
|
|
||||||
for ($i = 0; $i < $intDataCount; $i++) {
|
|
||||||
$mastertp->setVariable('DAT_CONFIGNAME', $arrDataConfig[$i][$preKeyField]);
|
|
||||||
if ($_SESSION['search']['config_selection'] == $arrDataConfig[$i][$preKeyField]) {
|
|
||||||
$mastertp->setVariable('DAT_CONFIGNAME_SEL', 'selected');
|
|
||||||
}
|
|
||||||
$mastertp->parse('configlist');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Process filter string
|
|
||||||
if ($_SESSION['search'][$preSearchSession] != '') {
|
|
||||||
$strSearchTxt = $_SESSION['search'][$preSearchSession];
|
|
||||||
$strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%' OR `service_description` "
|
|
||||||
. "LIKE '%".$strSearchTxt."%' OR `display_name` LIKE '%".$strSearchTxt."%')";
|
|
||||||
}
|
|
||||||
if ($_SESSION['search']['config_selection'] != '') {
|
|
||||||
$strSearchTxt2 = $_SESSION['search']['config_selection'];
|
|
||||||
if ($strSearchTxt2 != translate('All configs')) {
|
|
||||||
$strSearchWhere2 = " AND `$preKeyField` = '".$strSearchTxt2."' ";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Row sorting
|
|
||||||
$strOrderString = "ORDER BY `config_id`,`$preKeyField` $hidSortDir";
|
|
||||||
if ($hidSortBy == 2) {
|
|
||||||
$strOrderString = "ORDER BY `config_id`, `service_description` $hidSortDir";
|
|
||||||
}
|
|
||||||
// Count datasets
|
|
||||||
$strSQL2 = "SELECT count(*) AS `number` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere2 "
|
|
||||||
. "$strSearchWhere AND `access_group` IN ($strAccess)";
|
|
||||||
$booReturn2 = $myDBClass->hasSingleDataset($strSQL2, $arrDataLinesCount);
|
|
||||||
if ($booReturn2 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$intLineCount = (int)$arrDataLinesCount['number'];
|
|
||||||
if ($intLineCount < $chkLimit) {
|
|
||||||
$chkLimit = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Datensätze holen
|
|
||||||
$strSQL3 = "SELECT `id`, `$preKeyField`, `service_description`, `register`, `active`, `last_modified`, "
|
|
||||||
. "`config_id`, `access_group` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere2 "
|
|
||||||
. "$strSearchWhere AND `access_group` IN ($strAccess) $strOrderString "
|
|
||||||
. "LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
|
||||||
$booReturn3 = $myDBClass->hasDataArray($strSQL3, $arrDataLines, $intDataCount);
|
|
||||||
if ($booReturn3 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process data
|
|
||||||
$myContentClass->listData(
|
|
||||||
$mastertp,
|
|
||||||
$arrDataLines,
|
|
||||||
$intDataCount,
|
|
||||||
$intLineCount,
|
|
||||||
$preKeyField,
|
|
||||||
'service_description',
|
|
||||||
0
|
|
||||||
);
|
|
||||||
if ($myContentClass->strErrorMessage != '') {
|
|
||||||
$myVisClass->processMessage($myContentClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Show messages
|
|
||||||
$arrTimeData = array();
|
|
||||||
$strTimeInfoString = '';
|
|
||||||
$myContentClass->showMessages(
|
|
||||||
$mastertp,
|
|
||||||
$strErrorMessage,
|
|
||||||
$strInfoMessage,
|
|
||||||
$strConsistMessage,
|
|
||||||
$arrTimeData,
|
|
||||||
$strTimeInfoString,
|
|
||||||
$intNoTime
|
|
||||||
);
|
|
||||||
//
|
|
||||||
// Process footer
|
|
||||||
// ==============
|
|
||||||
$myContentClass->showFooter($maintp, $setFileVersion);
|
|
@ -1,683 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Service template definition
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 13;
|
|
||||||
$preContent = 'admin/servicetemplates.htm.tpl';
|
|
||||||
$preListTpl = 'admin/datalist.htm.tpl';
|
|
||||||
$preSearchSession = 'servicetemplate';
|
|
||||||
$preTableName = 'tbl_servicetemplate';
|
|
||||||
$preKeyField = 'template_name';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Data processing
|
|
||||||
// ===============
|
|
||||||
$strNO = substr($chkChbGr1a.$chkChbGr1b.$chkChbGr1c.$chkChbGr1d.$chkChbGr1e.$chkChbGr1f, 0, -1);
|
|
||||||
$strIS = substr($chkChbGr2a.$chkChbGr2b.$chkChbGr2c.$chkChbGr2d, 0, -1);
|
|
||||||
$strFL = substr($chkChbGr3a.$chkChbGr3b.$chkChbGr3c.$chkChbGr3d, 0, -1);
|
|
||||||
$strST = substr($chkChbGr4a.$chkChbGr4b.$chkChbGr4c.$chkChbGr4d, 0, -1);
|
|
||||||
if ($chkSelValue1 != '') {
|
|
||||||
for ($i = 1; $i <= 8; $i++) {
|
|
||||||
$tmpVar = 'chkTfArg'.$i;
|
|
||||||
if ($$tmpVar != '') {
|
|
||||||
$chkSelValue1 .= '!' .$$tmpVar;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Add or modify data
|
|
||||||
// ==================
|
|
||||||
if ((($chkModus == 'insert') || ($chkModus == 'modify')) && ($intGlobalWriteAccess == 0)) {
|
|
||||||
$strSQLx = "`$preTableName` SET `$preKeyField`='$chkTfValue1', `host_name`=$intMselValue1, "
|
|
||||||
. "`host_name_tploptions`=$chkRadValue1, `hostgroup_name`=$intMselValue2, "
|
|
||||||
. "`hostgroup_name_tploptions`=$chkRadValue2, `service_description`='$chkTfValue2', "
|
|
||||||
. "`display_name`='$chkTfValue3', `parents`=$intMselValue6, `parents_tploptions`=$chkRadValue18, "
|
|
||||||
. "`importance`=$chkTfNullVal9, `servicegroups`=$intMselValue3, "
|
|
||||||
. "`servicegroups_tploptions`=$chkRadValue3, `check_command`='$chkSelValue1', "
|
|
||||||
. "`use_template`=$intTemplates, `is_volatile`=$chkRadValue16, `initial_state`='$strIS', "
|
|
||||||
. "`max_check_attempts`=$chkTfNullVal2, `check_interval`=$chkTfNullVal3, `retry_interval`=$chkTfNullVal1, "
|
|
||||||
. "`active_checks_enabled`=$chkRadValue6, `passive_checks_enabled`=$chkRadValue7, "
|
|
||||||
. "`check_period`=$chkSelValue2, `parallelize_check`=$chkRadValue8, `obsess_over_service`=$chkRadValue10, "
|
|
||||||
. "`check_freshness`=$chkRadValue9, `freshness_threshold`=$chkTfNullVal4, `event_handler`=$chkSelValue3, "
|
|
||||||
. "`event_handler_enabled`=$chkRadValue11, `low_flap_threshold`=$chkTfNullVal5, "
|
|
||||||
. "`high_flap_threshold`=$chkTfNullVal6, `flap_detection_enabled`=$chkRadValue12, "
|
|
||||||
. "`flap_detection_options`='$strFL', `process_perf_data`=$chkRadValue15, "
|
|
||||||
. "`retain_status_information`=$chkRadValue13, `retain_nonstatus_information`=$chkRadValue14, "
|
|
||||||
. "`contacts`=$intMselValue4, `contacts_tploptions`=$chkRadValue4, `contact_groups`=$intMselValue5, "
|
|
||||||
. "`contact_groups_tploptions`=$chkRadValue5, `notification_interval`=$chkTfNullVal7, "
|
|
||||||
. "`notification_period`=$chkSelValue4, `first_notification_delay`=$chkTfNullVal8, "
|
|
||||||
. "`notification_options`='$strNO', `notifications_enabled`=$chkRadValue17, `stalking_options`='$strST', "
|
|
||||||
. "`notes`='$chkTfValue4', `notes_url`='$chkTfValue5', `action_url`='$chkTfValue6', "
|
|
||||||
. "`icon_image`='$chkTfValue7', `icon_image_alt`='$chkTfValue8', `use_variables`=$intVariables, "
|
|
||||||
. $preSQLCommon2;
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$strSQL = 'INSERT INTO ' .$strSQLx;
|
|
||||||
} else {
|
|
||||||
$strSQL = 'UPDATE ' .$strSQLx. ' WHERE `id`=' .$chkDataId;
|
|
||||||
}
|
|
||||||
if ($intWriteAccessId == 0) {
|
|
||||||
if ($chkTfValue1 != '') {
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$chkDataId = $intInsertId;
|
|
||||||
}
|
|
||||||
if ($intReturn == 1) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strInfoMessage);
|
|
||||||
$myDataClass->updateStatusTable($preTableName);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$myDataClass->writeLog(translate('New service template inserted:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$myDataClass->writeLog(translate('Service template modified:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Insert/update relations
|
|
||||||
// =======================
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
if ($intMselValue1 != 0) {
|
|
||||||
$intRet1 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkServicetemplateToHost',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue1
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet1) && ($intRet1 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue2 != 0) {
|
|
||||||
$intRet2 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkServicetemplateToHostgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue2
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet2) && ($intRet3 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue3 != 0) {
|
|
||||||
$intRet3 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkServicetemplateToServicegroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue3
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet3) && ($intRet3 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue4 != 0) {
|
|
||||||
$intRet4 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkServicetemplateToContact',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue4
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet4) && ($intRet4 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue5 != 0) {
|
|
||||||
$intRet5 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkServicetemplateToContactgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue5
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet5) && ($intRet5 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue6 != 0) {
|
|
||||||
$intRet6 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkServicetemplateToService',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue6
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet6) && ($intRet6 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
} elseif ($chkModus == 'modify') {
|
|
||||||
if ($intMselValue1 != 0) {
|
|
||||||
$intRet1 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkServicetemplateToHost',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue1
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet1 = $myDataClass->dataDeleteRelation('tbl_lnkServicetemplateToHost', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet1 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue2 != 0) {
|
|
||||||
$intRet2 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkServicetemplateToHostgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue2
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet2 = $myDataClass->dataDeleteRelation('tbl_lnkServicetemplateToHostgroup', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet2 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue3 != 0) {
|
|
||||||
$intRet3 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkServicetemplateToServicegroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue3
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet3 = $myDataClass->dataDeleteRelation('tbl_lnkServicetemplateToServicegroup', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet3 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue4 != 0) {
|
|
||||||
$intRet4 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkServicetemplateToContact',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue4
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet4 = $myDataClass->dataDeleteRelation('tbl_lnkServicetemplateToContact', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet4 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue5 != 0) {
|
|
||||||
$intRet5 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkServicetemplateToContactgroup',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue5
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet5 = $myDataClass->dataDeleteRelation('tbl_lnkServicetemplateToContactgroup', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet5 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue6 != 0) {
|
|
||||||
$intRet1 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkServicetemplateToService',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue6
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet6 = $myDataClass->dataDeleteRelation('tbl_lnkServicetemplateToService', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet6 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (($intRet1 + $intRet2 + $intRet3 + $intRet4 + $intRet5 + $intRet6) != 0) {
|
|
||||||
$strInfoMessage = '';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Insert/update session data for templates
|
|
||||||
// ========================================
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$strSQL = 'DELETE FROM `tbl_lnkServicetemplateToServicetemplate` WHERE `idMaster`=' .$chkDataId;
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (isset($_SESSION['templatedefinition']) && is_array($_SESSION['templatedefinition']) &&
|
|
||||||
(count($_SESSION['templatedefinition']) != 0)) {
|
|
||||||
$intSortId = 1;
|
|
||||||
/** @noinspection ForeachSourceInspection */
|
|
||||||
foreach ($_SESSION['templatedefinition'] as $elem) {
|
|
||||||
if ($elem['status'] == 0) {
|
|
||||||
$strSQL = 'INSERT INTO `tbl_lnkServicetemplateToServicetemplate` (`idMaster`,`idSlave`,'
|
|
||||||
. "`idTable`,`idSort`) VALUES ($chkDataId,".$elem['idSlave']. ', '
|
|
||||||
. $elem['idTable']. ',' .$intSortId. ')';
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$intSortId++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Insert/update session data for free variables
|
|
||||||
// =============================================
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$strSQL = 'SELECT * FROM `tbl_lnkServicetemplateToVariabledefinition` '
|
|
||||||
. 'WHERE `idMaster`=' .$chkDataId;
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrData, $intDataCount);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intDataCount != 0) {
|
|
||||||
foreach ($arrData as $elem) {
|
|
||||||
$strSQL = 'DELETE FROM `tbl_variabledefinition` WHERE `id`=' .$elem['idSlave'];
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$strSQL = 'DELETE FROM `tbl_lnkServicetemplateToVariabledefinition` '
|
|
||||||
. 'WHERE `idMaster`=' .$chkDataId;
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (isset($_SESSION['variabledefinition']) && is_array($_SESSION['variabledefinition']) &&
|
|
||||||
(count($_SESSION['variabledefinition']) != 0)) {
|
|
||||||
foreach ($_SESSION['variabledefinition'] as $elem) {
|
|
||||||
if ($elem['status'] == 0) {
|
|
||||||
$strSQL1 = 'INSERT INTO `tbl_variabledefinition` (`name`,`value`,`last_modified`) '
|
|
||||||
. "VALUES ('".$elem['definition']."','".$elem['range']."',now())";
|
|
||||||
$intReturn1 = $myDataClass->dataInsert($strSQL1, $intInsertId);
|
|
||||||
if ($intReturn1 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
$strSQL2 = 'INSERT INTO `tbl_lnkServicetemplateToVariabledefinition` (`idMaster`, '
|
|
||||||
. "`idSlave`) VALUES ($chkDataId,$intInsertId)";
|
|
||||||
$intReturn2 = $myDataClass->dataInsert($strSQL2, $intInsertId);
|
|
||||||
if ($intReturn2 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Database entry failed! Not all necessary data filled in!'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Database entry failed! No write access!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
if ($chkModus != 'add') {
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Get date/time of last database and config file manipulation
|
|
||||||
// ===========================================================
|
|
||||||
$intReturn = $myConfigClass->lastModifiedFile($preTableName, $arrTimeData, $strTimeInfoString);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Singe data form
|
|
||||||
// ===============
|
|
||||||
if ($chkModus == 'add') {
|
|
||||||
$conttp->setVariable('TITLE', translate('Define service templates (servicetemplates.cfg)'));
|
|
||||||
// Do not show modified time list
|
|
||||||
$intNoTime = 1;
|
|
||||||
// Process template fields
|
|
||||||
$strWhere = '';
|
|
||||||
if (isset($arrModifyData) && ($chkSelModify == 'modify')) {
|
|
||||||
$strWhere = 'AND `id` <> ' .$arrModifyData['id'];
|
|
||||||
}
|
|
||||||
$strSQL1 = "SELECT `id`, `$preKeyField`, `active` FROM `$preTableName` "
|
|
||||||
. "WHERE $strDomainWhere $strWhere ORDER BY `$preKeyField`";
|
|
||||||
$booReturn1 = $myDBClass->hasDataArray($strSQL1, $arrDataTpl, $intDataCountTpl);
|
|
||||||
if ($booReturn1 == false) {
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intDataCountTpl != 0) {
|
|
||||||
/** @var array $arrDataTpl */
|
|
||||||
foreach ($arrDataTpl as $elem) {
|
|
||||||
if ($elem['active'] == 0) {
|
|
||||||
$strActive = ' [inactive]';
|
|
||||||
$conttp->setVariable('SPECIAL_STYLE', 'inactive_option');
|
|
||||||
} else {
|
|
||||||
$strActive = '';
|
|
||||||
$conttp->setVariable('SPECIAL_STYLE', '');
|
|
||||||
}
|
|
||||||
$conttp->setVariable('DAT_TEMPLATE', htmlspecialchars($elem[$preKeyField], ENT_QUOTES, 'UTF-8').$strActive);
|
|
||||||
$conttp->setVariable('DAT_TEMPLATE_ID', $elem['id']. '::1');
|
|
||||||
$conttp->parse('template');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$strSQL2 = 'SELECT `id`, `name`, `active` FROM `tbl_service` '
|
|
||||||
. "WHERE `name` <> '' AND $strDomainWhere2 ORDER BY `name`";
|
|
||||||
$booReturn2 = $myDBClass->hasDataArray($strSQL2, $arrDataHpl, $intDataCountHpl);
|
|
||||||
if ($booReturn2 == false) {
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intDataCountHpl != 0) {
|
|
||||||
/** @var array $arrDataHpl */
|
|
||||||
foreach ($arrDataHpl as $elem) {
|
|
||||||
if ($elem['active'] == 0) {
|
|
||||||
$strActive = ' [inactive]';
|
|
||||||
$conttp->setVariable('SPECIAL_STYLE', 'inactive_option');
|
|
||||||
} else {
|
|
||||||
$strActive = '';
|
|
||||||
$conttp->setVariable('SPECIAL_STYLE', '');
|
|
||||||
}
|
|
||||||
$conttp->setVariable('DAT_TEMPLATE', htmlspecialchars($elem['name'], ENT_QUOTES, 'UTF-8').$strActive);
|
|
||||||
$conttp->setVariable('DAT_TEMPLATE_ID', $elem['id']. '::2');
|
|
||||||
$conttp->parse('template');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Process host selection field
|
|
||||||
if (isset($arrModifyData['host_name'])) {
|
|
||||||
$intFieldId = $arrModifyData['host_name'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn1 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_host',
|
|
||||||
'host_name',
|
|
||||||
'hosts',
|
|
||||||
'tbl_lnkServicetemplateToHost',
|
|
||||||
2,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn1 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['hostgroup_name'])) {
|
|
||||||
$intFieldId = $arrModifyData['hostgroup_name'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn2 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_hostgroup',
|
|
||||||
'hostgroup_name',
|
|
||||||
'hostgroup',
|
|
||||||
'tbl_lnkServicetemplateToHostgroup',
|
|
||||||
2,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn2 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process service selection field
|
|
||||||
if (isset($arrModifyData['parents'])) {
|
|
||||||
$intFieldId = $arrModifyData['parents'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['id'])) {
|
|
||||||
$intKeyId = $arrModifyData['id'];
|
|
||||||
} else {
|
|
||||||
$intKeyId = 0;
|
|
||||||
}
|
|
||||||
$intReturn3 = $myVisClass->parseSelectMulti(
|
|
||||||
$preTableName,
|
|
||||||
$preKeyField,
|
|
||||||
'service_parents',
|
|
||||||
'tbl_lnkServicetemplateToService',
|
|
||||||
0,
|
|
||||||
$intFieldId,
|
|
||||||
$intKeyId
|
|
||||||
);
|
|
||||||
if ($intReturn3 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process service groups selection field
|
|
||||||
if (isset($arrModifyData['servicegroups'])) {
|
|
||||||
$intFieldId = $arrModifyData['servicegroups'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn3 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_servicegroup',
|
|
||||||
'servicegroup_name',
|
|
||||||
'servicegroup',
|
|
||||||
'tbl_lnkServicetemplateToServicegroup',
|
|
||||||
0,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn3 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process check command selection field
|
|
||||||
if (isset($arrModifyData['check_command']) && ($arrModifyData['check_command'] != '')) {
|
|
||||||
$arrCommand = explode('!', $arrModifyData['check_command']);
|
|
||||||
$intFieldId = $arrCommand[0];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn4 = $myVisClass->parseSelectSimple('tbl_command', 'command_name', 'servicecommand', 2, $intFieldId);
|
|
||||||
if ($intReturn4 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process check period selection field
|
|
||||||
if (isset($arrModifyData['check_period'])) {
|
|
||||||
$intFieldId = $arrModifyData['check_period'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn5 = $myVisClass->parseSelectSimple('tbl_timeperiod', 'timeperiod_name', 'checkperiod', 1, $intFieldId);
|
|
||||||
if ($intReturn5 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['notification_period'])) {
|
|
||||||
$intFieldId = $arrModifyData['notification_period'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn6 = $myVisClass->parseSelectSimple('tbl_timeperiod', 'timeperiod_name', 'notifyperiod', 1, $intFieldId);
|
|
||||||
if ($intReturn6 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process event handler selection field
|
|
||||||
if (isset($arrModifyData['event_handler'])) {
|
|
||||||
$intFieldId = $arrModifyData['event_handler'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn7 = $myVisClass->parseSelectSimple('tbl_command', 'command_name', 'eventhandler', 1, $intFieldId);
|
|
||||||
if ($intReturn7 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process contact and contact group selection field
|
|
||||||
if (isset($arrModifyData['contacts'])) {
|
|
||||||
$intFieldId = $arrModifyData['contacts'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn8 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_contact',
|
|
||||||
'contact_name',
|
|
||||||
'service_contacts',
|
|
||||||
'tbl_lnkServicetemplateToContact',
|
|
||||||
2,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn8 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if (isset($arrModifyData['contact_groups'])) {
|
|
||||||
$intFieldId = $arrModifyData['contact_groups'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn9 = $myVisClass->parseSelectMulti(
|
|
||||||
'tbl_contactgroup',
|
|
||||||
'contactgroup_name',
|
|
||||||
'service_contactgroups',
|
|
||||||
'tbl_lnkServicetemplateToContactgroup',
|
|
||||||
2,
|
|
||||||
$intFieldId
|
|
||||||
);
|
|
||||||
if ($intReturn9 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process access group selection field
|
|
||||||
if (isset($arrModifyData['access_group'])) {
|
|
||||||
$intFieldId = $arrModifyData['access_group'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn10 = $myVisClass->parseSelectSimple('tbl_group', 'groupname', 'acc_group', 0, $intFieldId);
|
|
||||||
if ($intReturn10 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Initial add/modify form definitions
|
|
||||||
$strChbFields = 'ACE,PCE,PAC,FRE,OBS,EVH,FLE,STI,NSI,PED,ISV,NOE,HOS,HOG,SEG,COT,COG,TPL';
|
|
||||||
$myContentClass->addFormInit($conttp, $strChbFields);
|
|
||||||
if ($intDataWarning == 1) {
|
|
||||||
$conttp->setVariable('WARNING', $strDBWarning. '<br>' .translate('Saving not possible!'));
|
|
||||||
}
|
|
||||||
// Insert data from database in "modify" mode
|
|
||||||
if (isset($arrModifyData) && ($chkSelModify == 'modify')) {
|
|
||||||
// Check relation information to find out locked configuration datasets
|
|
||||||
$intLocked = $myDataClass->infoRelation($preTableName, $arrModifyData['id'], $preKeyField);
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strRelMessage);
|
|
||||||
$strInfo = '<br><span class="redmessage">' .translate('Entry cannot be activated because it is used by '
|
|
||||||
. 'another configuration'). ':</span>';
|
|
||||||
$strInfo .= '<br><span class="greenmessage">' .$strRelMessage. '</span>';
|
|
||||||
// Process data
|
|
||||||
$myContentClass->addInsertData($conttp, $arrModifyData, $intLocked, $strInfo, $strChbFields);
|
|
||||||
$conttp->setVariable('DAT_ACE' .$arrModifyData['active_checks_enabled']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_PCE' .$arrModifyData['passive_checks_enabled']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_PAC' .$arrModifyData['parallelize_check']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_FRE' .$arrModifyData['check_freshness']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_OBS' .$arrModifyData['obsess_over_service']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_EVH' .$arrModifyData['event_handler_enabled']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_FLE' .$arrModifyData['flap_detection_enabled']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_STI' .$arrModifyData['retain_status_information']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_NSI' .$arrModifyData['retain_nonstatus_information']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_PED' .$arrModifyData['process_perf_data']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_ISV' .$arrModifyData['is_volatile']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_NOE' .$arrModifyData['notifications_enabled']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_HOS' .$arrModifyData['host_name_tploptions']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_HOG' .$arrModifyData['hostgroup_name_tploptions']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_SEG' .$arrModifyData['servicegroups_tploptions']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_COT' .$arrModifyData['contacts_tploptions']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_COG' .$arrModifyData['contact_groups_tploptions']. '_CHECKED', 'checked');
|
|
||||||
$conttp->setVariable('DAT_TPL' .$arrModifyData['use_template_tploptions']. '_CHECKED', 'checked');
|
|
||||||
// Special processing for -1 values - write 'null' to integer fields
|
|
||||||
$strIntegerfelder = 'max_check_attempts,check_interval,retry_interval,freshness_threshold,low_flap_threshold,';
|
|
||||||
$strIntegerfelder .= 'high_flap_threshold,notification_interval,first_notification_delay';
|
|
||||||
foreach (explode(',', $strIntegerfelder) as $elem) {
|
|
||||||
if ($arrModifyData[$elem] == -1) {
|
|
||||||
$conttp->setVariable('DAT_' .strtoupper($elem), 'null');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($arrModifyData['check_command'] != '') {
|
|
||||||
$arrArgument = explode('!', $arrModifyData['check_command']);
|
|
||||||
foreach ($arrArgument as $key => $value) {
|
|
||||||
if ($key == 0) {
|
|
||||||
$conttp->setVariable('IFRAME_SRC', $_SESSION['SETS']['path']['base_url'].
|
|
||||||
'admin/commandline.php?cname=' .$value);
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('DAT_ARG' .$key, htmlentities($value, ENT_QUOTES, 'UTF-8'));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Process option fields
|
|
||||||
foreach (explode(',', $arrModifyData['initial_state']) as $elem) {
|
|
||||||
$conttp->setVariable('DAT_IS' .strtoupper($elem). '_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
foreach (explode(',', $arrModifyData['flap_detection_options']) as $elem) {
|
|
||||||
$conttp->setVariable('DAT_FL' .strtoupper($elem). '_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
foreach (explode(',', $arrModifyData['notification_options']) as $elem) {
|
|
||||||
$conttp->setVariable('DAT_NO' .strtoupper($elem). '_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
foreach (explode(',', $arrModifyData['stalking_options']) as $elem) {
|
|
||||||
$conttp->setVariable('DAT_ST' .strtoupper($elem). '_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$conttp->parse('datainsert');
|
|
||||||
$conttp->show('datainsert');
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// List view
|
|
||||||
// ==========
|
|
||||||
if ($chkModus == 'display') {
|
|
||||||
// Initial list view definitions
|
|
||||||
$myContentClass->listViewInit($mastertp);
|
|
||||||
$mastertp->setVariable('TITLE', translate('Define service templates (servicetemplates.cfg)'));
|
|
||||||
$mastertp->setVariable('FIELD_1', translate('Template name'));
|
|
||||||
$mastertp->setVariable('FIELD_2', translate('Service description'));
|
|
||||||
// Process filter string
|
|
||||||
if ($_SESSION['search'][$preSearchSession] != '') {
|
|
||||||
$strSearchTxt = $_SESSION['search'][$preSearchSession];
|
|
||||||
$strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%' OR `service_description` "
|
|
||||||
. "LIKE '%".$strSearchTxt."%' OR `display_name` LIKE '%".$strSearchTxt."%')";
|
|
||||||
}
|
|
||||||
// Row sorting
|
|
||||||
$strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir";
|
|
||||||
if ($hidSortBy == 2) {
|
|
||||||
$strOrderString = "ORDER BY `config_id`, `service_description` $hidSortDir";
|
|
||||||
}
|
|
||||||
// Count datasets
|
|
||||||
$strSQL1 = "SELECT count(*) AS `number` FROM `$preTableName` "
|
|
||||||
. "WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)";
|
|
||||||
$booReturn1 = $myDBClass->hasSingleDataset($strSQL1, $arrDataLinesCount);
|
|
||||||
if ($booReturn1 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$intLineCount = (int)$arrDataLinesCount['number'];
|
|
||||||
if ($intLineCount < $chkLimit) {
|
|
||||||
$chkLimit = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Get datasets
|
|
||||||
$strSQL2 = "SELECT `id`, `$preKeyField`, `service_description`, `register`, `active`, `last_modified`, "
|
|
||||||
. "`config_id`, `access_group` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere "
|
|
||||||
. "AND `access_group` IN ($strAccess) $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
|
||||||
$booReturn2 = $myDBClass->hasDataArray($strSQL2, $arrDataLines, $intDataCount);
|
|
||||||
if ($booReturn2 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process data
|
|
||||||
$myContentClass->listData(
|
|
||||||
$mastertp,
|
|
||||||
$arrDataLines,
|
|
||||||
$intDataCount,
|
|
||||||
$intLineCount,
|
|
||||||
$preKeyField,
|
|
||||||
'service_description',
|
|
||||||
0
|
|
||||||
);
|
|
||||||
}
|
|
||||||
// Show messages
|
|
||||||
$myContentClass->showMessages(
|
|
||||||
$mastertp,
|
|
||||||
$strErrorMessage,
|
|
||||||
$strInfoMessage,
|
|
||||||
$strConsistMessage,
|
|
||||||
$arrTimeData,
|
|
||||||
$strTimeInfoString,
|
|
||||||
$intNoTime
|
|
||||||
);
|
|
||||||
//
|
|
||||||
// Process footer
|
|
||||||
// ==============
|
|
||||||
$myContentClass->showFooter($maintp, $setFileVersion);
|
|
@ -1,329 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Settings configuration
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 38;
|
|
||||||
$preContent = 'admin/settings.htm.tpl';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
$arrSQL = array();
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Process initial values
|
|
||||||
// ======================
|
|
||||||
if (filter_input(INPUT_POST, 'tfValue1') == null) {
|
|
||||||
$chkTfValue1 = $SETS['path']['tempdir'];
|
|
||||||
}
|
|
||||||
if (filter_input(INPUT_POST, 'tfValue2') == null) {
|
|
||||||
$chkTfValue2 = $SETS['data']['encoding'];
|
|
||||||
}
|
|
||||||
if (filter_input(INPUT_POST, 'tfValue3') == null) {
|
|
||||||
$chkTfValue3 = $SETS['db']['server'];
|
|
||||||
}
|
|
||||||
if (filter_input(INPUT_POST, 'tfValue4') == null) {
|
|
||||||
$chkTfValue4 = $SETS['db']['port'];
|
|
||||||
}
|
|
||||||
if (filter_input(INPUT_POST, 'tfValue5') == null) {
|
|
||||||
$chkTfValue5 = $SETS['db']['database'];
|
|
||||||
}
|
|
||||||
if (filter_input(INPUT_POST, 'tfValue6') == null) {
|
|
||||||
$chkTfValue6 = $SETS['db']['username'];
|
|
||||||
}
|
|
||||||
if (filter_input(INPUT_POST, 'tfValue7') == null) {
|
|
||||||
$chkTfValue7 = $SETS['db']['password'];
|
|
||||||
}
|
|
||||||
if (filter_input(INPUT_POST, 'tfValue8') == null) {
|
|
||||||
$chkTfValue8 = $SETS['security']['logofftime'];
|
|
||||||
}
|
|
||||||
if (filter_input(INPUT_POST, 'tfValue9') == null) {
|
|
||||||
$chkTfValue9 = $SETS['common']['pagelines'];
|
|
||||||
}
|
|
||||||
if (filter_input(INPUT_POST, 'tfValue10') == null) {
|
|
||||||
$chkTfValue10 = $SETS['network']['proxyserver'];
|
|
||||||
}
|
|
||||||
if (filter_input(INPUT_POST, 'tfValue11') == null) {
|
|
||||||
$chkTfValue11 = $SETS['network']['proxyuser'];
|
|
||||||
}
|
|
||||||
if (filter_input(INPUT_POST, 'tfValue12') == null) {
|
|
||||||
$chkTfValue12 = $SETS['network']['proxypasswd'];
|
|
||||||
}
|
|
||||||
if (filter_input(INPUT_POST, 'selValue3') == null) {
|
|
||||||
$chkSelValue3 = $SETS['security']['wsauth'];
|
|
||||||
}
|
|
||||||
if (filter_input(INPUT_POST, 'selValue4') == null) {
|
|
||||||
$chkSelValue4 = $SETS['common']['seldisable'];
|
|
||||||
}
|
|
||||||
if (filter_input(INPUT_POST, 'radValue1') == null) {
|
|
||||||
$chkRadValue1 = $SETS['common']['tplcheck'];
|
|
||||||
}
|
|
||||||
if (filter_input(INPUT_POST, 'radValue2') == null) {
|
|
||||||
$chkRadValue2 = $SETS['common']['updcheck'];
|
|
||||||
}
|
|
||||||
if (filter_input(INPUT_POST, 'radValue3') == null) {
|
|
||||||
$chkRadValue3 = $SETS['network']['proxy'];
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Save changes
|
|
||||||
// ============
|
|
||||||
if (filter_input(INPUT_POST, 'selValue1')) {
|
|
||||||
//
|
|
||||||
// Write settings to database
|
|
||||||
// ==========================
|
|
||||||
if ($chkSelValue1 == 2) {
|
|
||||||
$strProtocol = 'https';
|
|
||||||
} else {
|
|
||||||
$strProtocol = 'http';
|
|
||||||
}
|
|
||||||
$strLocale = $myDBClass->getFieldData("SELECT `locale` FROM `tbl_language` WHERE `id`='".$chkSelValue2."'");
|
|
||||||
if ($strLocale == '') {
|
|
||||||
$strLocale = 'en_GB';
|
|
||||||
}
|
|
||||||
$SETS['path']['protocol'] = $strProtocol;
|
|
||||||
$SETS['data']['locale'] = $strLocale;
|
|
||||||
// Check Proxy via curl
|
|
||||||
if (!function_exists('curl_init')) {
|
|
||||||
$myVisClass->processMessage(translate('Curl module not loaded, Proxy will be deactivated!'), $strErrorMessage);
|
|
||||||
$chkRadValue3 = 0;
|
|
||||||
}
|
|
||||||
// Check base paths
|
|
||||||
$strSQLBase = "UPDATE `tbl_settings` SET `value`='%s' WHERE `category`='%s' AND `name`='%s'";
|
|
||||||
$arrSQL[] = sprintf($strSQLBase, $strProtocol, 'path', 'protocol');
|
|
||||||
$arrSQL[] = sprintf($strSQLBase, $chkTfValue1, 'path', 'tempdir');
|
|
||||||
$arrSQL[] = sprintf($strSQLBase, $preRelPath, 'path', 'base_url');
|
|
||||||
$arrSQL[] = sprintf($strSQLBase, $preBasePath, 'path', 'base_path');
|
|
||||||
$arrSQL[] = sprintf($strSQLBase, $strLocale, 'data', 'locale');
|
|
||||||
$arrSQL[] = sprintf($strSQLBase, $chkTfValue2, 'data', 'encoding');
|
|
||||||
$arrSQL[] = sprintf($strSQLBase, $chkTfValue8, 'security', 'logofftime');
|
|
||||||
$arrSQL[] = sprintf($strSQLBase, $chkSelValue3, 'security', 'wsauth');
|
|
||||||
$arrSQL[] = sprintf($strSQLBase, $chkTfValue9, 'common', 'pagelines');
|
|
||||||
$arrSQL[] = sprintf($strSQLBase, $chkSelValue4, 'common', 'seldisable');
|
|
||||||
$arrSQL[] = sprintf($strSQLBase, $chkRadValue1, 'common', 'tplcheck');
|
|
||||||
$arrSQL[] = sprintf($strSQLBase, $chkRadValue2, 'common', 'updcheck');
|
|
||||||
$arrSQL[] = sprintf($strSQLBase, $chkRadValue3, 'network', 'proxy');
|
|
||||||
$arrSQL[] = sprintf($strSQLBase, $chkTfValue10, 'network', 'proxyserver');
|
|
||||||
$arrSQL[] = sprintf($strSQLBase, $chkTfValue11, 'network', 'proxyuser');
|
|
||||||
$arrSQL[] = sprintf($strSQLBase, $chkTfValue12, 'network', 'proxypasswd');
|
|
||||||
foreach ($arrSQL as $elem) {
|
|
||||||
$booReturn = $myDBClass->insertData($elem);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('An error occured while writing settings to database:'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Write db settings to file
|
|
||||||
if (is_writable($preBasePath. 'config/settings.php')) {
|
|
||||||
$filSettings = fopen($preBasePath. 'config/settings.php', 'wb');
|
|
||||||
if ($filSettings) {
|
|
||||||
fwrite($filSettings, "<?php\n");
|
|
||||||
fwrite($filSettings, "exit;\n");
|
|
||||||
fwrite($filSettings, "?>\n");
|
|
||||||
fwrite($filSettings, ";///////////////////////////////////////////////////////////////////////////////\n");
|
|
||||||
fwrite($filSettings, ";\n");
|
|
||||||
fwrite($filSettings, "; NagiosQL\n");
|
|
||||||
fwrite($filSettings, ";\n");
|
|
||||||
fwrite($filSettings, ";///////////////////////////////////////////////////////////////////////////////\n");
|
|
||||||
fwrite($filSettings, ";\n");
|
|
||||||
fwrite($filSettings, "; Project : NagiosQL\n");
|
|
||||||
fwrite($filSettings, "; Component: Database Configuration\n");
|
|
||||||
fwrite($filSettings, "; Website : https://sourceforge.net/projects/nagiosql/\n");
|
|
||||||
fwrite($filSettings, '; Date : ' .date('F j, Y, g:i a')."\n");
|
|
||||||
fwrite($filSettings, '; Version : ' .$setFileVersion."\n");
|
|
||||||
fwrite($filSettings, ";\n");
|
|
||||||
fwrite($filSettings, ";///////////////////////////////////////////////////////////////////////////////\n");
|
|
||||||
fwrite($filSettings, "[db]\n");
|
|
||||||
fwrite($filSettings, "type = mysqli\n");
|
|
||||||
fwrite($filSettings, 'server = ' .$chkTfValue3."\n");
|
|
||||||
fwrite($filSettings, 'port = ' .$chkTfValue4."\n");
|
|
||||||
fwrite($filSettings, 'database = ' .$chkTfValue5."\n");
|
|
||||||
fwrite($filSettings, 'username = ' .$chkTfValue6."\n");
|
|
||||||
fwrite($filSettings, 'password = ' .$chkTfValue7."\n");
|
|
||||||
fwrite($filSettings, "[path]\n");
|
|
||||||
fwrite($filSettings, 'base_url = ' .$preRelPath."\n");
|
|
||||||
fwrite($filSettings, 'base_path = ' .$preBasePath."\n");
|
|
||||||
fclose($filSettings);
|
|
||||||
// Activate new language settings
|
|
||||||
$arrLocale = explode('.', $strLocale);
|
|
||||||
$strDomain = $arrLocale[0];
|
|
||||||
$loc = setlocale(
|
|
||||||
LC_ALL,
|
|
||||||
$strLocale,
|
|
||||||
$strLocale. '.utf-8',
|
|
||||||
$strLocale. '.utf-8',
|
|
||||||
$strLocale. '.utf8',
|
|
||||||
'en_GB',
|
|
||||||
'en_GB.utf-8',
|
|
||||||
'en_GB.utf8'
|
|
||||||
);
|
|
||||||
if (!isset($loc)) {
|
|
||||||
$myVisClass->processMessage(translate('Error setting the correct locale. Please report this error '
|
|
||||||
. "with the associated output of 'locale -a'"), $strErrorMessage);
|
|
||||||
}
|
|
||||||
putenv('LC_ALL=' .$strLocale. '.utf-8');
|
|
||||||
putenv('LANG=' .$strLocale. '.utf-8');
|
|
||||||
bindtextdomain($strLocale, $preBasePath. 'config/locale');
|
|
||||||
bind_textdomain_codeset($strLocale, $chkTfValue2);
|
|
||||||
textdomain($strLocale);
|
|
||||||
$myVisClass->processMessage(translate('Settings were changed'), $strInfoMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('An error occured while writing settings.php. Please '
|
|
||||||
. 'check permissions!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($preBasePath. 'config/settings.php ' .translate('is not writeable, please '
|
|
||||||
. 'check permissions!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Start content
|
|
||||||
// =============
|
|
||||||
$conttp->setVariable('TITLE', translate('Configure Settings'));
|
|
||||||
foreach ($arrDescription as $elem) {
|
|
||||||
$conttp->setVariable($elem['name'], $elem['string']);
|
|
||||||
}
|
|
||||||
$conttp->setVariable('ACTION_INSERT', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$conttp->setVariable('LANG_DESCRIPTION', translate('Change your current NagiosQL settings (e.g. Database user, '
|
|
||||||
. 'Language).'));
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// =============
|
|
||||||
$conttp->setVariable('PATH', translate('Path'));
|
|
||||||
$conttp->setVariable('TEMPDIR_NAME', translate('Temporary Directory'));
|
|
||||||
$conttp->setVariable('TEMPDIR_VALUE', htmlspecialchars($chkTfValue1, ENT_QUOTES, 'utf-8'));
|
|
||||||
$conttp->setVariable('PROTOCOL_NAME', translate('Server protocol'));
|
|
||||||
$conttp->setVariable(strtoupper($SETS['path']['protocol']). '_SELECTED', 'selected');
|
|
||||||
//
|
|
||||||
// Data settings
|
|
||||||
// =============
|
|
||||||
$conttp->setVariable('DATA', translate('Language'));
|
|
||||||
$conttp->setVariable('LOCALE', translate('Language'));
|
|
||||||
// Process language selection field
|
|
||||||
$strSQL = "SELECT * FROM `tbl_language` WHERE `active`='1' ORDER BY `id`";
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrData, $intDataCount);
|
|
||||||
if ($booReturn && ($intDataCount != 0)) {
|
|
||||||
foreach ($arrData as $elem) {
|
|
||||||
$conttp->setVariable('LANGUAGE_ID', $elem['id']);
|
|
||||||
$conttp->setVariable('LANGUAGE_NAME', translate($elem['language']));
|
|
||||||
if ($elem['locale'] == $SETS['data']['locale']) {
|
|
||||||
$conttp->setVariable('LANGUAGE_SELECTED', 'selected');
|
|
||||||
}
|
|
||||||
$conttp->parse('language');
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
$conttp->setVariable('ENCODING_NAME', translate('Encoding'));
|
|
||||||
$conttp->setVariable('ENCODING_VALUE', htmlspecialchars($chkTfValue2, ENT_QUOTES, 'utf-8'));
|
|
||||||
//
|
|
||||||
// Database settings
|
|
||||||
// =================
|
|
||||||
$conttp->setVariable('DB', translate('Database'));
|
|
||||||
$conttp->setVariable('SERVER_NAME', translate('MySQL Server'));
|
|
||||||
$conttp->setVariable('SERVER_VALUE', htmlspecialchars($chkTfValue3, ENT_QUOTES, 'utf-8'));
|
|
||||||
$conttp->setVariable('SERVER_PORT', translate('MySQL Server Port'));
|
|
||||||
$conttp->setVariable('PORT_VALUE', htmlspecialchars($chkTfValue4, ENT_QUOTES, 'utf-8'));
|
|
||||||
$conttp->setVariable('DATABASE_NAME', translate('Database name'));
|
|
||||||
$conttp->setVariable('DATABASE_VALUE', htmlspecialchars($chkTfValue5, ENT_QUOTES, 'utf-8'));
|
|
||||||
$conttp->setVariable('USERNAME_NAME', translate('Database user'));
|
|
||||||
$conttp->setVariable('USERNAME_VALUE', htmlspecialchars($chkTfValue6, ENT_QUOTES, 'utf-8'));
|
|
||||||
$conttp->setVariable('PASSWORD_NAME', translate('Database password'));
|
|
||||||
$conttp->setVariable('PASSWORD_VALUE', htmlspecialchars($chkTfValue7, ENT_QUOTES, 'utf-8'));
|
|
||||||
//
|
|
||||||
// Security settings
|
|
||||||
// =================
|
|
||||||
$conttp->setVariable('SECURITY', translate('Security'));
|
|
||||||
$conttp->setVariable('LOGOFFTIME_NAME', translate('Session auto logoff time'));
|
|
||||||
$conttp->setVariable('LOGOFFTIME_VALUE', htmlspecialchars($chkTfValue8, ENT_QUOTES, 'utf-8'));
|
|
||||||
$conttp->setVariable('WSAUTH_NAME', translate('Authentication type'));
|
|
||||||
$conttp->setVariable('WSAUTH_' .$chkSelValue3. '_SELECTED', 'selected');
|
|
||||||
//
|
|
||||||
// Common settings
|
|
||||||
// ===============
|
|
||||||
$conttp->setVariable('COMMON', translate('Common'));
|
|
||||||
$conttp->setVariable('PAGELINES_NAME', translate('Data lines per page'));
|
|
||||||
$conttp->setVariable('PAGELINES_VALUE', htmlspecialchars($chkTfValue9, ENT_QUOTES, 'utf-8'));
|
|
||||||
$conttp->setVariable('SELDISABLE_NAME', translate('Selection method'));
|
|
||||||
$conttp->setVariable('SELDISABLE_' .$chkSelValue4. '_SELECTED', 'selected');
|
|
||||||
//
|
|
||||||
// Template Check
|
|
||||||
// ==============
|
|
||||||
$conttp->setVariable('TEMPLATE_CHECK', translate('Template warn message'));
|
|
||||||
$conttp->setVariable('LANG_ENABLE', translate('Enable'));
|
|
||||||
$conttp->setVariable('LANG_DISABLE', translate('Disable'));
|
|
||||||
$conttp->setVariable('TPL_CHECK_' .$chkRadValue1. '_CHECKED', 'checked');
|
|
||||||
//
|
|
||||||
// Online version check
|
|
||||||
// ====================
|
|
||||||
$conttp->setVariable('CLASS_NAME_1', 'elementHide');
|
|
||||||
$conttp->setVariable('CLASS_NAME_2', 'elementHide');
|
|
||||||
$conttp->setVariable('UPDATE_CHECK', translate('Online version check'));
|
|
||||||
$conttp->setVariable('UPD_CHECK_' .$chkRadValue2. '_CHECKED', 'checked');
|
|
||||||
if ($chkRadValue2 == 1) {
|
|
||||||
$conttp->setVariable('CLASS_NAME_1', 'elementShow');
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Online update proxy settings
|
|
||||||
// ============================
|
|
||||||
$conttp->setVariable('UPD_PROXY_CHECK', translate('Proxyserver'));
|
|
||||||
$conttp->setVariable('UPD_PROXY_' .$chkRadValue3. '_CHECKED', 'checked');
|
|
||||||
if (($chkRadValue3 == 1) && ($chkRadValue2 == 1)) {
|
|
||||||
$conttp->setVariable('CLASS_NAME_2', 'elementShow');
|
|
||||||
}
|
|
||||||
$conttp->setVariable('UPD_PROXY_SERVER', translate('Proxy Address'));
|
|
||||||
$conttp->setVariable('UPD_PROXY_SERVER_VALUE', htmlspecialchars($chkTfValue10, ENT_QUOTES, 'utf-8'));
|
|
||||||
$conttp->setVariable('UPD_PROXY_USERNAME', translate('Proxy Username (optional)'));
|
|
||||||
$conttp->setVariable('UPD_PROXY_USERNAME_VALUE', htmlspecialchars($chkTfValue11, ENT_QUOTES, 'utf-8'));
|
|
||||||
$conttp->setVariable('UPD_PROXY_PASSWORD', translate('Proxy Password (optional)'));
|
|
||||||
$conttp->setVariable('UPD_PROXY_PASSWORD_VALUE', htmlspecialchars($chkTfValue12, ENT_QUOTES, 'utf-8'));
|
|
||||||
//
|
|
||||||
// Requirements of form
|
|
||||||
// ====================
|
|
||||||
$conttp->setVariable('LANG_SAVE', translate('Save'));
|
|
||||||
$conttp->setVariable('LANG_ABORT', translate('Abort'));
|
|
||||||
$conttp->setVariable('LANG_REQUIRED', translate('required'));
|
|
||||||
$conttp->setVariable('ERRORMESSAGE', $strErrorMessage);
|
|
||||||
$conttp->setVariable('INFOMESSAGE', $strInfoMessage);
|
|
||||||
//
|
|
||||||
// Check access rights for adding new objects
|
|
||||||
// ==========================================
|
|
||||||
if ($myVisClass->checkAccountGroup($prePageKey, 'write') != 0) {
|
|
||||||
$conttp->setVariable('ADD_CONTROL', 'disabled="disabled"');
|
|
||||||
}
|
|
||||||
$conttp->parse('settingssite');
|
|
||||||
$conttp->show('settingssite');
|
|
||||||
//
|
|
||||||
// Footer ausgeben
|
|
||||||
// ===============
|
|
||||||
$maintp->setVariable('VERSION_INFO', "<a href='https://sourceforge.net/projects/nagiosql/' "
|
|
||||||
. "target='_blank'>NagiosQL</a> $setFileVersion");
|
|
||||||
$maintp->parse('footer');
|
|
||||||
$maintp->show('footer');
|
|
@ -1,112 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Specials overview
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 5;
|
|
||||||
$preContent = 'admin/mainpages.htm.tpl';
|
|
||||||
//
|
|
||||||
// Include preprocessing file
|
|
||||||
// ==========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
//
|
|
||||||
// Include content
|
|
||||||
// ===============
|
|
||||||
$conttp->setVariable('TITLE', translate('Misc commands'));
|
|
||||||
$conttp->parse('header');
|
|
||||||
$conttp->show('header');
|
|
||||||
$conttp->setVariable('DESC', translate('Define host and service dependencies, host and service escalations as well '.
|
|
||||||
'as host and service additional data.'));
|
|
||||||
$conttp->setVariable('STATISTICS', translate('Statistical datas'));
|
|
||||||
$conttp->setVariable('TYPE', translate('Group'));
|
|
||||||
$conttp->setVariable('ACTIVE', translate('Active'));
|
|
||||||
$conttp->setVariable('INACTIVE', translate('Inactive'));
|
|
||||||
//
|
|
||||||
// Include statistical data
|
|
||||||
// ========================
|
|
||||||
// Get read access groups
|
|
||||||
$strAccess = $myVisClass->getAccessGroups('read');
|
|
||||||
$intAccessGrp19 = (int)$myDBClass->getFieldData('SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=19');
|
|
||||||
$intAccessGrp20 = (int)$myDBClass->getFieldData('SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=20');
|
|
||||||
$intAccessGrp21 = (int)$myDBClass->getFieldData('SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=21');
|
|
||||||
$intAccessGrp22 = (int)$myDBClass->getFieldData('SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=22');
|
|
||||||
$intAccessGrp23 = (int)$myDBClass->getFieldData('SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=23');
|
|
||||||
$intAccessGrp24 = (int)$myDBClass->getFieldData('SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=24');
|
|
||||||
if ($myVisClass->checkAccountGroup($intAccessGrp19, 'read') == 0) {
|
|
||||||
$conttp->setVariable('NAME', translate('Host dependencies'));
|
|
||||||
$conttp->setVariable('ACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_hostdependency` '
|
|
||||||
. "WHERE `active`='1' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->setVariable('INACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_hostdependency` '
|
|
||||||
. "WHERE `active`='0' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->parse('statisticrow');
|
|
||||||
}
|
|
||||||
if ($myVisClass->checkAccountGroup($intAccessGrp20, 'read') == 0) {
|
|
||||||
$conttp->setVariable('NAME', translate('Host escalations'));
|
|
||||||
$conttp->setVariable('ACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_hostescalation` '
|
|
||||||
. "WHERE `active`='1' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->setVariable('INACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_hostescalation` '
|
|
||||||
. "WHERE `active`='0' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->parse('statisticrow');
|
|
||||||
}
|
|
||||||
if ($myVisClass->checkAccountGroup($intAccessGrp21, 'read') == 0) {
|
|
||||||
$conttp->setVariable('NAME', translate('Host ext. info'));
|
|
||||||
$conttp->setVariable('ACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_hostextinfo` '
|
|
||||||
. "WHERE `active`='1' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->setVariable('INACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_hostextinfo` '
|
|
||||||
. "WHERE `active`='0' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->parse('statisticrow');
|
|
||||||
}
|
|
||||||
if ($myVisClass->checkAccountGroup($intAccessGrp22, 'read') == 0) {
|
|
||||||
$conttp->setVariable('NAME', translate('Service dependencies'));
|
|
||||||
$conttp->setVariable('ACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_servicedependency` '
|
|
||||||
. "WHERE `active`='1' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->setVariable('INACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_servicedependency` '
|
|
||||||
. "WHERE `active`='0' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->parse('statisticrow');
|
|
||||||
}
|
|
||||||
if ($myVisClass->checkAccountGroup($intAccessGrp23, 'read') == 0) {
|
|
||||||
$conttp->setVariable('NAME', translate('Service escalations'));
|
|
||||||
$conttp->setVariable('ACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_serviceescalation` '
|
|
||||||
. "WHERE `active`='1' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->setVariable('INACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_serviceescalation` '
|
|
||||||
. "WHERE `active`='0' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->parse('statisticrow');
|
|
||||||
}
|
|
||||||
if ($myVisClass->checkAccountGroup($intAccessGrp24, 'read') == 0) {
|
|
||||||
$conttp->setVariable('NAME', translate('Service ext. info'));
|
|
||||||
$conttp->setVariable('ACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_serviceextinfo` '
|
|
||||||
. "WHERE `active`='1' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->setVariable('INACT_COUNT', $myDBClass->getFieldData('SELECT count(*) FROM `tbl_serviceextinfo` '
|
|
||||||
. "WHERE `active`='0' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)"));
|
|
||||||
$conttp->parse('statisticrow');
|
|
||||||
}
|
|
||||||
$conttp->parse('statistics');
|
|
||||||
$conttp->parse('main');
|
|
||||||
$conttp->show('main');
|
|
||||||
//
|
|
||||||
// Include Footer
|
|
||||||
// ==============
|
|
||||||
$maintp->setVariable('VERSION_INFO', "<a href='https://sourceforge.net/projects/nagiosql/' "
|
|
||||||
. "target='_blank'>NagiosQL</a> $setFileVersion");
|
|
||||||
$maintp->parse('footer');
|
|
||||||
$maintp->show('footer');
|
|
@ -1,707 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Support page
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 40;
|
|
||||||
$preContent = 'admin/support.htm.tpl';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
$setSaveLangId = 'private';
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Start content
|
|
||||||
// =============
|
|
||||||
$conttp->setVariable('TITLE', translate('NagiosQL support page'));
|
|
||||||
$conttp->parse('header');
|
|
||||||
$conttp->show('header');
|
|
||||||
//
|
|
||||||
// Single data form
|
|
||||||
// ================
|
|
||||||
$conttp->setVariable('MAINSITE', $_SESSION['SETS']['path']['base_url']. 'admin.php');
|
|
||||||
foreach ($arrDescription as $elem) {
|
|
||||||
$conttp->setVariable($elem['name'], $elem['string']);
|
|
||||||
}
|
|
||||||
$conttp->setVariable('SUBTITLE_1', translate('Support contact information'));
|
|
||||||
$conttp->setVariable('SUPPORT_TEXT_1', translate('For questions, the online support forum or contact information '
|
|
||||||
. 'visit our website:'));
|
|
||||||
$conttp->setVariable('WEBSITE_LINK', translate('NagiosQL on sourceforge'));
|
|
||||||
//
|
|
||||||
// Donation
|
|
||||||
// ========
|
|
||||||
$conttp->setVariable('SUBTITLE_2', translate('Donate to support NagiosQL'));
|
|
||||||
$conttp->setVariable('SUPPORT_TEXT_2', translate('If you like NagiosQL and it simplifies your daily work, then you '
|
|
||||||
. 'may want to support the project by making a donation. This helps us to keep NagiosQL alive and to cover '
|
|
||||||
. 'our costs. Thank you for your donation!'));
|
|
||||||
$conttp->setVariable('DONATE_LINK', translate('Donate for NagiosQL on sourceforge'));
|
|
||||||
//
|
|
||||||
// Translations
|
|
||||||
// ============
|
|
||||||
$conttp->setVariable('SUBTITLE_3', translate('Translation services'));
|
|
||||||
$conttp->setVariable('SUPPORT_TEXT_3', translate('NagiosQL was translated into various languages. Since some '
|
|
||||||
. 'translators are no longer available in later versions, there may be untranslated words or phrases. If '
|
|
||||||
. 'you want to help us complete the translation, correct them or introduce a new language, then sign up '
|
|
||||||
. 'with us now! The translations are simply feasible online - we use an open translation service where '
|
|
||||||
. 'you can register for free at any time:'));
|
|
||||||
$conttp->setVariable('TRANSLATION_LINK', translate('Transifex translation service'));
|
|
||||||
//
|
|
||||||
// GIT repository
|
|
||||||
// ==============
|
|
||||||
$conttp->setVariable('SUBTITLE_8', translate('GIT software repository'));
|
|
||||||
$conttp->setVariable('SUPPORT_TEXT_5', translate('The NagiosQL sources are available on GitLab. There you will '
|
|
||||||
.'always find the latest bugfixes and changes as well as older branches.'));
|
|
||||||
$conttp->setVariable('GIT_LINK', translate('GitLab'));
|
|
||||||
//
|
|
||||||
// Online version check
|
|
||||||
// ====================
|
|
||||||
$conttp->setVariable('SUBTITLE_4', translate('Version check'));
|
|
||||||
if (!isset($SETS['common']['updcheck']) || ($SETS['common']['updcheck'] == '0')) {
|
|
||||||
$conttp->setVariable('SUPPORT_TEXT_4', translate('The online version check is not enabled. You can enable it '
|
|
||||||
. 'on the settings page.'));
|
|
||||||
} elseif (isset($SETS['common']['updcheck']) && ($SETS['common']['updcheck'] == '1')) {
|
|
||||||
$conttp->setVariable('SUPPORT_TEXT_4', translate('The online version check connects the NagiosQL page to find '
|
|
||||||
. 'out, if your version is still up to date.'));
|
|
||||||
$conttp->setVariable('LOADER_IMAGE', $_SESSION['SETS']['path']['base_url']. 'images/loader.gif');
|
|
||||||
$conttp->setVariable('VERSION_IF_SRC', $_SESSION['SETS']['path']['base_url']. 'admin/versioncheck.php?show=0');
|
|
||||||
$conttp->parse('versioncheck_frame');
|
|
||||||
$conttp->setVariable('VERSION_IF_SRC_RELOAD', $_SESSION['SETS']['path']['base_url'].
|
|
||||||
'admin/versioncheck.php?show=1');
|
|
||||||
$conttp->parse('versioncheck_js');
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Environment check
|
|
||||||
// =================
|
|
||||||
$conttp->setVariable('SUBTITLE_5', translate('Environment check'));
|
|
||||||
// Javascript check
|
|
||||||
$conttp->setVariable('FAILED', translate('failed'));
|
|
||||||
$conttp->setVariable('OK', translate('ok'));
|
|
||||||
// PHP version check
|
|
||||||
$conttp->setVariable('PHP_VERSION', translate('PHP version'));
|
|
||||||
if (PHP_VERSION_ID >= 50500) {
|
|
||||||
$conttp->setVariable('PHP_CLASS', 'checkgreen');
|
|
||||||
$conttp->setVariable('PHP_RESULT', translate('ok'). ' (' .PHP_VERSION. ')');
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('PHP_CLASS', 'checkred');
|
|
||||||
$conttp->setVariable('PHP_RESULT', translate('failed'). ' (' .PHP_VERSION. ' - '
|
|
||||||
.translate('Required:'). ' 5.5.0)');
|
|
||||||
}
|
|
||||||
// PHP modules / extensions
|
|
||||||
$strExtPath = ini_get('extension_dir');
|
|
||||||
$strPrefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : '';
|
|
||||||
$conttp->setVariable('PHP_SESSION_MODULE', translate('PHP module:'). ' session');
|
|
||||||
if (extension_loaded('session')) {
|
|
||||||
$conttp->setVariable('PHP_SESSION_CLASS', 'checkgreen');
|
|
||||||
$conttp->setVariable('PHP_SESSION_RESULT', translate('ok'));
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('PHP_SESSION_CLASS', 'checkred');
|
|
||||||
$conttp->setVariable('PHP_SESSION_RESULT', translate('failed'));
|
|
||||||
}
|
|
||||||
$conttp->setVariable('PHP_GETTEXT_MODULE', translate('PHP module:'). ' gettext');
|
|
||||||
if (extension_loaded('gettext')) {
|
|
||||||
$conttp->setVariable('PHP_GETTEXT_CLASS', 'checkgreen');
|
|
||||||
$conttp->setVariable('PHP_GETTEXT_RESULT', translate('ok'));
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('PHP_GETTEXT_CLASS', 'checkred');
|
|
||||||
$conttp->setVariable('PHP_GETTEXT_RESULT', translate('failed'));
|
|
||||||
}
|
|
||||||
$conttp->setVariable('PHP_FTP_MODULE', translate('PHP module:'). ' ftp');
|
|
||||||
if (extension_loaded('ftp')) {
|
|
||||||
$conttp->setVariable('PHP_FTP_CLASS', 'checkgreen');
|
|
||||||
$conttp->setVariable('PHP_FTP_RESULT', translate('ok'));
|
|
||||||
$intFTP_ok = 1;
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('PHP_FTP_CLASS', 'checkorange');
|
|
||||||
$conttp->setVariable('PHP_FTP_RESULT', translate('failed'));
|
|
||||||
$intFTP_ok = 0;
|
|
||||||
}
|
|
||||||
$conttp->setVariable('PHP_SSH2_MODULE', translate('PHP module:'). ' ssh');
|
|
||||||
if (extension_loaded('ssh2')) {
|
|
||||||
$conttp->setVariable('PHP_SSH2_CLASS', 'checkgreen');
|
|
||||||
$conttp->setVariable('PHP_SSH2_RESULT', translate('ok'));
|
|
||||||
$intSSH_ok = 1;
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('PHP_SSH2_CLASS', 'checkorange');
|
|
||||||
$conttp->setVariable('PHP_SSH2_RESULT', translate('failed'));
|
|
||||||
$intSSH_ok = 0;
|
|
||||||
}
|
|
||||||
// Datenbankversion
|
|
||||||
if ($SETS['db']['type'] == 'mysql') {
|
|
||||||
$conttp->setVariable('DB_VERSION', translate('MySQL version'));
|
|
||||||
$strSQL = "SHOW VARIABLES LIKE 'version'";
|
|
||||||
$booReturn = $myDBClass->hasSingleDataset($strSQL, $arrDataset);
|
|
||||||
if ($booReturn && (count($arrDataset) != 0)) {
|
|
||||||
$strDBVersion = $arrDataset['Value'];
|
|
||||||
if (version_compare($strDBVersion, '5.0.0', '>=')) {
|
|
||||||
$conttp->setVariable('DB_CLASS', 'checkgreen');
|
|
||||||
$conttp->setVariable('DB_RESULT', translate('ok'). ' (' .$strDBVersion. ')');
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('DB_CLASS', 'checkorange');
|
|
||||||
$conttp->setVariable('DB_RESULT', translate('failed'). ' (' .$strDBVersion. ' - ' .translate('Required:').
|
|
||||||
' 5.0.0)');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// INI settings
|
|
||||||
$conttp->setVariable('INI_FILE_UPLOADS', translate('PHP ini settings:'). ' file_uploads');
|
|
||||||
$strStatus1 = ini_get('file_uploads');
|
|
||||||
if (empty($strStatus1) || ($strStatus1 == 1)) {
|
|
||||||
$conttp->setVariable('INI_FILE_UPLOADS_CLASS', 'checkgreen');
|
|
||||||
$conttp->setVariable('INI_FILE_UPLOADS_RESULT', translate('ok'));
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('INI_FILE_UPLOADS_CLASS', 'checkred');
|
|
||||||
$conttp->setVariable('INI_FILE_UPLOADS_RESULT', translate('failed'));
|
|
||||||
}
|
|
||||||
$conttp->setVariable('INI_AUTO_START', translate('PHP ini settings:'). ' session.auto_start');
|
|
||||||
$strStatus2 = ini_get('session.auto_start');
|
|
||||||
if (empty($strStatus2) || ($strStatus2 == 0)) {
|
|
||||||
$conttp->setVariable('INI_AUTO_START_CLASS', 'checkgreen');
|
|
||||||
$conttp->setVariable('INI_AUTO_START_RESULT', translate('ok'));
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('INI_AUTO_START_CLASS', 'checkred');
|
|
||||||
$conttp->setVariable('INI_AUTO_START_RESULT', translate('failed'));
|
|
||||||
}
|
|
||||||
$conttp->setVariable('INI_SUHO_SESS_ENC', translate('PHP ini settings:'). ' suhosin.session.encrypt');
|
|
||||||
$strStatus3 = ini_get('suhosin.session.encrypt');
|
|
||||||
if (empty($strStatus3) || ($strStatus3 == 0)) {
|
|
||||||
$conttp->setVariable('INI_SUHO_SESS_ENC_CLASS', 'checkgreen');
|
|
||||||
$conttp->setVariable('INI_SUHO_SESS_ENC_RESULT', translate('ok'));
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('INI_SUHO_SESS_ENC_CLASS', 'checkred');
|
|
||||||
$conttp->setVariable('INI_SUHO_SESS_ENC_RESULT', translate('failed'));
|
|
||||||
}
|
|
||||||
$conttp->setVariable('INI_DATE_TIMEZONE', translate('PHP ini settings:'). ' date.timezone');
|
|
||||||
$strStatus4 = ini_get('date.timezone');
|
|
||||||
if (!empty($strStatus4)) {
|
|
||||||
$conttp->setVariable('INI_DATE_TIMEZONE_CLASS', 'checkgreen');
|
|
||||||
$conttp->setVariable('INI_DATE_TIMEZONE_RESULT', translate('ok'). ' (' .$strStatus4. ')');
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('INI_DATE_TIMEZONE_CLASS', 'checkred');
|
|
||||||
$conttp->setVariable('INI_DATE_TIMEZONE_RESULT', translate('failed'));
|
|
||||||
}
|
|
||||||
// File access checks
|
|
||||||
$conttp->setVariable('RW_CONFIG', translate('Read/Write access:'). ' settings.php');
|
|
||||||
$strConfigFile = '../config/settings.php';
|
|
||||||
if (file_exists($strConfigFile) && is_readable($strConfigFile) && is_writable($strConfigFile)) {
|
|
||||||
$conttp->setVariable('RW_CONFIG_CLASS', 'checkgreen');
|
|
||||||
$conttp->setVariable('RW_CONFIG_RESULT', translate('ok'));
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('RW_CONFIG_CLASS', 'checkred');
|
|
||||||
$conttp->setVariable('RW_CONFIG_RESULT', translate('failed'));
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Domain checks
|
|
||||||
// =============
|
|
||||||
$myConfigClass->getConfigTargets($arrConfigSet);
|
|
||||||
$intConfigId = $arrConfigSet[0];
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'method', $intMethod);
|
|
||||||
if ($intConfigId != 0) {
|
|
||||||
$conttp->setVariable('SUBTITLE_6', translate('Config domain checks'));
|
|
||||||
$conttp->setVariable('SUPPORT_TEXT_6', translate('The checks below are based on your data domain and config '
|
|
||||||
. 'domain settings. To change the data domain, use the pull down menu in the upper right corner. Repeat '
|
|
||||||
. 'this check for any data domain you have configured. To change the config domain, use the data domain '
|
|
||||||
. 'menu and select a different config domain value.'));
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'conffile', $strConffile);
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'target', $strConfName);
|
|
||||||
$conttp->setVariable('DOMAIN_NAME', translate('Config domain name'));
|
|
||||||
$conttp->setVariable('DOMAIN_NAME_VALUE', $strConfName);
|
|
||||||
$conttp->setVariable('CONNECT_TYPE', translate('Connection type'));
|
|
||||||
if ($intMethod == 1) {
|
|
||||||
$conttp->setVariable('CONNECT_TYPE_CLASS', 'checkgreen');
|
|
||||||
$conttp->setVariable('CONNECT_TYPE_RESULT', 'Fileaccess');
|
|
||||||
} elseif ($intMethod == 2) {
|
|
||||||
if ($intFTP_ok == 1) {
|
|
||||||
$conttp->setVariable('CONNECT_TYPE_CLASS', 'checkgreen');
|
|
||||||
$conttp->setVariable('CONNECT_TYPE_RESULT', 'FTP');
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('CONNECT_TYPE_CLASS', 'checkred');
|
|
||||||
$conttp->setVariable('CONNECT_TYPE_RESULT', 'FTP (no FTP module)');
|
|
||||||
}
|
|
||||||
} elseif ($intMethod == 3) {
|
|
||||||
if ($intSSH_ok == 1) {
|
|
||||||
$conttp->setVariable('CONNECT_TYPE_CLASS', 'checkgreen');
|
|
||||||
$conttp->setVariable('CONNECT_TYPE_RESULT', 'SSH/SFTP');
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('CONNECT_TYPE_CLASS', 'checkred');
|
|
||||||
$conttp->setVariable('CONNECT_TYPE_RESULT', 'SSH/SFTP (no SSH2 module)');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$conttp->setVariable('CONNECT_CHECK', translate('Connection check'));
|
|
||||||
if ($intMethod == 1) {
|
|
||||||
$conttp->setVariable('CONNECT_CHECK_CLASS', 'checkgreen');
|
|
||||||
$conttp->setVariable('CONNECT_CHECK_RESULT', translate('ok'));
|
|
||||||
} elseif ($intMethod == 2) {
|
|
||||||
$booReturn = 0;
|
|
||||||
if (empty($myConfigClass->resConnectId) || !is_resource($myConfigClass->resConnectId)) {
|
|
||||||
$booReturn = $myConfigClass->getFTPConnection($intConfigId);
|
|
||||||
}
|
|
||||||
if ($booReturn == 1) {
|
|
||||||
$conttp->setVariable('CONNECT_CHECK_CLASS', 'checkred');
|
|
||||||
$conttp->setVariable('CONNECT_CHECK_RESULT', translate('failed'));
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
$intConnectCheck = 0;
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('CONNECT_CHECK_CLASS', 'checkgreen');
|
|
||||||
$conttp->setVariable('CONNECT_CHECK_RESULT', translate('ok'));
|
|
||||||
$intConnectCheck = 1;
|
|
||||||
}
|
|
||||||
} elseif ($intMethod == 3) {
|
|
||||||
$booReturn = 0;
|
|
||||||
if (empty($myConfigClass->resConnectId) || !is_resource($myConfigClass->resConnectId)) {
|
|
||||||
$booReturn = $myConfigClass->getSSHConnection($intConfigId);
|
|
||||||
}
|
|
||||||
if ($booReturn == 1) {
|
|
||||||
$conttp->setVariable('CONNECT_CHECK_CLASS', 'checkred');
|
|
||||||
$conttp->setVariable('CONNECT_CHECK_RESULT', translate('failed'));
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
$intConnectCheck = 0;
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('CONNECT_CHECK_CLASS', 'checkgreen');
|
|
||||||
$conttp->setVariable('CONNECT_CHECK_RESULT', translate('ok'));
|
|
||||||
$intConnectCheck = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$conttp->setVariable('RW_NAG_CONF', translate('Nagios config file'));
|
|
||||||
if ($intMethod == 1) {
|
|
||||||
if (file_exists($strConffile) && is_readable($strConffile)) {
|
|
||||||
if (is_writable($strConffile)) {
|
|
||||||
$conttp->setVariable('RW_NAG_CONF_CLASS', 'checkgreen');
|
|
||||||
$conttp->setVariable('RW_NAG_CONF_RESULT', translate('ok'));
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('RW_NAG_CONF_CLASS', 'checkorange');
|
|
||||||
$conttp->setVariable('RW_NAG_CONF_RESULT', translate('ok'). ' (' .translate('readonly'). ')');
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('RW_NAG_CONF_CLASS', 'checkred');
|
|
||||||
$conttp->setVariable('RW_NAG_CONF_RESULT', translate('failed'));
|
|
||||||
}
|
|
||||||
} elseif (($intMethod == 2) || ($intMethod == 3)) {
|
|
||||||
// Write file to temporary
|
|
||||||
$strFileName = tempnam($SETS['path']['tempdir'], 'nagiosql_conf');
|
|
||||||
// Copy configuration from remote system
|
|
||||||
$intReturn = $myConfigClass->remoteFileCopy($strConffile, $intConfigId, $strFileName, 0);
|
|
||||||
if ($intReturn == 0) {
|
|
||||||
$intCheck = 0;
|
|
||||||
} else {
|
|
||||||
$intCheck = 1;
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
if (file_exists($strFileName)) {
|
|
||||||
unlink($strFileName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Copy configuration to remote system
|
|
||||||
if ($intCheck == 0) {
|
|
||||||
$intReturn = $myConfigClass->remoteFileCopy($strConffile, $intConfigId, $strFileName, 1);
|
|
||||||
if ($intReturn == 0) {
|
|
||||||
$intCheck = 0;
|
|
||||||
if (file_exists($strFileName)) {
|
|
||||||
unlink($strFileName);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
$intCheck = 2;
|
|
||||||
if (file_exists($strFileName)) {
|
|
||||||
unlink($strFileName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Write Results
|
|
||||||
if ($intCheck == 0) {
|
|
||||||
$conttp->setVariable('RW_NAG_CONF_CLASS', 'checkgreen');
|
|
||||||
$conttp->setVariable('RW_NAG_CONF_RESULT', translate('ok'));
|
|
||||||
} elseif ($intCheck == 1) {
|
|
||||||
$conttp->setVariable('RW_NAG_CONF_CLASS', 'checkred');
|
|
||||||
$conttp->setVariable('RW_NAG_CONF_RESULT', translate('failed'));
|
|
||||||
} elseif ($intCheck == 2) {
|
|
||||||
$conttp->setVariable('RW_NAG_CONF_CLASS', 'checkorange');
|
|
||||||
$conttp->setVariable('RW_NAG_CONF_RESULT', translate('ok'). ' (' .translate('readonly'). ')');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'pidfile', $strPidfile);
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'binaryfile', $strBinary);
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'commandfile', $strCommandfile);
|
|
||||||
$conttp->setVariable('CHECK_NAG_LOCK', translate('Nagios process file'));
|
|
||||||
if ($intMethod == 1) {
|
|
||||||
if (substr_count(PHP_OS, 'Linux') != 0) {
|
|
||||||
exec('ps -ef | grep '.basename($strBinary).' | grep -v grep', $arrExec);
|
|
||||||
} else {
|
|
||||||
$arrExec[0] = 1;
|
|
||||||
}
|
|
||||||
if (isset($arrExec[0])) {
|
|
||||||
if (file_exists($strPidfile)) {
|
|
||||||
$conttp->setVariable('CHECK_NAG_LOCK_CLASS', 'checkgreen');
|
|
||||||
$conttp->setVariable('CHECK_NAG_LOCK_RESULT', translate('ok'));
|
|
||||||
$intDemonOk = 0;
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('CHECK_NAG_LOCK_CLASS', 'checkred');
|
|
||||||
$conttp->setVariable('CHECK_NAG_LOCK_RESULT', translate('failed') . ' ('
|
|
||||||
. translate('file is missed') . ')');
|
|
||||||
$intDemonOk = 1;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('CHECK_NAG_LOCK_CLASS', 'checkred');
|
|
||||||
$conttp->setVariable('CHECK_NAG_LOCK_RESULT', translate('failed'));
|
|
||||||
$myVisClass->processMessage(translate('Nagios daemon is not running'), $strErrorMessage);
|
|
||||||
$intDemonOk = 1;
|
|
||||||
}
|
|
||||||
} elseif ($intMethod == 2) {
|
|
||||||
$conttp->setVariable('CHECK_NAG_LOCK_CLASS', 'checkorange');
|
|
||||||
$conttp->setVariable('CHECK_NAG_LOCK_RESULT', translate('ok'). ' (' .translate('not used with FTP'). ')');
|
|
||||||
$intDemonOk = 1;
|
|
||||||
} elseif ($intMethod == 3) {
|
|
||||||
$arrResultBinary = array();
|
|
||||||
$arrResultPid = array();
|
|
||||||
$intBinary = 1;
|
|
||||||
$intPid = 1;
|
|
||||||
if ($strBinary != '') {
|
|
||||||
$intBinary = $myConfigClass->sendSSHCommand('ps -ef | grep '.basename($strBinary).' | grep '.
|
|
||||||
basename($strConffile).' | grep -v grep', $arrResultBinary);
|
|
||||||
}
|
|
||||||
if ($strPidfile != '') {
|
|
||||||
$intPid = $myConfigClass->sendSSHCommand('ls ' . $strPidfile, $arrResult2);
|
|
||||||
}
|
|
||||||
if (($intBinary == 0) && ($intPid == 0)) {
|
|
||||||
$conttp->setVariable('CHECK_NAG_LOCK_CLASS', 'checkgreen');
|
|
||||||
$conttp->setVariable('CHECK_NAG_LOCK_RESULT', translate('ok'));
|
|
||||||
$intDemonOk = 0;
|
|
||||||
} elseif (($intBinary == 0) && ($intPid == 1)) {
|
|
||||||
$conttp->setVariable('CHECK_NAG_LOCK_CLASS', 'checkred');
|
|
||||||
$conttp->setVariable('CHECK_NAG_LOCK_RESULT', translate('failed'). ' (' .translate('file is missed'). ')');
|
|
||||||
$intDemonOk = 1;
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('CHECK_NAG_LOCK_CLASS', 'checkred');
|
|
||||||
$conttp->setVariable('CHECK_NAG_LOCK_RESULT', translate('failed'). ' (' .translate('demon dead'). ')');
|
|
||||||
$myVisClass->processMessage(translate('Nagios daemon is not running'), $strErrorMessage);
|
|
||||||
$intDemonOk = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Command file
|
|
||||||
$conttp->setVariable('RW_NAG_COMMAND', translate('Nagios command file'));
|
|
||||||
if ($intMethod == 1) {
|
|
||||||
if (file_exists($strCommandfile) && is_readable($strCommandfile) && is_writable($strCommandfile)) {
|
|
||||||
if ($intDemonOk == 0) {
|
|
||||||
$conttp->setVariable('RW_NAG_COMMAND_CLASS', 'checkgreen');
|
|
||||||
$conttp->setVariable('RW_NAG_COMMAND_RESULT', translate('ok'));
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('RW_NAG_COMMAND_CLASS', 'checkorange');
|
|
||||||
$conttp->setVariable('RW_NAG_COMMAND_RESULT', translate('ok'). ' (' .translate('demon dead'). '?)');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!file_exists($strCommandfile)) {
|
|
||||||
$conttp->setVariable('RW_NAG_COMMAND_CLASS', 'checkred');
|
|
||||||
$conttp->setVariable('RW_NAG_COMMAND_RESULT', translate('failed'). ' (' .translate('file is missed'). ')');
|
|
||||||
} elseif (!is_writable($strCommandfile)) {
|
|
||||||
$conttp->setVariable('RW_NAG_COMMAND_CLASS', 'checkred');
|
|
||||||
$conttp->setVariable('RW_NAG_COMMAND_RESULT', translate('failed'). ' (' .translate('readonly'). ')');
|
|
||||||
} elseif (!is_readable($strCommandfile)) {
|
|
||||||
$conttp->setVariable('RW_NAG_COMMAND_CLASS', 'checkred');
|
|
||||||
$conttp->setVariable('RW_NAG_COMMAND_RESULT', translate('failed'));
|
|
||||||
}
|
|
||||||
} elseif ($intMethod == 2) {
|
|
||||||
$conttp->setVariable('RW_NAG_COMMAND_CLASS', 'checkorange');
|
|
||||||
$conttp->setVariable('RW_NAG_COMMAND_RESULT', translate('ok'). ' (' .translate('not used with FTP'). ')');
|
|
||||||
} elseif ($intMethod == 3) {
|
|
||||||
if ($strCommandfile != '') {
|
|
||||||
if ($intDemonOk == 0) {
|
|
||||||
$myConfigClass->sendSSHCommand('echo "TEST" >>' . $strCommandfile . '; echo $?; echo ""', $arrTemp);
|
|
||||||
if ($arrTemp[0] == 0) {
|
|
||||||
$conttp->setVariable('RW_NAG_COMMAND_CLASS', 'checkgreen');
|
|
||||||
$conttp->setVariable('RW_NAG_COMMAND_RESULT', translate('ok'));
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('RW_NAG_COMMAND_CLASS', 'checkred');
|
|
||||||
$conttp->setVariable('RW_NAG_COMMAND_RESULT', translate('failed'). ' ('
|
|
||||||
.translate('readonly'). ')');
|
|
||||||
}
|
|
||||||
} elseif ($intDemonOk == 1) {
|
|
||||||
$conttp->setVariable('RW_NAG_COMMAND_CLASS', 'checkred');
|
|
||||||
$conttp->setVariable('RW_NAG_COMMAND_RESULT', translate('failed'). ' (' .translate('demon dead'). ')');
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('RW_NAG_COMMAND_CLASS', 'checkred');
|
|
||||||
$conttp->setVariable('RW_NAG_COMMAND_RESULT', translate('failed'). ' ('
|
|
||||||
.translate('file is missed'). ')');
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('RW_NAG_COMMAND_CLASS', 'checkred');
|
|
||||||
$conttp->setVariable('RW_NAG_COMMAND_RESULT', translate('failed'). ' (' .translate('file is missed'). ')');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Binary file
|
|
||||||
$conttp->setVariable('EXE_NAG_BINARY', translate('Nagios binary file'));
|
|
||||||
if ($intMethod == 1) {
|
|
||||||
if (file_exists($strBinary)) {
|
|
||||||
if (is_executable($strBinary)) {
|
|
||||||
$conttp->setVariable('EXE_NAG_BINARY_CLASS', 'checkgreen');
|
|
||||||
$conttp->setVariable('EXE_NAG_BINARY_RESULT', translate('ok'));
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('EXE_NAG_BINARY_CLASS', 'checkred');
|
|
||||||
$conttp->setVariable('EXE_NAG_BINARY_RESULT', translate('failed'). ' ('
|
|
||||||
.translate('not executable'). ')');
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('EXE_NAG_BINARY_CLASS', 'checkred');
|
|
||||||
$conttp->setVariable('EXE_NAG_BINARY_RESULT', translate('failed'). ' (' .translate('file is missed'). ')');
|
|
||||||
}
|
|
||||||
} elseif ($intMethod == 2) {
|
|
||||||
$conttp->setVariable('EXE_NAG_BINARY_CLASS', 'checkorange');
|
|
||||||
$conttp->setVariable('EXE_NAG_BINARY_RESULT', translate('ok'). ' (' .translate('not used with FTP'). ')');
|
|
||||||
} elseif ($intMethod == 3) {
|
|
||||||
$booReturn = 0;
|
|
||||||
/** @noinspection IsEmptyFunctionUsageInspection */
|
|
||||||
if (empty($myConfigClass->resConnectId) || !is_resource($myConfigClass->resConnectId)) {
|
|
||||||
$booReturn = $myConfigClass->getSSHConnection($intConfigId);
|
|
||||||
}
|
|
||||||
if ($booReturn == 1) {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
if (($strBinary != '') && ($strConffile != '') &&
|
|
||||||
($myConfigClass->sendSSHCommand('ls '.$strBinary, $arrTemp) == 0)) {
|
|
||||||
$myConfigClass->sendSSHCommand($strBinary.' -V', $arrResult);
|
|
||||||
if (!is_array($arrResult) || ($arrResult == false)) {
|
|
||||||
$conttp->setVariable('EXE_NAG_BINARY_CLASS', 'checkred');
|
|
||||||
$conttp->setVariable('EXE_NAG_BINARY_RESULT', translate('failed'). ' (' .
|
|
||||||
translate('not executable'). ')');
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('EXE_NAG_BINARY_CLASS', 'checkgreen');
|
|
||||||
$conttp->setVariable('EXE_NAG_BINARY_RESULT', translate('ok'));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('EXE_NAG_BINARY_CLASS', 'checkred');
|
|
||||||
$conttp->setVariable('EXE_NAG_BINARY_RESULT', translate('failed'). ' (' .
|
|
||||||
translate('file is missed'). ')');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Check config files
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'basedir', $strBasedir);
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'hostconfig', $strHostdir);
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'serviceconfig', $strServicedir);
|
|
||||||
$conttp->setVariable('SUBTITLE_7', translate('Verify configuration files and demon configuration'));
|
|
||||||
$conttp->setVariable('CONFIGURATION_NAME', translate('Configuration name'));
|
|
||||||
$conttp->setVariable('USED', translate('Used in data domain'));
|
|
||||||
$conttp->setVariable('DEMON_CONFIG', translate('Included in demon configuration'). ' ('
|
|
||||||
.basename($strConffile). ')');
|
|
||||||
$arrConfig = array();
|
|
||||||
$arrConfigFiles = array(
|
|
||||||
'Hosts' => array( 'table' => 'tbl_host', 'file' => 'directory'),
|
|
||||||
'Services' => array( 'table' => 'tbl_service', 'file' => 'directory'),
|
|
||||||
'Hostgroups' => array( 'table' => 'tbl_hostgroup', 'file' => 'hostgroups.cfg'),
|
|
||||||
'Servicegroups' => array( 'table' => 'tbl_servicegroup', 'file' => 'servicegroups.cfg'),
|
|
||||||
'Hosttemplates' => array( 'table' => 'tbl_hosttemplate', 'file' => 'hosttemplates.cfg'),
|
|
||||||
'servicetemplates' => array( 'table' => 'tbl_servicetemplate', 'file' => 'servicetemplates.cfg'),
|
|
||||||
'Contacts' => array( 'table' => 'tbl_contact', 'file' => 'contacts.cfg'),
|
|
||||||
'Contactgroups' => array( 'table' => 'tbl_contactgroup', 'file' => 'contactgroups.cfg'),
|
|
||||||
'Timeperiods' => array( 'table' => 'tbl_timeperiod', 'file' => 'timeperiods.cfg'),
|
|
||||||
'Contacttemplates' => array( 'table' => 'tbl_contacttemplate', 'file' => 'contacttemplates.cfg'),
|
|
||||||
'Commands' => array( 'table' => 'tbl_command', 'file' => 'commands.cfg'),
|
|
||||||
'Hostdependencies' => array( 'table' => 'tbl_hostdependency', 'file' => 'hostdependencies.cfg'),
|
|
||||||
'Hostescalations' => array( 'table' => 'tbl_hostescalation', 'file' => 'hostescalations.cfg'),
|
|
||||||
'Hostextinfo' => array( 'table' => 'tbl_hostextinfo', 'file' => 'hostextinfo.cfg'),
|
|
||||||
'Servicedependencies' => array( 'table' => 'tbl_servicedependency', 'file' => 'servicedependencies.cfg'),
|
|
||||||
'Serviceescalations' => array( 'table' => 'tbl_serviceescalation', 'file' => 'serviceescalations.cfg'),
|
|
||||||
'Serviceextinfo' => array( 'table' => 'tbl_serviceextinfo', 'file' => 'serviceextinfo.cfg'));
|
|
||||||
if ($intMethod == 1) {
|
|
||||||
$intCheck = 1;
|
|
||||||
if (file_exists($strConffile) && is_readable($strConffile)) {
|
|
||||||
$resFile = fopen($strConffile, 'rb');
|
|
||||||
while (!feof($resFile)) {
|
|
||||||
$strLine = trim(fgets($resFile));
|
|
||||||
if ((0 === strpos($strLine, 'c')) && ((substr_count($strLine, 'cfg_dir') != 0) ||
|
|
||||||
(substr_count($strLine, 'cfg_file') != 0))) {
|
|
||||||
$arrConfig[] = $strLine;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$intCheck = 0;
|
|
||||||
fclose($resFile);
|
|
||||||
}
|
|
||||||
} elseif (($intMethod == 2) || ($intMethod == 3)) {
|
|
||||||
$intCheck = 1;
|
|
||||||
// Write file to temporary
|
|
||||||
$strFileName = tempnam($SETS['path']['tempdir'], 'nagiosql_conf');
|
|
||||||
// Copy configuration from remote system
|
|
||||||
$intReturn = $myConfigClass->remoteFileCopy($strConffile, $intConfigId, $strFileName, 0);
|
|
||||||
if ($intReturn == 0) {
|
|
||||||
$intCheck = 0;
|
|
||||||
if (file_exists($strFileName) && is_readable($strFileName)) {
|
|
||||||
$resFile = fopen($strFileName, 'rb');
|
|
||||||
while (!feof($resFile)) {
|
|
||||||
$strLine = trim(fgets($resFile));
|
|
||||||
if ((0 === strpos($strLine, 'c')) && ((substr_count($strLine, 'cfg_dir') != 0) ||
|
|
||||||
(substr_count($strLine, 'cfg_file') != 0))) {
|
|
||||||
$arrConfig[] = $strLine;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fclose($resFile);
|
|
||||||
$intCheck = 0;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$intCheck = 1;
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
if (file_exists($strFileName)) {
|
|
||||||
unlink($strFileName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$i = 0;
|
|
||||||
foreach ($arrConfigFiles as $key => $elem) {
|
|
||||||
// Line colours
|
|
||||||
$strClassL = 'tdlb';
|
|
||||||
$strClassM = 'tdmb';
|
|
||||||
if ($i%2 == 1) {
|
|
||||||
$strClassL = 'tdld';
|
|
||||||
$strClassM = 'tdmd';
|
|
||||||
}
|
|
||||||
$conttp->setVariable('CLASS_L', $strClassL);
|
|
||||||
$conttp->setVariable('CLASS_M', $strClassM);
|
|
||||||
// Write configuiration name
|
|
||||||
$conttp->setVariable('CONFIG_NAME', $key);
|
|
||||||
// Count active datasets
|
|
||||||
$strSQL = 'SELECT * FROM `' .$elem['table']."` WHERE `active`='1' AND `config_id`=$chkDomainId";
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrDataLines, $intDataCount);
|
|
||||||
if ($booReturn && ($intDataCount != 0)) {
|
|
||||||
$conttp->setVariable('ACTIVE_CONFIG_COUNT', '<span class="checkgreen">' .translate('ok'). ' (' .
|
|
||||||
$intDataCount. ')</span>');
|
|
||||||
} elseif ($intDataCount == 0) {
|
|
||||||
$conttp->setVariable('ACTIVE_CONFIG_COUNT', '<span class="checkgreen">' .translate('not used'). '</span>');
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('ACTIVE_CONFIG_COUNT', '<span class="checkred">' .translate('failed'). '</span>');
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
$conttp->setVariable('DEMON_CFG_OK', '<span class="checkred">' .translate('failed'). '</span> (' .
|
|
||||||
translate('cfg definition missed'). ')');
|
|
||||||
if (($intCheck == 0) && is_array($arrConfig) && (count($arrConfig) != 0)) {
|
|
||||||
foreach ($arrConfig as $line) {
|
|
||||||
if ($elem['file'] != 'directory') {
|
|
||||||
if ((substr_count($line, 'cfg_dir=' .$strBasedir) != 0) && (substr_count($line, 'cfg_dir=' .
|
|
||||||
substr($strHostdir, 0, -1)) == 0) && (substr_count($line, 'cfg_dir=' .
|
|
||||||
substr($strServicedir, 0, -1)) == 0)) {
|
|
||||||
$conttp->setVariable('DEMON_CFG_OK', '<span class="checkgreen">' .translate('ok').
|
|
||||||
'</span> (' .$line. ')');
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (substr_count($line, $strBasedir.$elem['file']) != 0) {
|
|
||||||
$conttp->setVariable('DEMON_CFG_OK', '<span class="checkgreen">' .translate('ok').
|
|
||||||
'</span> (' .$line. ')');
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if ($intDataCount == 0) {
|
|
||||||
$conttp->setVariable('DEMON_CFG_OK', '<span class="checkorange">' .translate('ok').
|
|
||||||
'</span> (' .translate('cfg definition missed, but actually not used'). ')');
|
|
||||||
} elseif (substr_count($line, $elem['file']) != 0) {
|
|
||||||
$conttp->setVariable('DEMON_CFG_OK', '<span class="checkred">' .translate('failed').
|
|
||||||
'</span> (' .translate('wrong base path:'). ' ' .$line. ')');
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
} elseif ($elem['table'] == 'tbl_host') {
|
|
||||||
if (substr_count($line, 'cfg_dir=' .substr($strHostdir, 0, -1)) != 0) {
|
|
||||||
$conttp->setVariable('DEMON_CFG_OK', '<span class="checkgreen">' .translate('ok').
|
|
||||||
'</span> (' .$line. ')');
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if ($intDataCount == 0) {
|
|
||||||
$conttp->setVariable('DEMON_CFG_OK', '<span class="checkorange">' .translate('ok').
|
|
||||||
'</span> (' .translate('cfg definition missed, but actually not used'). ')');
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
} elseif ($elem['table'] == 'tbl_service') {
|
|
||||||
if (substr_count($line, 'cfg_dir=' .substr($strServicedir, 0, -1)) != 0) {
|
|
||||||
$conttp->setVariable('DEMON_CFG_OK', '<span class="checkgreen">' .translate('ok').
|
|
||||||
'</span> (' .$line. ')');
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if ($intDataCount == 0) {
|
|
||||||
$conttp->setVariable('DEMON_CFG_OK', '<span class="checkorange">' .translate('ok').
|
|
||||||
'</span> (' .translate('cfg definition missed, but actually not used'). ')');
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$conttp->setVariable('DEMON_CFG_OK', '<span class="checkred">' .translate('failed').
|
|
||||||
'</span> (' .translate('cfg file not readable'). ')');
|
|
||||||
}
|
|
||||||
$conttp->parse('configfileline');
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
// Check for unused config
|
|
||||||
if (($intCheck == 0) && is_array($arrConfig) && (count($arrConfig) != 0)) {
|
|
||||||
foreach ($arrConfig as $line) {
|
|
||||||
$intTest=0;
|
|
||||||
foreach ($arrConfigFiles as $elem) {
|
|
||||||
if (substr_count($line, $elem['file']) != 0) {
|
|
||||||
$intTest = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($intTest == 0) {
|
|
||||||
if (substr_count($line, substr('cfg_dir=' .$strHostdir, 0, -1)) != 0) {
|
|
||||||
$intTest = 1;
|
|
||||||
}
|
|
||||||
if (substr_count($line, substr('cfg_dir=' .$strServicedir, 0, -1)) != 0) {
|
|
||||||
$intTest = 1;
|
|
||||||
}
|
|
||||||
//if (substr_count($line,substr("cfg_dir=".$strBasedir,0,-1)) != 0) $intTest = 1;
|
|
||||||
}
|
|
||||||
if ($intTest == 0) {
|
|
||||||
// Line colours
|
|
||||||
$strClassL = 'tdlb';
|
|
||||||
$strClassM = 'tdmb';
|
|
||||||
if ($i%2 == 1) {
|
|
||||||
$strClassL = 'tdld';
|
|
||||||
$strClassM = 'tdmd';
|
|
||||||
}
|
|
||||||
$conttp->setVariable('CLASS_L', $strClassL);
|
|
||||||
$conttp->setVariable('CLASS_M', $strClassM);
|
|
||||||
$conttp->setVariable('CONFIG_NAME', translate('Not used'));
|
|
||||||
$conttp->setVariable('ACTIVE_CONFIG_COUNT', '<span class="checkred">' .translate('failed'). '</span>');
|
|
||||||
$conttp->setVariable('DEMON_CFG_OK', '<span class="checkred">' .translate('unused - please delete!').
|
|
||||||
'</span> (' .$line. ')');
|
|
||||||
$conttp->parse('configfileline');
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$conttp->parse('configdomain');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Messages
|
|
||||||
if ($strErrorMessage != '') {
|
|
||||||
$conttp->setVariable('ERRORMESSAGE', $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($strInfoMessage != '') {
|
|
||||||
$conttp->setVariable('INFOMESSAGE', $strInfoMessage);
|
|
||||||
}
|
|
||||||
// Check access rights for adding new objects
|
|
||||||
if ($myVisClass->checkAccountGroup($prePageKey, 'write') != 0) {
|
|
||||||
$conttp->setVariable('ADD_CONTROL', 'disabled="disabled"');
|
|
||||||
}
|
|
||||||
$conttp->parse('support');
|
|
||||||
$conttp->show('support');
|
|
||||||
//
|
|
||||||
// Process footer
|
|
||||||
// ==============
|
|
||||||
$maintp->setVariable('VERSION_INFO', "<a href='https://sourceforge.net/projects/nagiosql/' "
|
|
||||||
. "target='_blank'>NagiosQL</a> $setFileVersion");
|
|
||||||
$maintp->parse('footer');
|
|
||||||
$maintp->show('footer');
|
|
@ -1,285 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Template definition list
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$preAccess = 1;
|
|
||||||
$preNoMain = 1;
|
|
||||||
//
|
|
||||||
// Include preprocessing file
|
|
||||||
// ==========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
//
|
|
||||||
// Process post parameters
|
|
||||||
// =======================
|
|
||||||
$chkDataId = filter_input(INPUT_GET, 'dataId', FILTER_VALIDATE_INT, array('options' => array('default' => 0)));
|
|
||||||
$chkMode = filter_input(INPUT_GET, 'mode', FILTER_SANITIZE_STRING);
|
|
||||||
$chkKey = filter_input(INPUT_GET, 'key', FILTER_SANITIZE_STRING);
|
|
||||||
$chkDef = filter_input(INPUT_GET, 'def', FILTER_SANITIZE_STRING);
|
|
||||||
$chkType = filter_input(INPUT_GET, 'type', FILTER_SANITIZE_STRING);
|
|
||||||
if ($chkDataId == '') {
|
|
||||||
$chkDataId = 0;
|
|
||||||
}
|
|
||||||
if (get_magic_quotes_gpc() == 0) {
|
|
||||||
$chkDef = addslashes($chkDef);
|
|
||||||
}
|
|
||||||
$arrDefinition = explode('::', $chkDef);
|
|
||||||
if ($chkType == '') {
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
if ($chkType == 'host') {
|
|
||||||
$chkLinkTab = 'tbl_lnkHostToHosttemplate';
|
|
||||||
$chkPreTab = 'host';
|
|
||||||
}
|
|
||||||
if ($chkType == 'hosttemplate') {
|
|
||||||
$chkLinkTab = 'tbl_lnkHosttemplateToHosttemplate';
|
|
||||||
$chkPreTab = 'host';
|
|
||||||
}
|
|
||||||
if ($chkType == 'service') {
|
|
||||||
$chkLinkTab = 'tbl_lnkServiceToServicetemplate';
|
|
||||||
$chkPreTab = 'service';
|
|
||||||
}
|
|
||||||
if ($chkType == 'servicetemplate') {
|
|
||||||
$chkLinkTab = 'tbl_lnkServicetemplateToServicetemplate';
|
|
||||||
$chkPreTab = 'service';
|
|
||||||
}
|
|
||||||
if ($chkType == 'contact') {
|
|
||||||
$chkLinkTab = 'tbl_lnkContactToContacttemplate';
|
|
||||||
$chkPreTab = 'contact';
|
|
||||||
}
|
|
||||||
if ($chkType == 'contacttemplate') {
|
|
||||||
$chkLinkTab = 'tbl_lnkContacttemplateToContacttemplate';
|
|
||||||
$chkPreTab = 'contact';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Get data
|
|
||||||
// ========
|
|
||||||
if ($chkLinkTab != '') {
|
|
||||||
$strSQL = 'SELECT * FROM `' .$chkLinkTab."` WHERE `idMaster` = $chkDataId ORDER BY `idSort`";
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrDataLines, $intDataCount);
|
|
||||||
//
|
|
||||||
// Store data to session
|
|
||||||
// ============================
|
|
||||||
if ($chkMode == '') {
|
|
||||||
$_SESSION['templatedefinition'] = array();
|
|
||||||
$arrTemp = array();
|
|
||||||
if ($booReturn && ($intDataCount != 0)) {
|
|
||||||
foreach ($arrDataLines as $elem) {
|
|
||||||
if ($elem['idTable'] == 1) {
|
|
||||||
$strSQL2 = 'SELECT `template_name` '
|
|
||||||
. 'FROM `tbl_' .$chkPreTab. 'template` WHERE `id` = ' .$elem['idSlave'];
|
|
||||||
$strSQL3 = 'SELECT `active` FROM `tbl_' .$chkPreTab. 'template` WHERE `id` = ' .$elem['idSlave'];
|
|
||||||
} else {
|
|
||||||
$strSQL2 = 'SELECT `name` FROM `tbl_' .$chkPreTab. '` WHERE `id` = ' .$elem['idSlave'];
|
|
||||||
$strSQL3 = 'SELECT `active` FROM `tbl_' .$chkPreTab. '` WHERE `id` = ' .$elem['idSlave'];
|
|
||||||
}
|
|
||||||
$arrTemp['idSlave'] = $elem['idSlave'];
|
|
||||||
$arrTemp['definition'] = addslashes($myDBClass->getFieldData($strSQL2));
|
|
||||||
$arrTemp['idTable'] = $elem['idTable'];
|
|
||||||
$arrTemp['idSort'] = $elem['idSort'];
|
|
||||||
$arrTemp['active'] = (int)$myDBClass->getFieldData($strSQL3);
|
|
||||||
$arrTemp['status'] = 0;
|
|
||||||
$_SESSION['templatedefinition'][] = $arrTemp;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Add mode
|
|
||||||
// ========
|
|
||||||
if ($chkMode == 'add') {
|
|
||||||
$arrTemp = array();
|
|
||||||
if ($arrDefinition[1] == 1) {
|
|
||||||
$strSQL2 = 'SELECT `template_name` FROM `tbl_' .$chkPreTab. 'template` WHERE `id` = ' .$arrDefinition[0];
|
|
||||||
$strSQL3 = 'SELECT `active` FROM `tbl_' .$chkPreTab. 'template` WHERE `id` = ' .$arrDefinition[0];
|
|
||||||
} else {
|
|
||||||
$strSQL2 = 'SELECT `name` FROM `tbl_' .$chkPreTab. '` WHERE `id` = ' .$arrDefinition[0];
|
|
||||||
$strSQL3 = 'SELECT `active` FROM `tbl_' .$chkPreTab. '` WHERE `id` = ' .$arrDefinition[0];
|
|
||||||
}
|
|
||||||
if (isset($_SESSION['templatedefinition']) && is_array($_SESSION['templatedefinition'])) {
|
|
||||||
$intCheck = 0;
|
|
||||||
foreach ($_SESSION['templatedefinition'] as $key => $elem) {
|
|
||||||
if (($elem['idSlave'] == $arrDefinition[0]) && ($elem['idTable'] == $arrDefinition[1]) &&
|
|
||||||
($elem['status'] == 0)) {
|
|
||||||
$intCheck = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($intCheck == 0) {
|
|
||||||
$arrTemp['idSlave'] = $arrDefinition[0];
|
|
||||||
$arrTemp['definition'] = addslashes($myDBClass->getFieldData($strSQL2));
|
|
||||||
$arrTemp['idTable'] = $arrDefinition[1];
|
|
||||||
$arrTemp['idSort'] = 0;
|
|
||||||
$arrTemp['status'] = 0;
|
|
||||||
$arrTemp['active'] = (int)$myDBClass->getFieldData($strSQL3);
|
|
||||||
$_SESSION['templatedefinition'][] = $arrTemp;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$arrTemp['idSlave'] = $arrDefinition[0];
|
|
||||||
$arrTemp['definition'] = addslashes($myDBClass->getFieldData($strSQL2));
|
|
||||||
$arrTemp['idTable'] = $arrDefinition[1];
|
|
||||||
$arrTemp['idSort'] = 0;
|
|
||||||
$arrTemp['status'] = 0;
|
|
||||||
$arrTemp['active'] = (int)$myDBClass->getFieldData($strSQL3);
|
|
||||||
$_SESSION['templatedefinition'][] = $arrTemp;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Deletion mode
|
|
||||||
// =============
|
|
||||||
if ($chkMode == 'del' && isset($_SESSION['templatedefinition']) && is_array($_SESSION['templatedefinition'])) {
|
|
||||||
foreach ($_SESSION['templatedefinition'] as $key => $elem) {
|
|
||||||
if (($elem['idSlave'] == $arrDefinition[0]) && ($elem['idTable'] == $arrDefinition[1]) &&
|
|
||||||
($elem['status'] == 0)) {
|
|
||||||
$_SESSION['templatedefinition'][$key]['status'] = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Sort mode
|
|
||||||
// =========
|
|
||||||
if ($chkMode == 'sortup') {
|
|
||||||
$chkKey = (int)$chkKey;
|
|
||||||
if (isset($_SESSION['templatedefinition']) && is_array($_SESSION['templatedefinition']) &&
|
|
||||||
(count($_SESSION['templatedefinition']) > 1) && ($chkKey != 0)) {
|
|
||||||
$arrTemp = array();
|
|
||||||
$arrWait = array();
|
|
||||||
$intNow = 0;
|
|
||||||
foreach ($_SESSION['templatedefinition'] as $key => $elem) {
|
|
||||||
if ($key != ($chkKey-1)) {
|
|
||||||
$arrTemp[] = $elem;
|
|
||||||
if ($intNow == 1) {
|
|
||||||
$intNow = 0;
|
|
||||||
$arrTemp[] = $arrWait;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$arrWait = $elem;
|
|
||||||
$intNow = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$_SESSION['templatedefinition'] = $arrTemp;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($chkMode == 'sortdown') {
|
|
||||||
$chkKey = (int)$chkKey;
|
|
||||||
if (isset($_SESSION['templatedefinition']) && is_array($_SESSION['templatedefinition']) &&
|
|
||||||
(count($_SESSION['templatedefinition']) > 1) && ($chkKey < (count($_SESSION['templatedefinition'])-1))) {
|
|
||||||
$arrTemp = array();
|
|
||||||
$arrWait = array();
|
|
||||||
$intNow = 0;
|
|
||||||
foreach ($_SESSION['templatedefinition'] as $key => $elem) {
|
|
||||||
if ($key != $chkKey) {
|
|
||||||
$arrTemp[] = $elem;
|
|
||||||
if ($intNow == 1) {
|
|
||||||
$intNow = 0;
|
|
||||||
$arrTemp[] = $arrWait;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$arrWait = $elem;
|
|
||||||
$intNow = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$_SESSION['templatedefinition'] = $arrTemp;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Clean up data structure
|
|
||||||
// =======================
|
|
||||||
if (isset($_SESSION['templatedefinition']) && is_array($_SESSION['templatedefinition'])) {
|
|
||||||
$arrTemp = array();
|
|
||||||
foreach ($_SESSION['templatedefinition'] as $key => $elem) {
|
|
||||||
if ($elem['status'] == 0) {
|
|
||||||
$arrTemp[] = $elem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$_SESSION['templatedefinition'] = $arrTemp;
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
||||||
<title>None</title>
|
|
||||||
<link href="<?php echo $_SESSION['SETS']['path']['base_url']?>config/main.css" rel="stylesheet" type="text/css">
|
|
||||||
<script type="text/javascript">
|
|
||||||
<!--
|
|
||||||
const base = "<?php echo $_SESSION['SETS']['path']['base_url']; ?>admin/templatedefinitions.php?dataId=";
|
|
||||||
function doDel(key) {
|
|
||||||
let link;
|
|
||||||
link = base+"<?php echo $chkDataId; ?>&type=<?php echo $chkType; ?>&mode=del&def="+key;
|
|
||||||
document.location.href = link;
|
|
||||||
}
|
|
||||||
function doUp(key,elem) {
|
|
||||||
let link;
|
|
||||||
link = base+"<?php echo $chkDataId; ?>&type=<?php echo $chkType; ?>&mode=sortup&key="+key+"def="+elem;
|
|
||||||
document.location.href = link;
|
|
||||||
}
|
|
||||||
function doDown(key,elem) {
|
|
||||||
let link;
|
|
||||||
link = base+"<?php echo $chkDataId; ?>&type=<?php echo $chkType; ?>&mode=sortdown&key="+key+"def="+elem;
|
|
||||||
document.location.href = link;
|
|
||||||
}
|
|
||||||
//-->
|
|
||||||
</script>
|
|
||||||
</head>
|
|
||||||
<body style="margin:0">
|
|
||||||
<table cellpadding="0" cellspacing="0" border="0" width="100%">
|
|
||||||
<?php
|
|
||||||
if (isset($_SESSION['templatedefinition']) && is_array($_SESSION['templatedefinition']) &&
|
|
||||||
(count($_SESSION['templatedefinition']) != 0)) {
|
|
||||||
foreach ($_SESSION['templatedefinition'] as $key => $elem) {
|
|
||||||
if ($elem['status'] == 0) {
|
|
||||||
?>
|
|
||||||
<tr>
|
|
||||||
<td class="tablerow" style="padding-bottom:2px;"><?php
|
|
||||||
echo htmlspecialchars(stripslashes($elem['definition']), ENT_COMPAT, 'UTF-8');
|
|
||||||
if ($elem['active'] == 0) {
|
|
||||||
echo ' [inactive]';
|
|
||||||
} ?></td>
|
|
||||||
<td class="tablerow" align="right"><img src="<?php
|
|
||||||
echo $_SESSION['SETS']['path']['base_url']; ?>images/up.gif" width="18" height="18" alt="<?php
|
|
||||||
echo translate('Up'); ?>" title="<?php echo translate('Up'); ?>" onClick="doUp('<?php
|
|
||||||
echo $key; ?>','<?php
|
|
||||||
echo $elem['idSlave']. '::' .$elem['idTable']; ?>')" style="cursor:pointer"> <img src="<?php
|
|
||||||
echo $_SESSION['SETS']['path']['base_url']; ?>images/down.gif" width="18" height="18" alt="<?php
|
|
||||||
echo translate('Down'); ?>" title="<?php echo translate('Down'); ?>" onClick="doDown('<?php
|
|
||||||
echo $key; ?>','<?php
|
|
||||||
echo $elem['idSlave']. '::' .$elem['idTable']; ?>')" style="cursor:pointer"> <img src="<?php
|
|
||||||
echo $_SESSION['SETS']['path']['base_url']; ?>images/delete.gif" width="18" height="18" alt="<?php
|
|
||||||
echo translate('Delete'); ?>" title="<?php echo translate('Delete'); ?>" onClick="doDel('<?php
|
|
||||||
echo $elem['idSlave']. '::' .$elem['idTable']; ?>')" style="cursor:pointer"></td>
|
|
||||||
</tr>
|
|
||||||
<?php
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
?>
|
|
||||||
<tr>
|
|
||||||
<td class="tablerow"><?php echo translate('No data'); ?></td>
|
|
||||||
<td class="tablerow" align="right"> </td>
|
|
||||||
</tr>
|
|
||||||
<?php
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
</table>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,198 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Admin time definition list
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$preAccess = 1;
|
|
||||||
$preNoMain = 1;
|
|
||||||
//
|
|
||||||
// Include preprocessing file
|
|
||||||
// ==========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
//
|
|
||||||
// Process post parameters
|
|
||||||
// =======================
|
|
||||||
$chkTipId = filter_input(INPUT_GET, 'tipId', FILTER_VALIDATE_INT, array('options' => array('default' => 0)));
|
|
||||||
$chkVersion = filter_input(INPUT_GET, 'version', FILTER_VALIDATE_INT, array('options' => array('default' => 0)));
|
|
||||||
$chkMode = filter_input(INPUT_GET, 'mode', FILTER_SANITIZE_STRING);
|
|
||||||
$chkDef = filter_input(INPUT_GET, 'def', FILTER_SANITIZE_STRING);
|
|
||||||
$chkRange = filter_input(INPUT_GET, 'range', FILTER_SANITIZE_STRING);
|
|
||||||
$chkId = filter_input(INPUT_GET, 'id', FILTER_SANITIZE_STRING);
|
|
||||||
if (get_magic_quotes_gpc() == 0) {
|
|
||||||
$chkDef = addslashes($chkDef);
|
|
||||||
$chkRange = addslashes($chkRange);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Get data
|
|
||||||
// ========
|
|
||||||
$strSQL = "SELECT * FROM `tbl_timedefinition` WHERE `tipId`=$chkTipId ORDER BY `definition`";
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrDataLines, $intDataCount);
|
|
||||||
//
|
|
||||||
// Store data to session
|
|
||||||
// ============================
|
|
||||||
if ($chkMode == '') {
|
|
||||||
$_SESSION['timedefinition'] = array();
|
|
||||||
if ($booReturn && ($intDataCount != 0)) {
|
|
||||||
foreach ($arrDataLines as $elem) {
|
|
||||||
$arrTemp['id'] = $elem['id'];
|
|
||||||
$arrTemp['definition'] = addslashes($elem['definition']);
|
|
||||||
$arrTemp['range'] = addslashes($elem['range']);
|
|
||||||
$arrTemp['status'] = 0;
|
|
||||||
$_SESSION['timedefinition'][] = $arrTemp;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Add mode
|
|
||||||
// =========
|
|
||||||
if ($chkMode == 'add') {
|
|
||||||
if (isset($_SESSION['timedefinition']) && is_array($_SESSION['timedefinition'])) {
|
|
||||||
$intCheck = 0;
|
|
||||||
foreach ($_SESSION['timedefinition'] as $key => $elem) {
|
|
||||||
if (($elem['definition'] == $chkDef) && ($elem['status'] == 0)) {
|
|
||||||
$_SESSION['timedefinition'][$key]['definition'] = $chkDef;
|
|
||||||
$_SESSION['timedefinition'][$key]['range'] = $chkRange;
|
|
||||||
$intCheck = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($intCheck == 0) {
|
|
||||||
$arrTemp['id'] = 0;
|
|
||||||
$arrTemp['definition'] = $chkDef;
|
|
||||||
$arrTemp['range'] = $chkRange;
|
|
||||||
$arrTemp['status'] = 0;
|
|
||||||
$_SESSION['timedefinition'][] = $arrTemp;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$arrTemp['id'] = 0;
|
|
||||||
$arrTemp['definition'] = $chkDef;
|
|
||||||
$arrTemp['range'] = $chkRange;
|
|
||||||
$arrTemp['status'] = 0;
|
|
||||||
$_SESSION['timedefinition'][] = $arrTemp;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Deletion mode
|
|
||||||
// =============
|
|
||||||
if ($chkMode == 'del' && isset($_SESSION['timedefinition']) && is_array($_SESSION['timedefinition'])) {
|
|
||||||
foreach ($_SESSION['timedefinition'] as $key => $elem) {
|
|
||||||
if (($elem['definition'] == $chkDef) && ($elem['status'] == 0)) {
|
|
||||||
$_SESSION['timedefinition'][$key]['status'] = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
||||||
<title>None</title>
|
|
||||||
<link href="<?php
|
|
||||||
echo $_SESSION['SETS']['path']['base_url']; ?>config/main.css" rel="stylesheet" type="text/css">
|
|
||||||
<!--suppress JSUnresolvedVariable -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
<!--
|
|
||||||
function doEdit(key,range) {
|
|
||||||
<?php
|
|
||||||
if ($chkVersion == 3) {
|
|
||||||
?>
|
|
||||||
parent.document.frmDetail.txtTimedefinition.value = decodeURIComponent(key);
|
|
||||||
parent.document.frmDetail.txtTimerange2.value = decodeURIComponent(range);
|
|
||||||
<?php
|
|
||||||
} else {
|
|
||||||
?>
|
|
||||||
if (key === "monday") {
|
|
||||||
parent.document.frmDetail.selTimedefinition.selectedIndex = 0;
|
|
||||||
} else if (key === "tuesday") {
|
|
||||||
parent.document.frmDetail.selTimedefinition.selectedIndex = 1;
|
|
||||||
} else if (key === "wednesday") {
|
|
||||||
parent.document.frmDetail.selTimedefinition.selectedIndex = 2;
|
|
||||||
} else if (key === "thursday") {
|
|
||||||
parent.document.frmDetail.selTimedefinition.selectedIndex = 3;
|
|
||||||
} else if (key === "friday") {
|
|
||||||
parent.document.frmDetail.selTimedefinition.selectedIndex = 4;
|
|
||||||
} else if (key === "saturday") {
|
|
||||||
parent.document.frmDetail.selTimedefinition.selectedIndex = 5;
|
|
||||||
} else if (key === "sunday") {
|
|
||||||
parent.document.frmDetail.selTimedefinition.selectedIndex = 6;
|
|
||||||
}
|
|
||||||
parent.document.frmDetail.txtTimerange1.value = range;
|
|
||||||
<?php
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
}
|
|
||||||
function doDel(key) {
|
|
||||||
document.location.href = "<?php
|
|
||||||
echo $_SESSION['SETS']['path']['base_url']; ?>admin/timedefinitions.php?tipId=<?php
|
|
||||||
echo $chkTipId; ?>&mode=del&def="+key;
|
|
||||||
}
|
|
||||||
//-->
|
|
||||||
</script>
|
|
||||||
<style type="text/css">
|
|
||||||
.tablerow {
|
|
||||||
border-bottom:1px solid #009900;
|
|
||||||
font-size:12px;
|
|
||||||
height:20px;
|
|
||||||
padding-top:2px;
|
|
||||||
padding-left:5px;
|
|
||||||
padding-right:5px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body style="margin:0">
|
|
||||||
<table cellpadding="0" cellspacing="0" border="0" width="100%">
|
|
||||||
<?php
|
|
||||||
if (isset($_SESSION['timedefinition']) && is_array($_SESSION['timedefinition']) &&
|
|
||||||
(count($_SESSION['timedefinition']) != 0)) {
|
|
||||||
foreach ($_SESSION['timedefinition'] as $elem) {
|
|
||||||
if ($elem['status'] == 0) {
|
|
||||||
?>
|
|
||||||
<tr>
|
|
||||||
<td class="tablerow" style="padding-bottom:2px; width:260px"><?php
|
|
||||||
echo htmlentities(stripslashes($elem['definition']), ENT_COMPAT, 'UTF-8'); ?></td>
|
|
||||||
<td class="tablerow" style="padding-bottom:2px; width:260px"><?php
|
|
||||||
echo htmlentities(stripslashes($elem['range']), ENT_COMPAT, 'UTF-8'); ?></td>
|
|
||||||
<td class="tablerow" style="width:50px" align="right"><img src="<?php
|
|
||||||
echo $_SESSION['SETS']['path']['base_url']; ?>images/edit.gif" width="18" height="18" alt="<?php
|
|
||||||
echo translate('Modify'); ?>" title="<?php echo translate('Modify'); ?>" onClick="doEdit('<?php
|
|
||||||
echo rawurlencode(stripslashes($elem['definition'])); ?>','<?php
|
|
||||||
echo rawurlencode(stripslashes($elem['range'])); ?>')" style="cursor:pointer"> <img src="<?php
|
|
||||||
echo $_SESSION['SETS']['path']['base_url']; ?>images/delete.gif" width="18" height="18" alt="<?php
|
|
||||||
echo translate('Delete'); ?>" title="<?php echo translate('Delete'); ?>" onClick="doDel('<?php
|
|
||||||
echo rawurlencode(stripslashes($elem['definition'])); ?>')" style="cursor:pointer"></td>
|
|
||||||
</tr>
|
|
||||||
<?php
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
?>
|
|
||||||
<tr>
|
|
||||||
<td class="tablerow"><?php echo translate('No data'); ?></td>
|
|
||||||
<td class="tablerow"> </td>
|
|
||||||
<td class="tablerow" align="right"> </td>
|
|
||||||
</tr>
|
|
||||||
<?php
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
</table>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,304 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Timeperiod definitions
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 16;
|
|
||||||
$preContent = 'admin/timeperiods.htm.tpl';
|
|
||||||
$preListTpl = 'admin/datalist.htm.tpl';
|
|
||||||
$preSearchSession = 'timeperiod';
|
|
||||||
$preTableName = 'tbl_timeperiod';
|
|
||||||
$preKeyField = 'timeperiod_name';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Add or modify data
|
|
||||||
// ==================
|
|
||||||
if ((($chkModus == 'insert') || ($chkModus == 'modify')) && ($intGlobalWriteAccess == 0)) {
|
|
||||||
$strSQLx = "`$preTableName` SET `$preKeyField`='$chkTfValue1', `alias`='$chkTfValue2', `exclude`=$intMselValue1, "
|
|
||||||
. "`use_template`=$intMselValue2, `name`='$chkTfValue3', $preSQLCommon1";
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$strSQL = 'INSERT INTO ' .$strSQLx;
|
|
||||||
} else {
|
|
||||||
$strSQL = 'UPDATE ' .$strSQLx. ' WHERE `id`=' .$chkDataId;
|
|
||||||
}
|
|
||||||
if ($intWriteAccessId == 0) {
|
|
||||||
if (($chkTfValue1 != '') && ($chkTfValue2 != '')) {
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$chkDataId = $intInsertId;
|
|
||||||
}
|
|
||||||
if ($intReturn == 1) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strInfoMessage);
|
|
||||||
$myDataClass->updateStatusTable($preTableName);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$myDataClass->writeLog(translate('New time period inserted:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$myDataClass->writeLog(translate('Time period modified:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Insert/update relations
|
|
||||||
// =======================
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
if ($intMselValue1 != 0) {
|
|
||||||
$intRet1 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkTimeperiodToTimeperiod',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue1
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet1) && ($intRet1 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue2 != 0) {
|
|
||||||
$intRet2 = $myDataClass->dataInsertRelation(
|
|
||||||
'tbl_lnkTimeperiodToTimeperiodUse',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue2
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (isset($intRet2) && ($intRet2 != 0)) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
} elseif ($chkModus == 'modify') {
|
|
||||||
if ($intMselValue1 != 0) {
|
|
||||||
$intRet1 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkTimeperiodToTimeperiod',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue1
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet1 = $myDataClass->dataDeleteRelation('tbl_lnkTimeperiodToTimeperiod', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet1 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
if ($intMselValue2 != 0) {
|
|
||||||
$intRet2 = $myDataClass->dataUpdateRelation(
|
|
||||||
'tbl_lnkTimeperiodToTimeperiodUse',
|
|
||||||
$chkDataId,
|
|
||||||
$chkMselValue2
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$intRet2 = $myDataClass->dataDeleteRelation('tbl_lnkTimeperiodToTimeperiodUse', $chkDataId);
|
|
||||||
}
|
|
||||||
if ($intRet2 != 0) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (($intRet1 + $intRet2) != 0) {
|
|
||||||
$strInfoMessage = '';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Insert/update time defintions
|
|
||||||
// =============================
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$strSQL = "DELETE FROM `tbl_timedefinition` WHERE `tipId`=$chkDataId";
|
|
||||||
$booReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (isset($_SESSION['timedefinition']) && is_array($_SESSION['timedefinition']) &&
|
|
||||||
(count($_SESSION['timedefinition']) != 0)) {
|
|
||||||
foreach ($_SESSION['timedefinition'] as $elem) {
|
|
||||||
if ($elem['status'] == 0) {
|
|
||||||
if ($elem['definition'] != 'use') {
|
|
||||||
$elem['range'] = str_replace(' ', '', $elem['range']);
|
|
||||||
}
|
|
||||||
$strSQL = 'INSERT INTO `tbl_timedefinition` (`tipId`,`definition`,`range`, '
|
|
||||||
. "`last_modified`) VALUES ($chkDataId,'".$elem['definition']."',"
|
|
||||||
. "'".$elem['range']."',now())";
|
|
||||||
$booReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($booReturn == false) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Database entry failed! Not all necessary data filled in!'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Database entry failed! No write access!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
if ($chkModus != 'add') {
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Get date/time of last database and config file manipulation
|
|
||||||
// ===========================================================
|
|
||||||
$intReturn = $myConfigClass->lastModifiedFile($preTableName, $arrTimeData, $strTimeInfoString);
|
|
||||||
if ($intReturn != 0) {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Singe data form
|
|
||||||
// ===============
|
|
||||||
if ($chkModus == 'add') {
|
|
||||||
$conttp->setVariable('TITLE', translate('Time period definitions (timeperiods.cfg)'));
|
|
||||||
// Do not show modified time list
|
|
||||||
$intNoTime = 1;
|
|
||||||
// Process exclude selection fields
|
|
||||||
if (isset($arrModifyData['exclude'])) {
|
|
||||||
$intFieldId = $arrModifyData['exclude'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn1 = $myVisClass->parseSelectMulti(
|
|
||||||
$preTableName,
|
|
||||||
'name',
|
|
||||||
'excludes',
|
|
||||||
'tbl_lnkTimeperiodToTimeperiod',
|
|
||||||
0,
|
|
||||||
$intFieldId,
|
|
||||||
$chkListId
|
|
||||||
);
|
|
||||||
if ($intReturn1 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process include selection fields
|
|
||||||
if (isset($arrModifyData['use_template'])) {
|
|
||||||
$intFieldId = $arrModifyData['use_template'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn2 = $myVisClass->parseSelectMulti(
|
|
||||||
$preTableName,
|
|
||||||
'name',
|
|
||||||
'uses',
|
|
||||||
'tbl_lnkTimeperiodToTimeperiodUse',
|
|
||||||
0,
|
|
||||||
$intFieldId,
|
|
||||||
$chkListId
|
|
||||||
);
|
|
||||||
if ($intReturn2 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process acces group selection field
|
|
||||||
if (isset($arrModifyData['access_group'])) {
|
|
||||||
$intFieldId = $arrModifyData['access_group'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
$intReturn3 = $myVisClass->parseSelectSimple('tbl_group', 'groupname', 'acc_group', 0, $intFieldId);
|
|
||||||
if ($intReturn3 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Initial add/modify form definitions
|
|
||||||
$myContentClass->addFormInit($conttp);
|
|
||||||
if ($intDataWarning == 1) {
|
|
||||||
$conttp->setVariable('WARNING', $strDBWarning. '<br>' .translate('Saving not possible!'));
|
|
||||||
}
|
|
||||||
if ($intVersion < 3) {
|
|
||||||
$conttp->setVariable('VERSION_20_VALUE_MUST', 'mselValue1,');
|
|
||||||
}
|
|
||||||
$conttp->setVariable('LANG_INSERT_ALL_TIMERANGE', translate('Please insert a time definition and a time range'));
|
|
||||||
// Insert data from database in "modify" mode
|
|
||||||
if (isset($arrModifyData) && ($chkSelModify == 'modify')) {
|
|
||||||
// Check relation information to find out locked configuration datasets
|
|
||||||
$intLocked = $myDataClass->infoRelation($preTableName, $arrModifyData['id'], $preKeyField);
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strRelMessage);
|
|
||||||
$strInfo = '<br><span class="redmessage">' .translate('Entry cannot be activated because it is used by '
|
|
||||||
. 'another configuration'). ':</span>';
|
|
||||||
$strInfo .= '<br><span class="greenmessage">' .$strRelMessage. '</span>';
|
|
||||||
// Process data
|
|
||||||
$myContentClass->addInsertData($conttp, $arrModifyData, $intLocked, $strInfo);
|
|
||||||
$conttp->setVariable('TIP_ID', $arrModifyData['id']);
|
|
||||||
}
|
|
||||||
$conttp->parse('datainsert');
|
|
||||||
$conttp->show('datainsert');
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// List view
|
|
||||||
// ==========
|
|
||||||
if ($chkModus == 'display') {
|
|
||||||
// Initial list view definitions
|
|
||||||
$myContentClass->listViewInit($mastertp);
|
|
||||||
$mastertp->setVariable('TITLE', translate('Time period definitions (timeperiods.cfg)'));
|
|
||||||
$mastertp->setVariable('FIELD_1', translate('Time period'));
|
|
||||||
$mastertp->setVariable('FIELD_2', translate('Description'));
|
|
||||||
// Process filter string
|
|
||||||
if ($_SESSION['search'][$preSearchSession] != '') {
|
|
||||||
$strSearchTxt = $_SESSION['search'][$preSearchSession];
|
|
||||||
$strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%' OR `alias` LIKE '%".$strSearchTxt."%' "
|
|
||||||
. "OR `name` LIKE '%".$strSearchTxt."%')";
|
|
||||||
}
|
|
||||||
// Row sorting
|
|
||||||
$strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir";
|
|
||||||
if ($hidSortBy == 2) {
|
|
||||||
$strOrderString = "ORDER BY `config_id`, `alias` $hidSortDir";
|
|
||||||
}
|
|
||||||
// Count datasets
|
|
||||||
$strSQL = "SELECT count(*) AS `number` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere "
|
|
||||||
. "AND `access_group` IN ($strAccess)";
|
|
||||||
$booReturn1 = $myDBClass->hasSingleDataset($strSQL, $arrDataLinesCount);
|
|
||||||
if ($booReturn1 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$intLineCount = (int)$arrDataLinesCount['number'];
|
|
||||||
if ($intLineCount < $chkLimit) {
|
|
||||||
$chkLimit = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Get datasets
|
|
||||||
$strSQL = "SELECT `id`, `$preKeyField`, `alias`, `register`, `active`, `config_id`, `access_group` "
|
|
||||||
. "FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess) "
|
|
||||||
. "$strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
|
||||||
$booReturn2 = $myDBClass->hasDataArray($strSQL, $arrDataLines, $intDataCount);
|
|
||||||
if ($booReturn2 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process data
|
|
||||||
$myContentClass->listData($mastertp, $arrDataLines, $intDataCount, $intLineCount, $preKeyField, 'alias');
|
|
||||||
}
|
|
||||||
// Show messages
|
|
||||||
$myContentClass->showMessages(
|
|
||||||
$mastertp,
|
|
||||||
$strErrorMessage,
|
|
||||||
$strInfoMessage,
|
|
||||||
$strConsistMessage,
|
|
||||||
$arrTimeData,
|
|
||||||
$strTimeInfoString,
|
|
||||||
$intNoTime
|
|
||||||
);
|
|
||||||
//
|
|
||||||
// Process footer
|
|
||||||
// ==============
|
|
||||||
$myContentClass->showFooter($maintp, $setFileVersion);
|
|
@ -1,45 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Tools overview
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 6;
|
|
||||||
$preContent = 'admin/mainpages.htm.tpl';
|
|
||||||
//
|
|
||||||
// Include preprocessing file
|
|
||||||
// ==========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
//
|
|
||||||
// Include content
|
|
||||||
// ===============
|
|
||||||
$conttp->setVariable('TITLE', translate('Different tools'));
|
|
||||||
$conttp->setVariable('DESC', translate('Useful functions for data import, main configuration, daemon control, etc.'));
|
|
||||||
$conttp->parse('main');
|
|
||||||
$conttp->show('main');
|
|
||||||
//
|
|
||||||
// Include Footer
|
|
||||||
// ==============
|
|
||||||
$maintp->setVariable('VERSION_INFO', "<a href='https://sourceforge.net/projects/nagiosql/' "
|
|
||||||
. "target='_blank'>NagiosQL</a> $setFileVersion");
|
|
||||||
$maintp->parse('footer');
|
|
||||||
$maintp->show('footer');
|
|
212
admin/user.php
212
admin/user.php
@ -1,212 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : User administration
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 32;
|
|
||||||
$preContent = 'admin/user.htm.tpl';
|
|
||||||
$preListTpl = 'admin/datalist_common.htm.tpl';
|
|
||||||
$preSearchSession = 'user';
|
|
||||||
$preTableName = 'tbl_user';
|
|
||||||
$preKeyField = 'username';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
$preNoAccessGrp = 1;
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Add or modify data
|
|
||||||
// ==================
|
|
||||||
if ((($chkModus == 'insert') || ($chkModus == 'modify')) && ($intGlobalWriteAccess == 0)) {
|
|
||||||
// Check password
|
|
||||||
if ((($chkTfValue3 === $chkTfValue4) && (strlen($chkTfValue3) > 5)) ||
|
|
||||||
(($chkModus == 'modify') && ($chkTfValue3 == ''))) {
|
|
||||||
if ($chkTfValue3 == '') {
|
|
||||||
$strPasswd = '';
|
|
||||||
} else {
|
|
||||||
$strPasswd = "`password`=MD5('$chkTfValue3'),";
|
|
||||||
}
|
|
||||||
// Grant admin rights
|
|
||||||
if ($chkTfValue5 == 'Admin') {
|
|
||||||
$chkTfValue1 = 'Admin';
|
|
||||||
$chkActive = '1';
|
|
||||||
$chkChbValue1 = '1';
|
|
||||||
}
|
|
||||||
$strSQLx = "`$preTableName` SET `$preKeyField`='$chkTfValue1', `alias`='$chkTfValue2', $strPasswd "
|
|
||||||
. "`admin_enable`='$chkChbValue1', `wsauth`='$chkChbValue2', `active`='$chkActive', "
|
|
||||||
. "`language`='$chkSelValue1', `domain`='$chkSelValue2', `last_modified`=NOW()";
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$strSQL = 'INSERT INTO ' .$strSQLx;
|
|
||||||
} else {
|
|
||||||
$strSQL = 'UPDATE ' .$strSQLx. ' WHERE `id`=' .$chkDataId;
|
|
||||||
}
|
|
||||||
if ($intWriteAccessId == 0) {
|
|
||||||
if (($chkTfValue1 != '') && ($chkTfValue2 != '')) {
|
|
||||||
$intReturn = $myDataClass->dataInsert($strSQL, $intInsertId);
|
|
||||||
if ($intReturn == 1) {
|
|
||||||
$myVisClass->processMessage($myDataClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage($myDataClass->strInfoMessage, $strInfoMessage);
|
|
||||||
if ($chkModus == 'insert') {
|
|
||||||
$myDataClass->writeLog(translate('New user added:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
if ($chkModus == 'modify') {
|
|
||||||
$myDataClass->writeLog(translate('User modified:'). ' ' .$chkTfValue1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Database entry failed! Not all necessary data filled in!'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Database entry failed! No write access!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Password too short or password fields do not match!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
if ($chkModus != 'add') {
|
|
||||||
$chkModus = 'display';
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Singe data form
|
|
||||||
// ===============
|
|
||||||
if ($chkModus == 'add') {
|
|
||||||
// Process domain selection field
|
|
||||||
if (isset($arrModifyData['domain'])) {
|
|
||||||
$intFieldId = $arrModifyData['domain'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 1;
|
|
||||||
}
|
|
||||||
$intReturn1 = $myVisClass->parseSelectSimple('tbl_datadomain', 'domain', 'std_domain', 0, $intFieldId, 0);
|
|
||||||
if ($intReturn1 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process language selection field
|
|
||||||
if (isset($arrModifyData['language'])) {
|
|
||||||
$intFieldId = $arrModifyData['language'];
|
|
||||||
} else {
|
|
||||||
$intFieldId = 0;
|
|
||||||
}
|
|
||||||
if ($intFieldId == 0) {
|
|
||||||
$intFieldId = $myDBClass->getFieldData('SELECT `id` FROM `tbl_language` '
|
|
||||||
. "WHERE `locale`='".$_SESSION['SETS']['data']['locale']."'");
|
|
||||||
$intFieldId = (int)$intFieldId;
|
|
||||||
}
|
|
||||||
$intReturn2 = $myVisClass->parseSelectSimple('tbl_language', 'language', 'language_name', 0, $intFieldId);
|
|
||||||
if ($intReturn2 != 0) {
|
|
||||||
$myVisClass->processMessage($myVisClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Initial add/modify form definitions
|
|
||||||
$myContentClass->addFormInit($conttp);
|
|
||||||
$conttp->setVariable('TITLE', translate('User administration'));
|
|
||||||
$conttp->setVariable('WSAUTH_DISABLE', 'disabled');
|
|
||||||
$conttp->setVariable('FILL_ALLFIELDS', translate('Please fill in all fields marked with an *'));
|
|
||||||
$conttp->setVariable('FILL_ILLEGALCHARS', translate('The following field contains illegal characters:'));
|
|
||||||
$conttp->setVariable('FILL_PASSWD_NOT_EQUAL', translate('The passwords do not match!'));
|
|
||||||
$conttp->setVariable('FILL_PASSWORD', translate('Please fill in the password'));
|
|
||||||
$conttp->setVariable('FILL_PWDSHORT', translate('The password is too short - use at least 6 characters!'));
|
|
||||||
$conttp->setVariable('LANG_WEBSERVER_AUTH', translate('Webserver authentification'));
|
|
||||||
$conttp->setVariable('PASSWORD_MUST', 'class="inpmust"');
|
|
||||||
$conttp->setVariable('PASSWORD_MUST_STAR', '*');
|
|
||||||
// If webserver authetification is enabled - show option field
|
|
||||||
if (isset($SETS['security']['wsauth']) && ($SETS['security']['wsauth'] == 1)) {
|
|
||||||
$conttp->setVariable('WSAUTH_DISABLE', '');
|
|
||||||
}
|
|
||||||
// Insert data from database in "modify" mode
|
|
||||||
if (isset($arrModifyData) && ($chkSelModify == 'modify')) {
|
|
||||||
// Process data
|
|
||||||
$myContentClass->addInsertData($conttp, $arrModifyData, 0, '');
|
|
||||||
// Webserver authentification
|
|
||||||
$conttp->setVariable('WSAUTH_CHECKED', '');
|
|
||||||
if ($arrModifyData['wsauth'] == 1) {
|
|
||||||
$conttp->setVariable('WSAUTH_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
// Object based group administration
|
|
||||||
$conttp->setVariable('ADMINENABLE_CHECKED', '');
|
|
||||||
if ($arrModifyData['admin_enable'] == 1) {
|
|
||||||
$conttp->setVariable('ADMINENABLE_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
// Admin rules
|
|
||||||
if ($arrModifyData[$preKeyField] == 'Admin') {
|
|
||||||
$conttp->setVariable('NAME_DISABLE', 'disabled');
|
|
||||||
$conttp->setVariable('ACT_DISABLE', 'disabled');
|
|
||||||
$conttp->setVariable('WSAUTH_DISABLE', 'disabled');
|
|
||||||
$conttp->setVariable('ADMINENABLE_DISABLE', 'disabled');
|
|
||||||
$conttp->setVariable('ADMINENABLE_CHECKED', 'checked');
|
|
||||||
}
|
|
||||||
$conttp->setVariable('PASSWORD_MUST', '');
|
|
||||||
$conttp->setVariable('PASSWORD_MUST_STAR', '');
|
|
||||||
}
|
|
||||||
$conttp->parse('datainsert');
|
|
||||||
$conttp->show('datainsert');
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Data table
|
|
||||||
// ==========
|
|
||||||
if ($chkModus == 'display') {
|
|
||||||
// Initial list view definitions
|
|
||||||
$myContentClass->listViewInit($mastertp);
|
|
||||||
$mastertp->setVariable('TITLE', translate('User administration'));
|
|
||||||
$mastertp->setVariable('FIELD_1', translate('Username'));
|
|
||||||
$mastertp->setVariable('FIELD_2', translate('Description'));
|
|
||||||
// Row sorting
|
|
||||||
$strOrderString = "ORDER BY `$preKeyField` $hidSortDir";
|
|
||||||
if ($hidSortBy == 2) {
|
|
||||||
$strOrderString = "ORDER BY `alias` $hidSortDir";
|
|
||||||
}
|
|
||||||
// Count datasets
|
|
||||||
$strSQL = "SELECT count(*) AS `number` FROM `$preTableName`";
|
|
||||||
$booReturn1 = $myDBClass->hasSingleDataset($strSQL, $arrDataLinesCount);
|
|
||||||
if ($booReturn1 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$intLineCount = (int)$arrDataLinesCount['number'];
|
|
||||||
if ($intLineCount < $chkLimit) {
|
|
||||||
$chkLimit = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Get datasets
|
|
||||||
$strSQL = "SELECT `id`, `$preKeyField`, `alias`, `active`, `nodelete` "
|
|
||||||
. "FROM `$preTableName` $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
|
||||||
$booReturn2 = $myDBClass->hasDataArray($strSQL, $arrDataLines, $intDataCount);
|
|
||||||
if ($booReturn2 == false) {
|
|
||||||
$myVisClass->processMessage(translate('Error while selecting data from database:'), $strErrorMessage);
|
|
||||||
$myVisClass->processMessage($myDBClass->strErrorMessage, $strErrorMessage);
|
|
||||||
}
|
|
||||||
// Process data
|
|
||||||
$myContentClass->listData($mastertp, $arrDataLines, $intDataCount, $intLineCount, $preKeyField, 'alias');
|
|
||||||
}
|
|
||||||
// Show messages
|
|
||||||
$myContentClass->showMessages($mastertp, $strErrorMessage, $strInfoMessage, $strConsistMessage, array(), '', 1);
|
|
||||||
//
|
|
||||||
// Process footer
|
|
||||||
// ==============
|
|
||||||
$myContentClass->showFooter($maintp, $setFileVersion);
|
|
@ -1,165 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Variable definition list
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$preAccess = 1;
|
|
||||||
$preNoMain = 1;
|
|
||||||
//
|
|
||||||
// Include preprocessing file
|
|
||||||
// ==========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
//
|
|
||||||
// Process post parameters
|
|
||||||
// =======================
|
|
||||||
$chkDataId = filter_input(INPUT_GET, 'dataId', FILTER_VALIDATE_INT, array('options' => array('default' => 0)));
|
|
||||||
$chkMode = filter_input(INPUT_GET, 'mode', FILTER_SANITIZE_STRING);
|
|
||||||
$chkDef = filter_input(INPUT_GET, 'def', FILTER_SANITIZE_STRING);
|
|
||||||
$chkRange = filter_input(INPUT_GET, 'range', FILTER_SANITIZE_STRING);
|
|
||||||
$chkLinkTab = filter_input(INPUT_GET, 'linktab', FILTER_SANITIZE_STRING);
|
|
||||||
if (get_magic_quotes_gpc() == 0) {
|
|
||||||
$chkDef = addslashes($chkDef);
|
|
||||||
$chkRange = addslashes($chkRange);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Get data
|
|
||||||
// ========
|
|
||||||
if ($chkLinkTab != '') {
|
|
||||||
$strSQL = 'SELECT * FROM `tbl_variabledefinition` LEFT JOIN `' .$chkLinkTab. '` ON `id`=`idSlave` ' .
|
|
||||||
"WHERE `idMaster`=$chkDataId ORDER BY `name`";
|
|
||||||
$booReturn = $myDBClass->hasDataArray($strSQL, $arrDataLines, $intDataCount);
|
|
||||||
//
|
|
||||||
// Store data to session
|
|
||||||
// ============================
|
|
||||||
if ($chkMode == '') {
|
|
||||||
$arrTemp = array();
|
|
||||||
$_SESSION['variabledefinition'] = array();
|
|
||||||
if ($booReturn && ($intDataCount != 0)) {
|
|
||||||
foreach ($arrDataLines as $elem) {
|
|
||||||
$arrTemp['id'] = $elem['id'];
|
|
||||||
$arrTemp['definition'] = addslashes($elem['name']);
|
|
||||||
$arrTemp['range'] = addslashes($elem['value']);
|
|
||||||
$arrTemp['status'] = 0;
|
|
||||||
$_SESSION['variabledefinition'][] = $arrTemp;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Add mode
|
|
||||||
// ========
|
|
||||||
if ($chkMode == 'add') {
|
|
||||||
$arrTemp = array();
|
|
||||||
if (isset($_SESSION['variabledefinition']) && is_array($_SESSION['variabledefinition'])) {
|
|
||||||
$intCheck = 0;
|
|
||||||
foreach ($_SESSION['variabledefinition'] as $key => $elem) {
|
|
||||||
if (($elem['definition'] == $chkDef) && ($elem['status'] == 0)) {
|
|
||||||
$_SESSION['variabledefinition'][$key]['definition'] = $chkDef;
|
|
||||||
$_SESSION['variabledefinition'][$key]['range'] = $chkRange;
|
|
||||||
$intCheck = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($intCheck == 0) {
|
|
||||||
$arrTemp['id'] = 0;
|
|
||||||
$arrTemp['definition'] = $chkDef;
|
|
||||||
$arrTemp['range'] = $chkRange;
|
|
||||||
$arrTemp['status'] = 0;
|
|
||||||
$_SESSION['variabledefinition'][] = $arrTemp;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$arrTemp['id'] = 0;
|
|
||||||
$arrTemp['definition'] = $chkDef;
|
|
||||||
$arrTemp['range'] = $chkRange;
|
|
||||||
$arrTemp['status'] = 0;
|
|
||||||
$_SESSION['variabledefinition'][] = $arrTemp;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Deletion mode
|
|
||||||
// =============
|
|
||||||
if ($chkMode == 'del' && isset($_SESSION['variabledefinition']) && is_array($_SESSION['variabledefinition'])) {
|
|
||||||
foreach ($_SESSION['variabledefinition'] as $key => $elem) {
|
|
||||||
if (($elem['definition'] == $chkDef) && ($elem['status'] == 0)) {
|
|
||||||
$_SESSION['variabledefinition'][$key]['status'] = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
||||||
<title>None</title>
|
|
||||||
<link href="<?php echo $_SESSION['SETS']['path']['base_url']; ?>config/main.css" rel="stylesheet" type="text/css">
|
|
||||||
<!--suppress JSUnresolvedVariable -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
function doEdit(key,range) {
|
|
||||||
parent.document.frmDetail.txtVariablename.value = decodeURIComponent(key);
|
|
||||||
parent.document.frmDetail.txtVariablevalue.value = decodeURIComponent(range);
|
|
||||||
}
|
|
||||||
function doDel(key) {
|
|
||||||
let link;
|
|
||||||
link = '<?php echo $_SESSION['SETS']['path']['base_url']; ?>';
|
|
||||||
link = link+'admin/variabledefinitions.php?dataId=<?php echo $chkDataId; ?>&mode=del&def='+key;
|
|
||||||
document.location.href = link;
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
</head>
|
|
||||||
<body style="margin:0">
|
|
||||||
<table cellpadding="0" cellspacing="0" border="0" width="100%">
|
|
||||||
<?php
|
|
||||||
if (isset($_SESSION['variabledefinition']) && is_array($_SESSION['variabledefinition']) &&
|
|
||||||
(count($_SESSION['variabledefinition']) != 0)) {
|
|
||||||
foreach ($_SESSION['variabledefinition'] as $elem) {
|
|
||||||
if ($elem['status'] == 0) {
|
|
||||||
?>
|
|
||||||
<tr>
|
|
||||||
<td class="tablerow" style="padding-bottom:2px; width:260px"><?php
|
|
||||||
echo htmlentities(stripslashes($elem['definition']), ENT_COMPAT, 'UTF-8'); ?></td>
|
|
||||||
<td class="tablerow" style="padding-bottom:2px; width:260px"><?php
|
|
||||||
echo htmlentities(stripslashes($elem['range']), ENT_COMPAT, 'UTF-8'); ?></td>
|
|
||||||
<td class="tablerow" style="width:50px" align="right"><img src="<?php
|
|
||||||
echo $_SESSION['SETS']['path']['base_url']; ?>images/edit.gif" width="18" height="18" alt="<?php
|
|
||||||
echo translate('Modify'); ?>" title="<?php echo translate('Modify'); ?>" onClick="doEdit('<?php
|
|
||||||
echo rawurlencode(stripslashes($elem['definition'])); ?>','<?php
|
|
||||||
echo rawurlencode(stripslashes($elem['range'])); ?>')" style="cursor:pointer"> <img src="<?php
|
|
||||||
echo $_SESSION['SETS']['path']['base_url']; ?>images/delete.gif" width="18" height="18" alt="<?php
|
|
||||||
echo translate('Delete'); ?>" title="<?php echo translate('Delete'); ?>" onClick="doDel('<?php
|
|
||||||
echo rawurlencode(stripslashes($elem['definition'])); ?>')" style="cursor:pointer"></td>
|
|
||||||
</tr>
|
|
||||||
<?php
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
?>
|
|
||||||
<tr>
|
|
||||||
<td class="tablerow"><?php echo translate('No data'); ?></td>
|
|
||||||
<td class="tablerow"> </td>
|
|
||||||
<td class="tablerow" align="right"> </td>
|
|
||||||
</tr>
|
|
||||||
<?php
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
</table>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
575
admin/verify.php
575
admin/verify.php
@ -1,575 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Configuration verification
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$prePageId = 30;
|
|
||||||
$preContent = 'admin/verify.htm.tpl';
|
|
||||||
$preAccess = 1;
|
|
||||||
$preFieldvars = 1;
|
|
||||||
$intModus = 0;
|
|
||||||
$strInfo = '';
|
|
||||||
//
|
|
||||||
// Include preprocessing files
|
|
||||||
// ===========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
require $preBasePath.'functions/prepend_content.php';
|
|
||||||
//
|
|
||||||
// Get configuration set ID
|
|
||||||
// ========================
|
|
||||||
$myConfigClass->getConfigTargets($arrConfigSet);
|
|
||||||
$intConfigId = $arrConfigSet[0];
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'method', $intMethod);
|
|
||||||
//
|
|
||||||
// Process form variables
|
|
||||||
// ======================
|
|
||||||
$intProcessError = 0;
|
|
||||||
$intError = 0;
|
|
||||||
// Write monitoring data
|
|
||||||
if ($chkButValue1 != '') {
|
|
||||||
$strNoData = translate('Writing of the configuration failed - no dataset or not activated dataset found'). '::';
|
|
||||||
// Write host configuration
|
|
||||||
$strSQL1 = "SELECT `id` FROM `tbl_host` WHERE `config_id` = $chkDomainId AND `active`='1'";
|
|
||||||
$myDBClass->hasDataArray($strSQL1, $arrData, $intDataCount);
|
|
||||||
if ($intDataCount != 0) {
|
|
||||||
$intError = 0;
|
|
||||||
foreach ($arrData as $data) {
|
|
||||||
$intReturn = $myConfigClass->createConfigSingle('tbl_host', $data['id']);
|
|
||||||
$intError += $intReturn;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (($intError == 0) && ($intDataCount != 0)) {
|
|
||||||
$myVisClass->processMessage(translate('Write host configurations'). ' ...', $strInfo);
|
|
||||||
$myVisClass->processMessage('Hosts: ' .translate('Configuration file successfully written!'), $strInfo);
|
|
||||||
} elseif ($intDataCount != 0) {
|
|
||||||
$myVisClass->processMessage('Hosts: ' .translate('Cannot open/overwrite the configuration file (check the '
|
|
||||||
. 'permissions)!'), $strErrorMessage);
|
|
||||||
$intProcessError = 1;
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage('Hosts: ' .translate('No configuration items defined!'), $strErrorMessage);
|
|
||||||
$intProcessError = 1;
|
|
||||||
}
|
|
||||||
// Write service configuration
|
|
||||||
$strSQL = 'SELECT `id`, `config_name` '
|
|
||||||
. "FROM `tbl_service` WHERE `config_id` = $chkDomainId AND `active`='1' GROUP BY `config_name`";
|
|
||||||
$myDBClass->hasDataArray($strSQL, $arrData, $intDataCount);
|
|
||||||
if ($intDataCount != 0) {
|
|
||||||
$intError = 0;
|
|
||||||
foreach ($arrData as $data) {
|
|
||||||
$intReturn = $myConfigClass->createConfigSingle('tbl_service', $data['id']);
|
|
||||||
$intError += $intReturn;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (($intError == 0) && ($intDataCount != 0)) {
|
|
||||||
$myVisClass->processMessage(translate('Write service configurations'). ' ...', $strInfo);
|
|
||||||
$myVisClass->processMessage('Services: ' .translate('Configuration file successfully written!'), $strInfo);
|
|
||||||
} elseif ($intDataCount != 0) {
|
|
||||||
$myVisClass->processMessage('Services: ' .translate('Cannot open/overwrite the configuration file (check the '
|
|
||||||
. 'permissions)!'), $strErrorMessage);
|
|
||||||
$intProcessError = 1;
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage('Services: ' .translate('No configuration items defined!'), $strErrorMessage);
|
|
||||||
$intProcessError = 1;
|
|
||||||
}
|
|
||||||
// Write hostgroup configuration
|
|
||||||
$intReturn1 = $myConfigClass->createConfig('tbl_hostgroup');
|
|
||||||
if ($intReturn1 == 0) {
|
|
||||||
$myVisClass->processMessage(translate('Write'). ' hostgroups.cfg ...', $strInfo);
|
|
||||||
$myVisClass->processMessage('Hostgroups: ' .$myConfigClass->strInfoMessage, $strInfo);
|
|
||||||
} else {
|
|
||||||
if ($myConfigClass->strErrorMessage == $strNoData) {
|
|
||||||
$myVisClass->processMessage(translate('Write'). ' hostgroups.cfg ...', $strInfo);
|
|
||||||
$myVisClass->processMessage('Hostgroups: ' .translate('No dataset or no activated dataset found - empty '
|
|
||||||
. 'configuration written'). '::', $strInfo);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage('Hostgroups: ' .$myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
$intProcessError = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Write servicegroup configuration
|
|
||||||
$intReturn2 = $myConfigClass->createConfig('tbl_servicegroup');
|
|
||||||
if ($intReturn2 == 0) {
|
|
||||||
$myVisClass->processMessage(translate('Write'). ' servicegroups.cfg ...', $strInfo);
|
|
||||||
$myVisClass->processMessage('Servicegroups: ' .$myConfigClass->strInfoMessage, $strInfo);
|
|
||||||
} else {
|
|
||||||
if ($myConfigClass->strErrorMessage == $strNoData) {
|
|
||||||
$myVisClass->processMessage(translate('Write'). ' servicegroups.cfg ...', $strInfo);
|
|
||||||
$myVisClass->processMessage('Servicegroups: ' .translate('No dataset or no activated dataset found - empty '
|
|
||||||
. 'configuration written'). '::', $strInfo);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage('Servicegroups: ' .$myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
$intProcessError = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Write hosttemplate configuration
|
|
||||||
$intReturn3 = $myConfigClass->createConfig('tbl_hosttemplate');
|
|
||||||
if ($intReturn3 == 0) {
|
|
||||||
$myVisClass->processMessage(translate('Write'). ' hosttemplates.cfg ...', $strInfo);
|
|
||||||
$myVisClass->processMessage('Hosttemplates: ' .$myConfigClass->strInfoMessage, $strInfo);
|
|
||||||
} else {
|
|
||||||
if ($myConfigClass->strErrorMessage == $strNoData) {
|
|
||||||
$myVisClass->processMessage(translate('Write'). ' hosttemplates.cfg ...', $strInfo);
|
|
||||||
$myVisClass->processMessage('Hosttemplates: ' .translate('No dataset or no activated dataset found - empty '
|
|
||||||
. 'configuration written'). '::', $strInfo);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage('Hosttemplates: ' .$myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
$intProcessError = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Write servicetemplate configuration
|
|
||||||
$intReturn4 = $myConfigClass->createConfig('tbl_servicetemplate');
|
|
||||||
if ($intReturn4 == 0) {
|
|
||||||
$myVisClass->processMessage(translate('Write'). ' servicetemplates.cfg ...', $strInfo);
|
|
||||||
$myVisClass->processMessage('Servicetemplates: ' .$myConfigClass->strInfoMessage, $strInfo);
|
|
||||||
} else {
|
|
||||||
if ($myConfigClass->strErrorMessage == $strNoData) {
|
|
||||||
$myVisClass->processMessage(translate('Write'). ' servicetemplates.cfg ...', $strInfo);
|
|
||||||
$myVisClass->processMessage('Servicetemplates: ' .translate('No dataset or no activated dataset found - '
|
|
||||||
. 'empty configuration written'). '::', $strInfo);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage('Servicetemplates: ' .$myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
$intProcessError = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Write additional data
|
|
||||||
if ($chkButValue2 != '') {
|
|
||||||
$strNoData = translate('Writing of the configuration failed - no dataset or not activated dataset found'). '::';
|
|
||||||
// Write timeperiod configuration
|
|
||||||
$intReturn5 = $myConfigClass->createConfig('tbl_timeperiod');
|
|
||||||
if ($intReturn5 == 0) {
|
|
||||||
$myVisClass->processMessage(translate('Write'). ' timeperiods.cfg ...', $strInfo);
|
|
||||||
$myVisClass->processMessage('Timeperiods: ' .$myConfigClass->strInfoMessage, $strInfo);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage('Timeperiods: ' .$myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
$intProcessError = 1;
|
|
||||||
}
|
|
||||||
// Write command configuration
|
|
||||||
$intReturn6 = $myConfigClass->createConfig('tbl_command');
|
|
||||||
if ($intReturn6 == 0) {
|
|
||||||
$myVisClass->processMessage(translate('Write'). ' commands.cfg ...', $strInfo);
|
|
||||||
$myVisClass->processMessage('Commands: ' .$myConfigClass->strInfoMessage, $strInfo);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage('Commands: ' .$myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
$intProcessError = 1;
|
|
||||||
}
|
|
||||||
// Write contact configuration
|
|
||||||
$intReturn7 = $myConfigClass->createConfig('tbl_contact');
|
|
||||||
if ($intReturn7 == 0) {
|
|
||||||
$myVisClass->processMessage(translate('Write'). ' contacts.cfg ...', $strInfo);
|
|
||||||
$myVisClass->processMessage('Contacts: ' .$myConfigClass->strInfoMessage, $strInfo);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage('Contacts: ' .$myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
$intProcessError = 1;
|
|
||||||
}
|
|
||||||
// Write contactgroup configuration
|
|
||||||
$intReturn8 = $myConfigClass->createConfig('tbl_contactgroup');
|
|
||||||
if ($intReturn8 == 0) {
|
|
||||||
$myVisClass->processMessage(translate('Write'). ' contactgroups.cfg ...', $strInfo);
|
|
||||||
$myVisClass->processMessage('Contactgroups: ' .$myConfigClass->strInfoMessage, $strInfo);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage('Contactgroups: ' .$myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
$intProcessError = 1;
|
|
||||||
}
|
|
||||||
// Write contacttemplate configuration
|
|
||||||
$intReturn9 = $myConfigClass->createConfig('tbl_contacttemplate');
|
|
||||||
if ($intReturn9 == 0) {
|
|
||||||
$myVisClass->processMessage(translate('Write'). ' contacttemplates.cfg ...', $strInfo);
|
|
||||||
$myVisClass->processMessage('Contacttemplates: ' .$myConfigClass->strInfoMessage, $strInfo);
|
|
||||||
} else {
|
|
||||||
if ($myConfigClass->strErrorMessage == $strNoData) {
|
|
||||||
$myVisClass->processMessage(translate('Write'). ' contacttemplates.cfg ...', $strInfo);
|
|
||||||
$myVisClass->processMessage('Contacttemplates: ' .translate('No dataset or no activated dataset found - '
|
|
||||||
. 'empty configuration written'). '::', $strInfo);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage('Contacttemplates: ' .$myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
$intProcessError = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Write servicedependency configuration
|
|
||||||
$intReturn10 = $myConfigClass->createConfig('tbl_servicedependency');
|
|
||||||
if ($intReturn10 == 0) {
|
|
||||||
$myVisClass->processMessage(translate('Write'). ' servicedependencies.cfg ...', $strInfo);
|
|
||||||
$myVisClass->processMessage('Servicedependencies: ' .$myConfigClass->strInfoMessage, $strInfo);
|
|
||||||
} else {
|
|
||||||
if ($myConfigClass->strErrorMessage == $strNoData) {
|
|
||||||
$myVisClass->processMessage(translate('Write'). ' servicedependencies.cfg ...', $strInfo);
|
|
||||||
$myVisClass->processMessage('Servicedependencies: ' .translate('No dataset or no activated dataset found - '
|
|
||||||
. 'empty configuration written'). '::', $strInfo);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage('Servicedependencies: ' .$myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
$intProcessError = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Write hostdependency configuration
|
|
||||||
$intReturn11 = $myConfigClass->createConfig('tbl_hostdependency');
|
|
||||||
if ($intReturn11 == 0) {
|
|
||||||
$myVisClass->processMessage(translate('Write'). ' hostdependencies.cfg ...', $strInfo);
|
|
||||||
$myVisClass->processMessage('Hostdependencies: ' .$myConfigClass->strInfoMessage, $strInfo);
|
|
||||||
} else {
|
|
||||||
if ($myConfigClass->strErrorMessage == $strNoData) {
|
|
||||||
$myVisClass->processMessage(translate('Write'). ' hostdependencies.cfg ...', $strInfo);
|
|
||||||
$myVisClass->processMessage('Hostdependencies: ' .translate('No dataset or no activated dataset found - '
|
|
||||||
. 'empty configuration written'). '::', $strInfo);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage('Hostdependencies: ' .$myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
$intProcessError = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Write serviceescalation configuration
|
|
||||||
$intReturn12 = $myConfigClass->createConfig('tbl_serviceescalation');
|
|
||||||
if ($intReturn12 == 0) {
|
|
||||||
$myVisClass->processMessage(translate('Write'). ' serviceescalations.cfg ...', $strInfo);
|
|
||||||
$myVisClass->processMessage('Serviceescalations: ' .$myConfigClass->strInfoMessage, $strInfo);
|
|
||||||
} else {
|
|
||||||
if ($myConfigClass->strErrorMessage == $strNoData) {
|
|
||||||
$myVisClass->processMessage(translate('Write'). ' serviceescalations.cfg ...', $strInfo);
|
|
||||||
$myVisClass->processMessage('Serviceescalations: ' .translate('No dataset or no activated dataset found - '
|
|
||||||
. 'empty configuration written'). '::', $strInfo);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage('Serviceescalations: ' .$myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
$intProcessError = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Write hostescalation configuration
|
|
||||||
$intReturn13 = $myConfigClass->createConfig('tbl_hostescalation');
|
|
||||||
if ($intReturn13 == 0) {
|
|
||||||
$myVisClass->processMessage(translate('Write'). ' hostescalations.cfg ...', $strInfo);
|
|
||||||
$myVisClass->processMessage('Hostescalations: ' .$myConfigClass->strInfoMessage, $strInfo);
|
|
||||||
} else {
|
|
||||||
if ($myConfigClass->strErrorMessage == $strNoData) {
|
|
||||||
$myVisClass->processMessage(translate('Write'). ' hostescalations.cfg ...', $strInfo);
|
|
||||||
$myVisClass->processMessage('Hostescalations: ' .translate('No dataset or no activated dataset found - '
|
|
||||||
. 'empty configuration written'). '::', $strInfo);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage('Hostescalations: ' .$myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
$intProcessError = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Write serviceextinfo configuration
|
|
||||||
$intReturn14 = $myConfigClass->createConfig('tbl_serviceextinfo');
|
|
||||||
if ($intReturn14 == 0) {
|
|
||||||
$myVisClass->processMessage(translate('Write'). ' serviceextinfo.cfg ...', $strInfo);
|
|
||||||
$myVisClass->processMessage('Serviceextinfo: ' .$myConfigClass->strInfoMessage, $strInfo);
|
|
||||||
} else {
|
|
||||||
if ($myConfigClass->strErrorMessage == $strNoData) {
|
|
||||||
$myVisClass->processMessage(translate('Write'). ' serviceextinfo.cfg ...', $strInfo);
|
|
||||||
$myVisClass->processMessage('Serviceextinfo: ' .translate('No dataset or no activated dataset found - '
|
|
||||||
. 'empty configuration written'). '::', $strInfo);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage('Serviceextinfo: ' .$myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
$intProcessError = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Write hostextinfo configuration
|
|
||||||
$intReturn15 = $myConfigClass->createConfig('tbl_hostextinfo');
|
|
||||||
if ($intReturn15 == 0) {
|
|
||||||
$myVisClass->processMessage(translate('Write'). ' hostextinfo.cfg ...', $strInfo);
|
|
||||||
$myVisClass->processMessage('Hostextinfo: ' .$myConfigClass->strInfoMessage, $strInfo);
|
|
||||||
} else {
|
|
||||||
if ($myConfigClass->strErrorMessage == $strNoData) {
|
|
||||||
$myVisClass->processMessage(translate('Write'). ' hostextinfo.cfg ...', $strInfo);
|
|
||||||
$myVisClass->processMessage('Hostextinfo: ' .translate('No dataset or no activated dataset found - empty '
|
|
||||||
. 'configuration written'). '::', $strInfo);
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage('Hostextinfo: ' .$myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
$intProcessError = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Check configuration
|
|
||||||
if ($chkButValue3 != '') {
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'binaryfile', $strBinary);
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'basedir', $strBaseDir);
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'nagiosbasedir', $strNagiosBaseDir);
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'conffile', $strConffile);
|
|
||||||
if ($intMethod == 1) {
|
|
||||||
if (file_exists($strBinary) && is_executable($strBinary)) {
|
|
||||||
$resFile = popen($strBinary. ' -v ' .$strConffile, 'r');
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Cannot find the Nagios binary or no execute permissions!'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} elseif ($intMethod == 2) {
|
|
||||||
$booReturn = 0;
|
|
||||||
if (empty($myConfigClass->resConnectId) || !is_resource($myConfigClass->resConnectId)) {
|
|
||||||
$booReturn = $myConfigClass->getFTPConnection($intConfigId);
|
|
||||||
}
|
|
||||||
if ($booReturn == 1) {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$intErrorReporting = error_reporting();
|
|
||||||
error_reporting(0);
|
|
||||||
if (!($resFile = ftp_exec($myConfigClass->resConnectId, $strBinary.' -v '.$strConffile))) {
|
|
||||||
$myVisClass->processMessage(translate('Remote execution (FTP SITE EXEC) is not supported on your '
|
|
||||||
. 'system!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
ftp_close($conn_id);
|
|
||||||
error_reporting($intErrorReporting);
|
|
||||||
}
|
|
||||||
} elseif ($intMethod == 3) {
|
|
||||||
$booReturn = 0;
|
|
||||||
if (empty($myConfigClass->resConnectId) || !is_resource($myConfigClass->resConnectId)) {
|
|
||||||
$booReturn = $myConfigClass->getSSHConnection($intConfigId);
|
|
||||||
}
|
|
||||||
if ($booReturn == 1) {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
if (($strBinary != '') && ($strConffile != '') &&
|
|
||||||
$myConfigClass->sendSSHCommand('ls '.$strBinary, $arrTemp) == 0 &&
|
|
||||||
$myConfigClass->sendSSHCommand('ls '.$strConffile, $arrTemp) == 0) {
|
|
||||||
$intResult = $myConfigClass->sendSSHCommand($strBinary.' -v '.$strConffile, $arrResult, 15000);
|
|
||||||
if (!is_array($arrResult) || ($arrResult == false)) {
|
|
||||||
$myVisClass->processMessage(translate('Remote execution of nagios verify command failed (remote '
|
|
||||||
. 'SSH)!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Nagios binary or configuration file not found (remote SSH)!'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Restart nagios
|
|
||||||
if ($chkButValue4 != '') {
|
|
||||||
// Read config file
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'commandfile', $strCommandfile);
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'binaryfile', $strBinary);
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'pidfile', $strPidfile);
|
|
||||||
$myConfigClass->getConfigValues($intConfigId, 'version', $intVersion);
|
|
||||||
// Check state nagios demon
|
|
||||||
clearstatcache();
|
|
||||||
if ($intMethod == 1) {
|
|
||||||
if (substr_count(PHP_OS, 'Linux') != 0) {
|
|
||||||
exec('ps -ef | grep '.basename($strBinary).' | grep -v grep', $arrExec);
|
|
||||||
} else {
|
|
||||||
$arrExec[0] = 1;
|
|
||||||
}
|
|
||||||
if (file_exists($strPidfile) && isset($arrExec[0])) {
|
|
||||||
if (file_exists($strCommandfile) && is_writable($strCommandfile)) {
|
|
||||||
if ($intVersion == 4) {
|
|
||||||
$strCommandString = '[' .time(). "] RESTART_PROGRAM\n";
|
|
||||||
} else {
|
|
||||||
$strCommandString = '[' .time(). '] RESTART_PROGRAM;' .time()."\n";
|
|
||||||
}
|
|
||||||
$timeout = 3;
|
|
||||||
$old = ini_set('default_socket_timeout', $timeout);
|
|
||||||
$resCmdFile = fopen($strCommandfile, 'wb');
|
|
||||||
ini_set('default_socket_timeout', $old);
|
|
||||||
stream_set_timeout($resCmdFile, $timeout);
|
|
||||||
stream_set_blocking($resCmdFile, 0);
|
|
||||||
if ($resCmdFile) {
|
|
||||||
fwrite($resCmdFile, $strCommandString);
|
|
||||||
fclose($resCmdFile);
|
|
||||||
$myDataClass->writeLog(translate('Nagios daemon successfully restarted'));
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Restart command successfully send to Nagios'),
|
|
||||||
$strInfoMessage
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$myDataClass->writeLog(translate('Restart failed - Nagios command file not found or no execute '
|
|
||||||
. 'permissions'));
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Nagios command file not found or no write permissions!'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myDataClass->writeLog(translate('Restart failed - Nagios command file not found or no execute '
|
|
||||||
. 'permissions'));
|
|
||||||
$myVisClass->processMessage(translate('Restart failed - Nagios command file not found or no rights '
|
|
||||||
. 'to execute'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myDataClass->writeLog(translate('Restart failed - Nagios daemon was not running'));
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Nagios daemon is not running, cannot send restart command!'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} elseif ($intMethod == 2) {
|
|
||||||
$myDataClass->writeLog(translate('Restart failed - FTP restrictions'));
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Nagios restart is not possible via FTP remote connection!'),
|
|
||||||
$strErrorMessage
|
|
||||||
);
|
|
||||||
} elseif ($intMethod == 3) {
|
|
||||||
$booReturn = 0;
|
|
||||||
if (empty($myConfigClass->resConnectId) || !is_resource($myConfigClass->resConnectId)) {
|
|
||||||
$booReturn = $myConfigClass->getSSHConnection($intConfigId);
|
|
||||||
}
|
|
||||||
if ($booReturn == 1) {
|
|
||||||
$myVisClass->processMessage($myConfigClass->strErrorMessage, $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
if ($myConfigClass->sendSSHCommand('ls '.$strCommandfile, $arrTemp) == 0) {
|
|
||||||
if ($intVersion == 4) {
|
|
||||||
$strCommandString = '[' .time(). "] RESTART_PROGRAM\n";
|
|
||||||
} else {
|
|
||||||
$strCommandString = '[' .time(). '] RESTART_PROGRAM;' .time()."\n";
|
|
||||||
}
|
|
||||||
$arrInfo1 = ssh2_sftp_stat($myConfigClass->resSFTP, $strCommandfile);
|
|
||||||
$intFileStamp1 = $arrInfo1['mtime'];
|
|
||||||
$myConfigClass->sendSSHCommand('echo "'.$strCommandString.'" >> '.$strCommandfile, $arrResult);
|
|
||||||
$arrInfo2 = ssh2_sftp_stat($myConfigClass->resSFTP, $strCommandfile);
|
|
||||||
$intFileStamp2 = $arrInfo2['mtime'];
|
|
||||||
if ($intFileStamp2 <= $intFileStamp1) {
|
|
||||||
$myVisClass->processMessage(translate('Restart failed - Nagios command file not found or no '
|
|
||||||
. 'rights to execute (remote SSH)!'), $strErrorMessage);
|
|
||||||
} else {
|
|
||||||
$myDataClass->writeLog(translate('Nagios daemon successfully restarted (remote SSH)'));
|
|
||||||
$myVisClass->processMessage(
|
|
||||||
translate('Restart command successfully send to Nagios (remote SSH)'),
|
|
||||||
$strInfoMessage
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$myVisClass->processMessage(translate('Nagios command file not found (remote SSH)!'), $strErrorMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// include content
|
|
||||||
// ===============
|
|
||||||
$conttp->setVariable('TITLE', translate('Check written configuration files'));
|
|
||||||
$conttp->setVariable('CHECK_CONFIG', translate('Check configuration files:'));
|
|
||||||
$conttp->setVariable('RESTART_NAGIOS', translate('Restart Nagios:'));
|
|
||||||
$conttp->setVariable('WRITE_MONITORING_DATA', translate('Write monitoring data'));
|
|
||||||
$conttp->setVariable('WRITE_ADDITIONAL_DATA', translate('Write additional data'));
|
|
||||||
if (($chkButValue3 == '') && ($chkButValue4 == '')) {
|
|
||||||
$conttp->setVariable('WARNING', translate('Warning, always check the configuration files before restarting '
|
|
||||||
.'Nagios!'));
|
|
||||||
}
|
|
||||||
$conttp->setVariable('MAKE', translate('Do it'));
|
|
||||||
$conttp->setVariable('IMAGE_PATH', $_SESSION['SETS']['path']['base_url']. 'images/');
|
|
||||||
$conttp->setVariable('ACTION_INSERT', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$strOutput = '';
|
|
||||||
if (isset($resFile) && ($resFile != false)) {
|
|
||||||
$intError = 0;
|
|
||||||
$intWarning = 0;
|
|
||||||
$intLines = 0;
|
|
||||||
while (!feof($resFile)) {
|
|
||||||
$strLine = fgets($resFile, 1024);
|
|
||||||
$intLines++;
|
|
||||||
if ((substr_count($strLine, 'Error:') != 0) || (substr_count($strLine, 'Total Errors:') != 0)) {
|
|
||||||
$conttp->setVariable('VERIFY_CLASS', 'errormessage');
|
|
||||||
$conttp->setVariable('VERIFY_LINE', $strLine);
|
|
||||||
$conttp->parse('verifyline');
|
|
||||||
$intError++;
|
|
||||||
if (substr_count($strLine, 'Total Errors:') != 0) {
|
|
||||||
$intError--;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ((substr_count($strLine, 'Warning:') != 0) || (substr_count($strLine, 'Total Warnings:') != 0)) {
|
|
||||||
$conttp->setVariable('VERIFY_CLASS', 'warnmessage');
|
|
||||||
$conttp->setVariable('VERIFY_LINE', $strLine);
|
|
||||||
$conttp->parse('verifyline');
|
|
||||||
$intWarning++;
|
|
||||||
if (substr_count($strLine, 'Total Warnings:') != 0) {
|
|
||||||
$intWarning--;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$strOutput .= $strLine. '<br>';
|
|
||||||
}
|
|
||||||
$myDataClass->writeLog(translate('Nagios written configuration files checked - Warnings/Errors:'). ' '
|
|
||||||
.$intWarning. '/' .
|
|
||||||
$intError);
|
|
||||||
pclose($resFile);
|
|
||||||
if (($intError == 0) && ($intWarning == 0) && ($intLines > 5)) {
|
|
||||||
$conttp->setVariable('VERIFY_CLASS', 'greenmessage');
|
|
||||||
$conttp->setVariable('VERIFY_LINE', '<b>' .translate('Written configuration files are valid, Nagios can be '
|
|
||||||
. 'restarted!'). '</b>');
|
|
||||||
$conttp->parse('verifyline');
|
|
||||||
}
|
|
||||||
if ($intLines < 5) {
|
|
||||||
$conttp->setVariable('VERIFY_CLASS', 'redmessage');
|
|
||||||
$conttp->setVariable('VERIFY_LINE', '<b>' .translate('The configuration could not be tested successfully. '
|
|
||||||
. 'The Nagios binary may have crashed during the test. Please repeat the test or try using the '
|
|
||||||
. 'commandline to test. A running Nagios service should not be restarted because the configuration may '
|
|
||||||
. 'be invalid.'). '</b>');
|
|
||||||
$conttp->parse('verifyline');
|
|
||||||
}
|
|
||||||
$conttp->setVariable('DATA', $strOutput);
|
|
||||||
$conttp->parse('verifyline');
|
|
||||||
} elseif (isset($arrResult) && is_array($arrResult)) {
|
|
||||||
$intError = 0;
|
|
||||||
$intWarning = 0;
|
|
||||||
foreach ($arrResult as $elem) {
|
|
||||||
if ((substr_count($elem, 'Error:') != 0) || (substr_count($elem, 'Total Errors:') != 0)) {
|
|
||||||
$conttp->setVariable('VERIFY_CLASS', 'errormessage');
|
|
||||||
$conttp->setVariable('VERIFY_LINE', $elem);
|
|
||||||
$conttp->parse('verifyline');
|
|
||||||
$intError++;
|
|
||||||
if (substr_count($elem, 'Total Errors:') != 0) {
|
|
||||||
$intError--;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ((substr_count($elem, 'Warning:') != 0) || (substr_count($elem, 'Total Warnings:') != 0)) {
|
|
||||||
$conttp->setVariable('VERIFY_CLASS', 'warnmessage');
|
|
||||||
$conttp->setVariable('VERIFY_LINE', $elem);
|
|
||||||
$conttp->parse('verifyline');
|
|
||||||
$intWarning++;
|
|
||||||
if (substr_count($elem, 'Total Warnings:') != 0) {
|
|
||||||
$intWarning--;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$strOutput .= $elem. '<br>';
|
|
||||||
}
|
|
||||||
$myDataClass->writeLog(translate('Nagios written configuration files checked - Warnings/Errors:'). ' '
|
|
||||||
.$intWarning. '/' .
|
|
||||||
$intError);
|
|
||||||
if (($intError == 0) && ($intWarning == 0)) {
|
|
||||||
$conttp->setVariable('VERIFY_CLASS', 'greenmessage');
|
|
||||||
$conttp->setVariable('VERIFY_LINE', '<b>' .translate('Written configuration files are valid, Nagios can be '
|
|
||||||
. 'restarted!'). '</b>');
|
|
||||||
$conttp->parse('verifyline');
|
|
||||||
}
|
|
||||||
$conttp->setVariable('DATA', $strOutput);
|
|
||||||
$conttp->parse('verifyline');
|
|
||||||
}
|
|
||||||
if ($strErrorMessage != '') {
|
|
||||||
$conttp->setVariable('ERRORMESSAGE', $strErrorMessage);
|
|
||||||
}
|
|
||||||
$conttp->setVariable('INFOMESSAGE', $strInfoMessage);
|
|
||||||
if ($strInfo != '') {
|
|
||||||
$conttp->setVariable('VERIFY_CLASS', 'greenmessage');
|
|
||||||
$conttp->setVariable('VERIFY_LINE', '<br>' .$strInfo);
|
|
||||||
$conttp->parse('verifyline');
|
|
||||||
}
|
|
||||||
// Check access rights for adding new objects
|
|
||||||
if ($myVisClass->checkAccountGroup($prePageKey, 'write') != 0) {
|
|
||||||
$conttp->setVariable('ADD_CONTROL', 'disabled="disabled"');
|
|
||||||
}
|
|
||||||
$conttp->parse('main');
|
|
||||||
$conttp->show('main');
|
|
||||||
//
|
|
||||||
// Insert footer
|
|
||||||
// =============
|
|
||||||
$maintp->setVariable('VERSION_INFO', "<a href='https://sourceforge.net/projects/nagiosql/' "
|
|
||||||
. "target='_blank'>NagiosQL</a> $setFileVersion");
|
|
||||||
$maintp->parse('footer');
|
|
||||||
$maintp->show('footer');
|
|
@ -1,198 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : Online version check
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Path settings
|
|
||||||
// ===================
|
|
||||||
$strPattern = '(admin/[^/]*.php)';
|
|
||||||
$preRelPath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_STRING));
|
|
||||||
$preBasePath = preg_replace($strPattern, '', filter_input(INPUT_SERVER, 'SCRIPT_FILENAME', FILTER_SANITIZE_STRING));
|
|
||||||
//
|
|
||||||
// Define common variables
|
|
||||||
// =======================
|
|
||||||
$preNoMain = 1;
|
|
||||||
$chkShow = filter_input(INPUT_GET, 'show', FILTER_VALIDATE_INT, array('options' => array('default' => 0)));
|
|
||||||
//
|
|
||||||
// Include preprocessing file
|
|
||||||
// ==========================
|
|
||||||
require $preBasePath.'functions/prepend_adm.php';
|
|
||||||
$strCommandLine = ' ';
|
|
||||||
$intCount = 0;
|
|
||||||
//
|
|
||||||
// Get database values
|
|
||||||
// ===================
|
|
||||||
if ($chkShow == 1) {
|
|
||||||
$versionfeed = 'http://api.wizonet.ch/nagiosql/versioncheck.php?myversion=' .urlencode($setFileVersion);
|
|
||||||
$strError = '';
|
|
||||||
if ((isset($SETS['network']['proxy']) && ($SETS['network']['proxy'] == '1')) &&
|
|
||||||
(isset($SETS['network']['proxyserver']) && ($SETS['network']['proxyserver'] != ''))) {
|
|
||||||
if ((isset($SETS['network']['proxyuser']) && ($SETS['network']['proxyuser'] != '')) &&
|
|
||||||
(isset($SETS['network']['proxypasswd']) && ($SETS['network']['proxypasswd'] != ''))) {
|
|
||||||
$strProxyAuth = base64_encode($SETS['network']['proxyuser']. ':' .$SETS['network']['proxypasswd']);
|
|
||||||
$aContext = array(
|
|
||||||
'http' => array(
|
|
||||||
'proxy' => 'tcp://'.$SETS['network']['proxyserver'],
|
|
||||||
'request_fulluri' => true,
|
|
||||||
'header' => "Proxy-Authorization: Basic $strProxyAuth",
|
|
||||||
'timeout' => 1,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$aContext = array(
|
|
||||||
'http' => array(
|
|
||||||
'proxy' => 'tcp://'.$SETS['network']['proxyserver'],
|
|
||||||
'request_fulluri' => true,
|
|
||||||
'timeout' => 1,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
$intErrorReporting = error_reporting();
|
|
||||||
error_reporting(0);
|
|
||||||
$cxContext = stream_context_create($aContext);
|
|
||||||
$arrFile = file($versionfeed, false, $cxContext);
|
|
||||||
$arrError = error_get_last();
|
|
||||||
error_reporting($intErrorReporting);
|
|
||||||
if ($arrError['message'] != '') {
|
|
||||||
$strError .= utf8_encode($arrError['message']). ' (' .translate('check proxy settings'). ')';
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$intErrorReporting = error_reporting();
|
|
||||||
error_reporting(0);
|
|
||||||
$cxContext = stream_context_create(array('http' => array('timeout' => 1)));
|
|
||||||
$arrFile = file($versionfeed, false, $cxContext);
|
|
||||||
$arrError = error_get_last();
|
|
||||||
error_reporting($intErrorReporting);
|
|
||||||
if ($arrError['message'] != '') {
|
|
||||||
$strError .= utf8_encode($arrError['message']). ' (' .translate('check proxy settings'). ')';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$strInstalled = translate('Installed');
|
|
||||||
$strAvailable = translate('Available');
|
|
||||||
$strInformation = translate('Information');
|
|
||||||
$strVersion = '';
|
|
||||||
$strRelease = '';
|
|
||||||
$strRelInfo = '';
|
|
||||||
if (is_array($arrFile) && count($arrFile) != 0) {
|
|
||||||
foreach ($arrFile as $elem) {
|
|
||||||
if (substr_count($elem, 'version') != 0) {
|
|
||||||
$strVersion = trim(strip_tags($elem));
|
|
||||||
}
|
|
||||||
if (substr_count($elem, 'release_date') != 0) {
|
|
||||||
$strRelease = trim(strip_tags($elem));
|
|
||||||
}
|
|
||||||
if (substr_count($elem, 'error') != 0) {
|
|
||||||
$strError = trim(strip_tags($elem));
|
|
||||||
}
|
|
||||||
if (substr_count($elem, 'information') != 0) {
|
|
||||||
$strRelInfo = trim(strip_tags($elem));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$setFileAvailable = $strVersion;
|
|
||||||
if (version_compare($strVersion, $setFileVersion, '==')) {
|
|
||||||
$setFileInformation = "<span class='greenmessage'>".translate('You already have the latest version installed').
|
|
||||||
'</span>';
|
|
||||||
} elseif (version_compare($strVersion, $setFileVersion, '>=')) {
|
|
||||||
$setFileInformation = "<span class='redmessage'>".translate('You are using an old NagiosQL version. Please '.
|
|
||||||
'update to the latest stable version'). '</span>: ';
|
|
||||||
$setFileInformation .= '<a href="http://sourceforge.net/projects/nagiosql/files/" target="_blank">' .
|
|
||||||
'NagiosQL on Sourceforge</a>';
|
|
||||||
} elseif (version_compare($strVersion, $setFileVersion, '<=')) {
|
|
||||||
$setFileInformation = "<span class='redmessage'>".translate('You are using a newer development version '.
|
|
||||||
'without official support'). '</span>';
|
|
||||||
}
|
|
||||||
if (($strError != 'none') && ($strError != '')) {
|
|
||||||
$setFileInformation = "<span class='redmessage'>".$strError. '</span>';
|
|
||||||
} ?>
|
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Version check</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
||||||
<link href="<?php
|
|
||||||
echo $_SESSION['SETS']['path']['base_url']; ?>config/main.css" rel="stylesheet" type="text/css">
|
|
||||||
<link href="<?php
|
|
||||||
echo $_SESSION['SETS']['path']['base_url']; ?>config/content.css" rel="stylesheet" type="text/css">
|
|
||||||
<style type="text/css">
|
|
||||||
<!--
|
|
||||||
body {
|
|
||||||
font-family: Verdana, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 10px;
|
|
||||||
color: #000000;
|
|
||||||
background-color: #FFFFFF;
|
|
||||||
margin: 0;
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
-->
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<table width="100%" border="0" class="content_listtable" style="padding:0; margin:0; top:3px;">
|
|
||||||
<tr>
|
|
||||||
<th style="text-align: center"><?php echo $strInstalled; ?></th>
|
|
||||||
<th style="text-align: center"><?php echo $strAvailable; ?></th>
|
|
||||||
<th style="text-align: left; padding-left: 30px;"><?php echo $strInformation; ?></th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="tdmb" style="width:90px;vertical-align:top;padding-top:4px;"><?php
|
|
||||||
echo $setFileVersion; ?></td>
|
|
||||||
<td class="tdmb" style="width:90px;vertical-align:top;padding-top:4px;"><?php
|
|
||||||
echo $setFileAvailable; ?></td>
|
|
||||||
<td class="tdlb" style="width:470px;vertical-align:top;padding-top:4px;"><?php
|
|
||||||
echo $setFileInformation; ?></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<script type="text/javascript">
|
|
||||||
<!--
|
|
||||||
parent.document.getElementById('vcheck').className = 'elementHide';
|
|
||||||
parent.document.getElementById('versioncheck').className = 'elementShow';
|
|
||||||
<?php
|
|
||||||
if (($strError != 'none') && ($strError != '')) {
|
|
||||||
echo " parent.document.getElementById('versioncheck').height = '65';";
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
//-->
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
<?php
|
|
||||||
} else {
|
|
||||||
?>
|
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Commandline</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
||||||
<style type="text/css">
|
|
||||||
<!--
|
|
||||||
body {
|
|
||||||
font-family: Verdana, Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 10px;
|
|
||||||
color: #000000;
|
|
||||||
background-color: #FFFFFF;
|
|
||||||
margin: 0;
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
-->
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<p><br>Loading...</p>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
<?php
|
|
||||||
}
|
|
||||||
?>
|
|
@ -1,480 +0,0 @@
|
|||||||
@charset "utf-8";
|
|
||||||
/*/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : CSS content definition
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
/////////////////////////////////////////////////////////////////////////////*/
|
|
||||||
/* Content main div */
|
|
||||||
#content_main {
|
|
||||||
top:-3px;
|
|
||||||
left:0;
|
|
||||||
width:890px;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0 0 0 10px;
|
|
||||||
position:relative;
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
/* Content title (list and single view) */
|
|
||||||
#content_title {
|
|
||||||
color: #0c4271;
|
|
||||||
margin: 0 0 0 2px;
|
|
||||||
font-size:20px;
|
|
||||||
font-weight:bold;
|
|
||||||
font-family:Arial, Helvetica, sans-serif;
|
|
||||||
padding: 0 0 5px;
|
|
||||||
}
|
|
||||||
/* Content special definitions */
|
|
||||||
.elementHide {
|
|
||||||
display:none;
|
|
||||||
}
|
|
||||||
.elementShow {}
|
|
||||||
.redmessage {
|
|
||||||
color: #FF0000;
|
|
||||||
}
|
|
||||||
.greenmessage {
|
|
||||||
color: #009900;
|
|
||||||
}
|
|
||||||
.blackmessage {
|
|
||||||
color:#000000;
|
|
||||||
}
|
|
||||||
.bluemessage {
|
|
||||||
color:#0000FF;
|
|
||||||
}
|
|
||||||
.checkred {
|
|
||||||
color: #FF0000;
|
|
||||||
font-weight:bold;
|
|
||||||
}
|
|
||||||
.checkgreen {
|
|
||||||
color: #009900;
|
|
||||||
font-weight:bold;
|
|
||||||
}
|
|
||||||
.checkorange {
|
|
||||||
color: #FF9900;
|
|
||||||
font-weight:bold;
|
|
||||||
}
|
|
||||||
.env_table {
|
|
||||||
padding-top:10px;
|
|
||||||
}
|
|
||||||
.env_table td {
|
|
||||||
font-size: 12px;
|
|
||||||
padding:2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*noinspection CssUnusedSymbol*/
|
|
||||||
#content_main .warnmessage {
|
|
||||||
font-size: 12px;
|
|
||||||
color: #FF9900;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
#content_main .errormessage {
|
|
||||||
font-size: 12px;
|
|
||||||
color: #FF0000;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
#content_main .pagelinks {
|
|
||||||
font-size: 12px;
|
|
||||||
color: #006600;
|
|
||||||
margin: 0 auto;
|
|
||||||
width: 25%;
|
|
||||||
}
|
|
||||||
/* Content tags */
|
|
||||||
#content_main h2 {
|
|
||||||
font-size: 14px;
|
|
||||||
margin-bottom:0;
|
|
||||||
}
|
|
||||||
/* Version string */
|
|
||||||
.version {
|
|
||||||
font-size: 9px;
|
|
||||||
color: #999999;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.version a {
|
|
||||||
text-decoration:none;
|
|
||||||
color:#999999;
|
|
||||||
}
|
|
||||||
.version a:hover {
|
|
||||||
text-decoration:none;
|
|
||||||
color:#333333;
|
|
||||||
}
|
|
||||||
/* Content forms */
|
|
||||||
#content_main form {
|
|
||||||
margin:0;
|
|
||||||
padding:0;
|
|
||||||
}
|
|
||||||
/* Content form table (single view and top/bottom line of list view) */
|
|
||||||
.content_formtable {
|
|
||||||
top:10px;
|
|
||||||
position:relative;
|
|
||||||
font-family:Verdana, Helvetica, sans-serif;
|
|
||||||
font-size:12px;
|
|
||||||
}
|
|
||||||
.content_formtable td {
|
|
||||||
padding:0;
|
|
||||||
margin:0;
|
|
||||||
height:18px;
|
|
||||||
text-align:left;
|
|
||||||
}
|
|
||||||
.content_tbl_row1 {
|
|
||||||
width: 200px;
|
|
||||||
}
|
|
||||||
.content_tbl_row2 {
|
|
||||||
width: 205px;
|
|
||||||
}
|
|
||||||
.content_tbl_row3 {
|
|
||||||
width: 45px;
|
|
||||||
}
|
|
||||||
.content_tbl_row4 {
|
|
||||||
width: 30px;
|
|
||||||
}
|
|
||||||
/* Form field definitions */
|
|
||||||
.content_formtable input[type=text] {
|
|
||||||
width:200px;
|
|
||||||
padding:0;
|
|
||||||
margin:0;
|
|
||||||
border: 1px solid #6CF;
|
|
||||||
background: #d1e2fd url(../images/input.png);
|
|
||||||
font-family:Verdana, Helvetica, sans-serif;
|
|
||||||
font-size:12px;
|
|
||||||
height:18px;
|
|
||||||
}
|
|
||||||
.content_formtable input[type=password] {
|
|
||||||
width:200px;
|
|
||||||
padding:0;
|
|
||||||
margin:0;
|
|
||||||
border: 1px solid #6CF;
|
|
||||||
background: #d1e2fd url(../images/input.png);
|
|
||||||
font-family:Verdana, Helvetica, sans-serif;
|
|
||||||
font-size:12px;
|
|
||||||
height:18px;
|
|
||||||
}
|
|
||||||
.content_formtable input[type=file] {
|
|
||||||
width:400px;
|
|
||||||
background: #d1e2fd url(../images/input.png);
|
|
||||||
font-family:Verdana, Helvetica, sans-serif;
|
|
||||||
font-size:12px;
|
|
||||||
height:25px;
|
|
||||||
}
|
|
||||||
.content_formtable input[type=text].inpmust {
|
|
||||||
width:200px;
|
|
||||||
border: 1px solid #053056;
|
|
||||||
background: #941616 url(../images/inputmust.png);
|
|
||||||
font-family:Verdana, Helvetica, sans-serif;
|
|
||||||
color: #FFFFFF;
|
|
||||||
font-weight: bold;
|
|
||||||
font-size:12px;
|
|
||||||
height:18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*noinspection CssUnusedSymbol*/
|
|
||||||
.content_formtable input[type=text].inputlock {
|
|
||||||
width:200px;
|
|
||||||
border: 1px solid #053056;
|
|
||||||
background: #5d5d5d url(../images/inputlock.png);
|
|
||||||
font-family:Verdana, Helvetica, sans-serif;
|
|
||||||
color: #f7f7f7;
|
|
||||||
font-weight: normal;
|
|
||||||
font-size:12px;
|
|
||||||
height:18px;
|
|
||||||
}
|
|
||||||
.content_formtable input[type=password].inpmust {
|
|
||||||
width:200px;
|
|
||||||
border: 1px solid #053056;
|
|
||||||
background: #941616 url(../images/inputmust.png);
|
|
||||||
font-family:Verdana, Helvetica, sans-serif;
|
|
||||||
color: #FFFFFF;
|
|
||||||
font-weight: bold;
|
|
||||||
font-size:12px;
|
|
||||||
height:18px;
|
|
||||||
}
|
|
||||||
.content_formtable input[type=text].short {
|
|
||||||
width:150px;
|
|
||||||
height:18px;
|
|
||||||
padding:0;
|
|
||||||
margin:0;
|
|
||||||
border: 1px solid #6CF;
|
|
||||||
background: #d1e2fd url(../images/input.png);
|
|
||||||
font-family:Verdana, Helvetica, sans-serif;
|
|
||||||
font-size:12px;
|
|
||||||
float:left;
|
|
||||||
display:inline-block;
|
|
||||||
}
|
|
||||||
.content_formtable input[type=text].shortmust {
|
|
||||||
width:150px;
|
|
||||||
border: 1px solid #053056;
|
|
||||||
background: #941616 url(../images/inputmust.png);
|
|
||||||
font-family:Verdana, Helvetica, sans-serif;
|
|
||||||
color: #FFFFFF;
|
|
||||||
font-weight: bold;
|
|
||||||
font-size:12px;
|
|
||||||
height:18px;
|
|
||||||
float:left;
|
|
||||||
display:inline-block;
|
|
||||||
}
|
|
||||||
.content_formtable input[type=button] {
|
|
||||||
border:1px solid #6CF;
|
|
||||||
background: #d1e2fd url(../images/input.png);
|
|
||||||
font-family:Verdana, Helvetica, sans-serif;
|
|
||||||
font-size:12px;
|
|
||||||
color:#0c4271;
|
|
||||||
height:25px;
|
|
||||||
padding-left:10px;
|
|
||||||
padding-right:10px;
|
|
||||||
margin:0;
|
|
||||||
padding-bottom:2px;
|
|
||||||
}
|
|
||||||
.content_formtable input[type=button][disabled] {
|
|
||||||
border:1px solid #6CF;
|
|
||||||
background: #d1e2fd url(../images/input.png);
|
|
||||||
font-family:Verdana, Helvetica, sans-serif;
|
|
||||||
font-size:12px;
|
|
||||||
color:#CCC;
|
|
||||||
height:25px;
|
|
||||||
padding-left:10px;
|
|
||||||
padding-right:10px;
|
|
||||||
margin:0;
|
|
||||||
padding-bottom:2px;
|
|
||||||
}
|
|
||||||
.content_formtable input[type=submit] {
|
|
||||||
border:1px solid #6CF;
|
|
||||||
background: #d1e2fd url(../images/input.png);
|
|
||||||
font-family:Verdana, Helvetica, sans-serif;
|
|
||||||
font-size:12px;
|
|
||||||
color:#0c4271;
|
|
||||||
height:25px;
|
|
||||||
padding-left:10px;
|
|
||||||
padding-right:10px;
|
|
||||||
margin:0;
|
|
||||||
padding-bottom:2px;
|
|
||||||
}
|
|
||||||
.content_formtable input[type=submit][disabled] {
|
|
||||||
border:1px solid #6CF;
|
|
||||||
background: #d1e2fd url(../images/input.png);
|
|
||||||
font-family:Verdana, Helvetica, sans-serif;
|
|
||||||
font-size:12px;
|
|
||||||
color:#CCC;
|
|
||||||
height:25px;
|
|
||||||
padding-left:10px;
|
|
||||||
padding-right:10px;
|
|
||||||
margin:0;
|
|
||||||
padding-bottom:2px;
|
|
||||||
}
|
|
||||||
.content_formtable input[type=reset] {
|
|
||||||
border:1px solid #6CF;
|
|
||||||
background: #d1e2fd url(../images/input.png);
|
|
||||||
font-family:Verdana, Helvetica, sans-serif;
|
|
||||||
font-size:12px;
|
|
||||||
color:#0c4271;
|
|
||||||
height:25px;
|
|
||||||
padding-left:10px;
|
|
||||||
padding-right:10px;
|
|
||||||
margin:0;
|
|
||||||
padding-bottom:2px;
|
|
||||||
}
|
|
||||||
.content_formtable input[type=checkbox] {
|
|
||||||
border:none;
|
|
||||||
margin-left:0;
|
|
||||||
margin-right:0;
|
|
||||||
background:none;
|
|
||||||
float:left;
|
|
||||||
}
|
|
||||||
.content_formtable input[type=radio] {
|
|
||||||
border:none;
|
|
||||||
margin-left:0;
|
|
||||||
margin-right:0;
|
|
||||||
background:none;
|
|
||||||
float:left;
|
|
||||||
}
|
|
||||||
.content_formtable select {
|
|
||||||
background-color: #d1e2fd;
|
|
||||||
font-family:Verdana, Helvetica, sans-serif;
|
|
||||||
font-size:12px;
|
|
||||||
border: 1px solid #6CF;
|
|
||||||
padding-top:2px;
|
|
||||||
}
|
|
||||||
.content_formtable option {
|
|
||||||
height: 15px;
|
|
||||||
}
|
|
||||||
.content_formtable iframe {
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
#versioncheck {
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
/* Additional form table definitions */
|
|
||||||
.content_formtable .inpmust {
|
|
||||||
background-color: #941616;
|
|
||||||
font-family: Verdana, Arial, Helvetica, sans-serif;
|
|
||||||
color: #FFFFFF;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*noinspection CssUnusedSymbol*/
|
|
||||||
.content_formtable .inactive_option {
|
|
||||||
background-color:#FF8000;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*noinspection ALL*/
|
|
||||||
.content_formtable .foreign_option {
|
|
||||||
background-color:#C90;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*noinspection ALL*/
|
|
||||||
.content_formtable .ieselected {
|
|
||||||
background-color:#3399FF;
|
|
||||||
color:#000000;
|
|
||||||
}
|
|
||||||
.content_formtable .selectborder {
|
|
||||||
border: 1px solid #6CF;
|
|
||||||
width:202px;
|
|
||||||
}
|
|
||||||
.content_formtable .selectbordermust {
|
|
||||||
border: 1px solid #000;
|
|
||||||
width:202px;
|
|
||||||
}
|
|
||||||
.content_formtable .empty_class {}
|
|
||||||
.content_formtable .infobutton_1 {
|
|
||||||
left:3px;
|
|
||||||
position:relative;
|
|
||||||
}
|
|
||||||
.content_formtable .infobutton_2 {
|
|
||||||
left:3px;
|
|
||||||
top:10px;
|
|
||||||
position:relative;
|
|
||||||
}
|
|
||||||
.content_formtable .shorttext {
|
|
||||||
display: inline-block;
|
|
||||||
float:left;
|
|
||||||
padding-left:5px;
|
|
||||||
padding-top:3px;
|
|
||||||
}
|
|
||||||
.content_formtable .required_info {
|
|
||||||
margin-left:30px;
|
|
||||||
}
|
|
||||||
.content_formtable .radio_cell_1 {
|
|
||||||
width:20px;
|
|
||||||
height:18px;
|
|
||||||
}
|
|
||||||
.content_formtable .radio_cell_2 {
|
|
||||||
width:29px;
|
|
||||||
padding-bottom:2px;
|
|
||||||
}
|
|
||||||
/* Content list view */
|
|
||||||
.content_listtable {
|
|
||||||
top:15px;
|
|
||||||
position:relative;
|
|
||||||
font-family:Verdana, Helvetica, sans-serif;
|
|
||||||
font-size:12px;
|
|
||||||
margin-bottom:10px;
|
|
||||||
}
|
|
||||||
.content_listtable th {
|
|
||||||
background-color: #0c4271;
|
|
||||||
font-weight: bold;
|
|
||||||
color: #FFFFFF;
|
|
||||||
text-align: left;
|
|
||||||
vertical-align: middle;
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
.content_listtable td {
|
|
||||||
text-align: left;
|
|
||||||
vertical-align: middle;
|
|
||||||
padding: 0 0 2px;
|
|
||||||
height:25px;
|
|
||||||
}
|
|
||||||
.content_listtable .tdlb {
|
|
||||||
padding-left:5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*noinspection ALL*/
|
|
||||||
.content_listtable .tdld {
|
|
||||||
padding-left:5px;
|
|
||||||
background-color: #dbe6ff;
|
|
||||||
}
|
|
||||||
.content_listtable .tdmb {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*noinspection ALL*/
|
|
||||||
.content_listtable .tdmd {
|
|
||||||
text-align: center;
|
|
||||||
background-color: #dbe6ff;
|
|
||||||
}
|
|
||||||
/* Log table */
|
|
||||||
.content_logtable {
|
|
||||||
top:15px;
|
|
||||||
position:relative;
|
|
||||||
font-family:Verdana, Helvetica, sans-serif;
|
|
||||||
font-size:12px;
|
|
||||||
margin-bottom:10px;
|
|
||||||
}
|
|
||||||
.content_logtable th {
|
|
||||||
background-color: #0c4271;
|
|
||||||
border: 1px solid #333333;
|
|
||||||
padding: 2px;
|
|
||||||
color: #FFFFFF;
|
|
||||||
}
|
|
||||||
.content_logtable td {
|
|
||||||
background-color: #FFFFFF;
|
|
||||||
padding: 2px;
|
|
||||||
border: 1px solid #333333;
|
|
||||||
text-align:center;
|
|
||||||
}
|
|
||||||
.content_logtable .loglegend {
|
|
||||||
border: 0;
|
|
||||||
padding: 0;
|
|
||||||
width:445px;
|
|
||||||
}
|
|
||||||
/* Custom */
|
|
||||||
.tablerow {
|
|
||||||
border-bottom:1px solid #0c4271;
|
|
||||||
font-size:12px;
|
|
||||||
height:20px;
|
|
||||||
padding-top:2px;
|
|
||||||
padding-left:5px;
|
|
||||||
padding-right:5px;
|
|
||||||
}
|
|
||||||
/* Page links / site numbers */
|
|
||||||
.sitenumber {
|
|
||||||
background-color:#4080BE;
|
|
||||||
width:25px;
|
|
||||||
height:25px;
|
|
||||||
color:#d6d6d6;
|
|
||||||
border:1px solid #FFF;
|
|
||||||
text-align:center;
|
|
||||||
cursor:pointer;
|
|
||||||
}
|
|
||||||
.sitenumber a {
|
|
||||||
color:#d6d6d6;
|
|
||||||
text-decoration:none;
|
|
||||||
}
|
|
||||||
.sitenumber a:hover {
|
|
||||||
color:#d6d6d6;
|
|
||||||
text-decoration:none;
|
|
||||||
}
|
|
||||||
.sitenumber-sel {
|
|
||||||
background-color:#CCC;;
|
|
||||||
color:#00396a;
|
|
||||||
width:25px;
|
|
||||||
height:25px;
|
|
||||||
border:1px solid #FFF;
|
|
||||||
text-align:center;
|
|
||||||
font-weight:bold;
|
|
||||||
}
|
|
||||||
#donate {
|
|
||||||
top: 550px;
|
|
||||||
left:3px;
|
|
||||||
width: 150px;
|
|
||||||
position:absolute;
|
|
||||||
text-align:center;
|
|
||||||
z-index:auto;
|
|
||||||
}
|
|
||||||
/* END */
|
|
@ -1,334 +0,0 @@
|
|||||||
<?php
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// (c) 2005-2018 by Martin Willisegger
|
|
||||||
//
|
|
||||||
// Project : NagiosQL
|
|
||||||
// Component : field language variables (for replace in templates)
|
|
||||||
// Website : https://sourceforge.net/projects/nagiosql/
|
|
||||||
// Version : 3.4.0
|
|
||||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
|
||||||
//
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Feldvariabeln setzen
|
|
||||||
// ====================
|
|
||||||
$arrDescription[] = array('name' => 'LANG_DOMAIN', 'string' => translate('Domain'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_DESCRIPTION', 'string' => translate('Description'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_SERVER_NAMEe', 'string' => translate('Server name'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_METHOD', 'string' => translate('Method'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_USERNAME', 'string' => translate('Username'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_PASSWORD', 'string' => translate('Password'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_SSH_KEY',
|
|
||||||
'string' => translate('Directory with SSH key pair'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_FTPS',
|
|
||||||
'string' => translate('Use encrypted FTP (FTPS)'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_SERVER_NAME', 'string' => translate('Server name'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_CONFIGURATION_DIRECTORIES',
|
|
||||||
'string' => translate('Configuration directories'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_NAGIOS_DIRECTORIES',
|
|
||||||
'string' => translate('Nagios configuration files and directories'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_BASE_DIRECTORY', 'string' => translate('Base directory'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_HOST_DIRECTORY', 'string' => translate('Host directory'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_SERVICE_DIRECTORY', 'string' => translate('Service directory'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_BACKUP_DIRECTORY', 'string' => translate('Backup directory'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_HOST_BACKUP_DIRECTORY', 'string' => translate('Host backup directory'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_SERVICE_BACKUP_DIRECTORY',
|
|
||||||
'string' => translate('Service backup directory'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_PICTURE_DIRECTORY', 'string' => translate('Picture base directory'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_NAGIOS_COMMAND_FILE', 'string' => translate('Nagios command file'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_NAGIOS_BINARY_FILE', 'string' => translate('Nagios binary file'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_NAGIOS_PROCESS_FILE', 'string' => translate('Nagios process file'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_NAGIOS_CONFIG_FILE', 'string' => translate('Nagios config file'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_NAGIOS_CGI_FILE', 'string' => translate('Nagios cgi file'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_NAGIOS_RESOURCE_FILE', 'string' => translate('Nagios resource file'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_NAGIOS_VERSION', 'string' => translate('Nagios version'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_ENABLE_COMMON_DOMAIN', 'string' => translate('Use common domain'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_ENABLE_UTF8_DECODE',
|
|
||||||
'string' => translate('Decode UTF8 data in config files'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_ACCESS_KEY_HOLES', 'string' => translate('Access key holes'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_ACCESS_KEYS', 'string' => translate('Access keys'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_ACTIVE', 'string' => translate('Active'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_REGISTERED', 'string' => translate('Registered'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_REQUIRED', 'string' => translate('required'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_SAVE', 'string' => translate('Save'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_ABORT', 'string' => translate('Abort'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_FUNCTION', 'string' => translate('Function'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_MARKED', 'string' => translate('Marked'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_DO_IT', 'string' => translate('Do it'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_ADD', 'string' => translate('Add'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_FORMCHECK', 'string' => translate('Form check'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_SECURE_QUESTION', 'string' => translate('Secure question'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_YES', 'string' => translate('Yes'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_NO', 'string' => translate('No'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_TIME', 'string' => translate('Time'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_USER', 'string' => translate('User'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_IP', 'string' => translate('IP Address'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_ENTRY', 'string' => translate('Entry'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_FROM', 'string' => translate('From'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_TO', 'string' => translate('To'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_DELETE_LOG_ENTRIES', 'string' => translate('Delete log entries'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_COPY', 'string' => translate('Copy'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_DELETE', 'string' => translate('Delete'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_MODIFY', 'string' => translate('Modify'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_CONFIRM_PASSWORD', 'string' => translate('Confirm password'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_OLD_PASSWORD', 'string' => translate('Old password'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_NEW_PASSWORD', 'string' => translate('New password'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_CHANGE_PASSWORD', 'string' => translate('Change password'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_MENU_PAGE', 'string' => translate('Menu page'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_SEARCH_STRING', 'string' => translate('Search string'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_SEARCH', 'string' => translate('Search'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_DELETE_SEARCH', 'string' => translate('Reset filter'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_WRITE_CONFIG_FILE', 'string' => translate('Write config file'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_DOWNLOAD', 'string' => translate('Download'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_DUPLICATE', 'string' => translate('Copy'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_COMMAND', 'string' => translate('Command'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_COMMAND_LINE', 'string' => translate('Command line'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_COMMAND_TYPE', 'string' => translate('Command type'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_TIME_PERIOD', 'string' => translate('Time period'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_EXCLUDE', 'string' => translate('Exclude'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_INCLUDE', 'string' => translate('Include'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_TIME_DEFINITIONS', 'string' => translate('Time definitions'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_WEEKDAY', 'string' => translate('Weekday'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_TIME_RANGE', 'string' => translate('Time range'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_TIME_DEFINITION', 'string' => translate('Time definition'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_INSERT', 'string' => translate('Insert'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_MODIFY_SELECTION', 'string' => translate('Modify selection'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_CONTACT_NAME', 'string' => translate('Contact name'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_CONTACT_GROUP', 'string' => translate('Contact group'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_MINIMUM_IMPORTANCE', 'string' => translate('Minimum importance'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_TIME_PERIOD_HOSTS', 'string' => translate('Time period hosts'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_TIME_PERIOD_SERVICES', 'string' => translate('Time period services'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_HOST_OPTIONS', 'string' => translate('Host options'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_SERVICE_OPTIONS', 'string' => translate('Service options'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_HOST_COMMAND', 'string' => translate('Host command'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_SERVICE_COMMAND', 'string' => translate('Service command'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_EMAIL_ADDRESS', 'string' => translate('EMail address'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_PAGER_NUMBER', 'string' => translate('Pager number'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_ADDON_ADDRESS', 'string' => translate('Addon address'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_HOST_NOTIF_ENABLE', 'string' => translate('Host notif. enable'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_SERVICE_NOTIF_ENABLE', 'string' => translate('Service notif. enable'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_CAN_SUBMIT_COMMANDS', 'string' => translate('Can submit commands'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_RETAIN_STATUS_INFO', 'string' => translate('Retain status info'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_RETAIN_NONSTATUS_INFO', 'string' => translate('Retain non-status info'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_MEMBERS', 'string' => translate('Members'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_GROUP_MEMBERS', 'string' => translate('Group members'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_COMMON_SETTINGS', 'string' => translate('Common settings'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_SERVICE_SETTINGS', 'string' => translate('Service settings'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_SERVICE_SETTINGS_DESC',
|
|
||||||
'string' => translate('Add this host configuration to existing service definitions'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_TEMPLATE_NAME', 'string' => translate('Template name'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_PARENTS', 'string' => translate('Parents'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_PARENT_SERVICES', 'string' => translate('Parent services'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_HOST_GROUPS', 'string' => translate('Host groups'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_CHECK_COMMAND', 'string' => translate('Check command'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_COMMAND_VIEW', 'string' => translate('Command view'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_ADDITIONAL_TEMPLATES', 'string' => translate('Additional templates'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_CHECK_SETTINGS', 'string' => translate('Check settings'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_INITIAL_STATE', 'string' => translate('Initial state'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_RETRY_INTERVAL', 'string' => translate('Retry interval'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_MAX_CHECK_ATTEMPTS', 'string' => translate('Max check attempts'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_CHECK_INTERVAL', 'string' => translate('Check interval'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_ACTIVE_CHECKS_ENABLED', 'string' => translate('Active checks enabled'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_PASSIVE_CHECKS_ENABLED', 'string' => translate('Passive checks enabled'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_CHECK_PERIOD', 'string' => translate('Check period'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_FRESHNESS_TRESHOLD', 'string' => translate('Freshness treshold'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_CHECK_FRESHNESS', 'string' => translate('Check freshness'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_OBSESS_OVER_HOST', 'string' => translate('Obsess over host'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_OBSESS_OVER_SERVICE', 'string' => translate('Obsess over service'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_EVENT_HANDLER', 'string' => translate('Event handler'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_EVENT_HANDLER_ENABLED', 'string' => translate('Event handler enabled'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_LOW_FLAP_THRESHOLD', 'string' => translate('Low flap threshold'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_HIGH_FLAP_THRESHOLD', 'string' => translate('High flap threshold'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_FLAP_DETECTION_ENABLED', 'string' => translate('Flap detection enabled'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_FLAP_DETECTION_OPTIONS', 'string' => translate('Flap detection options'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_RETAIN_STATUS_INFORMATION',
|
|
||||||
'string' => translate('Retain status information'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_RETAIN_NOSTATUS_INFORMATION',
|
|
||||||
'string' => translate('Retain non-status information'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_PROCESS_PERF_DATA', 'string' => translate('Process perf data'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_ALARM_SETTINGS', 'string' => translate('Alarm settings'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_CONTACTS', 'string' => translate('Contacts'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_CONTACT_GROUPS', 'string' => translate('Contact groups'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_NOTIFICATION_PERIOD', 'string' => translate('Notification period'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_NOTIFICATION_OPTIONS', 'string' => translate('Notification options'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_NOTIFICATION_INTERVAL', 'string' => translate('Notification interval'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_FIRST_NOTIFICATION_DELAY',
|
|
||||||
'string' => translate('First notification delay'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_NOTIFICATION_ENABLED', 'string' => translate('Notification enabled'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_IMPORTANCE', 'string' => translate('Importance'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_STALKING_OPTIONS', 'string' => translate('Stalking options'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_ADDON_SETTINGS', 'string' => translate('Addon settings'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_NOTES', 'string' => translate('Notes'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_VRML_IMAGE', 'string' => translate('VRML image'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_NOTES_URL', 'string' => translate('Notes URL'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_STATUS_IMAGE', 'string' => translate('Status image'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_ICON_IMAGE', 'string' => translate('Icon image'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_ACTION_URL', 'string' => translate('Action URL'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_2D_COORDS', 'string' => translate('2D coords'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_3D_COORDS', 'string' => translate('3D coords'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_ICON_IMAGE_ALT_TEXT', 'string' => translate('Icon image ALT text'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_STANDARD', 'string' => translate('standard'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_ON', 'string' => translate('on'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_OFF', 'string' => translate('off'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_SKIP', 'string' => translate('skip'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_FREE_VARIABLE_DEFINITIONS',
|
|
||||||
'string' => translate('Free variable definitions'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_VARIABLE_NAME', 'string' => translate('Variable name'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_VARIABLE_VALUE', 'string' => translate('Variable value'));
|
|
||||||
$arrDescription[] = array('name' => 'DELETE', 'string' => translate('Delete'));
|
|
||||||
$arrDescription[] = array('name' => 'DUPLICATE', 'string' => translate('Copy'));
|
|
||||||
$arrDescription[] = array('name' => 'ACTIVATE', 'string' => translate('Activate'));
|
|
||||||
$arrDescription[] = array('name' => 'DEACTIVATE', 'string' => translate('Deactivate'));
|
|
||||||
$arrDescription[] = array('name' => 'INFO', 'string' => translate('Information'));
|
|
||||||
$arrDescription[] = array('name' => 'WRITE_CONFIG', 'string' => translate('Write config file'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_DELETESINGLE',
|
|
||||||
'string' => translate('Do you really want to delete this database entry:'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_DELETEOK',
|
|
||||||
'string' => translate('Do you really want to delete all marked entries?'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_MARKALL',
|
|
||||||
'string' => translate('Mark all shown datasets'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_FILE', 'string' => translate('File'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_WRITE_CONF_ALL', 'string' => translate('Write all config files'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_ADDRESS', 'string' => translate('Address'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_DISPLAY_NAME', 'string' => translate('Display name'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_USE_THIS_AS_TEMPLATE',
|
|
||||||
'string' => translate('Use this configuration as a template'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_GENERIC_NAME', 'string' => translate('Generic name'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_HOST_NAME', 'string' => translate('Host name'));
|
|
||||||
$arrDescription[] = array('name' => 'FILL_ALLFIELDS',
|
|
||||||
'string' => translate('Please fill in all fields marked with an *'));
|
|
||||||
$arrDescription[] = array('name' => 'FILL_ILLEGALCHARS',
|
|
||||||
'string' => translate('The following field contains illegal characters:'));
|
|
||||||
$arrDescription[] = array('name' => 'FILL_BOXES',
|
|
||||||
'string' => translate('Please check at least one option from:'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_HOSTGROUP_NAME', 'string' => translate('Host group name'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_HOSTGROUP_MEMBERS', 'string' => translate('Host group members'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_HOSTS', 'string' => translate('Hosts'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_SERVICE_DESCRIPTION', 'string' => translate('Service description'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_SERVICEGROUPS', 'string' => translate('Service groups'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_IS_VOLATILE', 'string' => translate('Is volatile'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_PARALLELIZE_CHECK', 'string' => translate('Parallelize checks'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_CONFIGFILTER', 'string' => translate('Config name filter'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_CONFIG_NAME', 'string' => translate('Config name'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_IMPORT_DIRECTORY', 'string' => translate('Import directory'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_INSERT_ALL_VARIABLE',
|
|
||||||
'string' => translate('Please insert a variable name and a variable definition'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_MUST_BUT_TEMPLATE',
|
|
||||||
'string' => '<b>' .translate('Warning:'). '</b> ' .translate('You have not filled in some required fields!<br><br>'
|
|
||||||
. 'If this values are set by a template, you can save anyway - otherwise you will get an invalid '
|
|
||||||
. 'configuration!'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_TPLNAME', 'string' => translate('Template name'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_NAGIOS_BASEDIR', 'string' => translate('Nagios base directory'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_WRITE_CONFIG', 'string' => translate('Write config'));
|
|
||||||
$arrDescription[] = array('name' => 'FILL_ARGUMENTS',
|
|
||||||
'string' => '<b>' .translate('Warning:'). '</b> ' .translate('You have not filled in all command arguments (ARGx) '
|
|
||||||
. 'for your selected command!<br><br>If this arguments are optional, you can save anyway - otherwise '
|
|
||||||
. 'you will get an invalid configuration!'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_SERVICEGROUP_MEMBERS', 'string' => translate('Service group members'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_SERVICEGROUP_NAME', 'string' => translate('Service group name'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_DEPENDHOSTS', 'string' => translate('Dependent hosts'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_DEPENDHOSTGRS', 'string' => translate('Dependent hostgroups'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_HOSTGROUPS', 'string' => translate('Hostgroups'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_INHERIT', 'string' => translate('Inherit parents'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_EXECFAILCRIT',
|
|
||||||
'string' => translate('Execution failure criteria'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_NOTIFFAILCRIT',
|
|
||||||
'string' => translate('Nofification failure criteria'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_DEPENDENCY_PERIOD', 'string' => translate('Dependency period'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_ESCALATION_PERIOD', 'string' => translate('Escalation period'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_ESCALATION_OPTIONS', 'string' => translate('Escalation options'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_FIRST_NOTIFICATION', 'string' => translate('First notification'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_LAST_NOTIFICATION', 'string' => translate('Last notification'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_DEPENDSERVICES', 'string' => translate('Dependent services'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_SERVICES', 'string' => translate('Services'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_DEPENDSERVICEGROUPS',
|
|
||||||
'string' => translate('Dependent servicegroups'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_HELP', 'string' => translate('Help'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_CALENDAR', 'string' => translate('Calendar'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_GROUPNAME', 'string' => translate('Group name'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_USERS', 'string' => translate('Users'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_ACCESS_GROUP', 'string' => translate('Access group'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_USER_DEFINITIONS', 'string' => translate('User definitions'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_USER_NAME', 'string' => translate('User name'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_USER_RIGHTS', 'string' => translate('User rights'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_OBJECT_ACCESS_RESTRICTIONS',
|
|
||||||
'string' => translate('Object access restrictions'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_ADMIN_ENABLE',
|
|
||||||
'string' => translate('Enable group administration'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_SHOW_RELATION_DATA', 'string' => translate('Show relation data'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_HIDE_RELATION_DATA', 'string' => translate('Hide relation data'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_CONFIG_TARGET', 'string' => translate('Configuration target'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_LANGUAGE', 'string' => translate('User language'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_STANDARD_DOMAIN', 'string' => translate('Standard domain'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_SERVICES_WARNING',
|
|
||||||
'string' => '<b>' .translate('Warning:'). '</b> ' .translate('The associated services must be additionally '.
|
|
||||||
'written to the files. Only writing the host configuration is not sufficient because the modification is ' .
|
|
||||||
'stored inside the service files!'));
|
|
||||||
// weekdays
|
|
||||||
$arrDescription[] = array('name' => 'LANG_MONDAY', 'string' => translate('Monday'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_TUESDAY', 'string' => translate('Tuesday'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_WEDNESDAY', 'string' => translate('Wednesday'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_THURSDAY', 'string' => translate('Thursday'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_FRIDAY', 'string' => translate('Friday'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_SATURDAY', 'string' => translate('Saturday'));
|
|
||||||
$arrDescription[] = array('name' => 'LANG_SUNDAY', 'string' => translate('Sunday'));
|
|
||||||
if ($SETS['common']['seldisable'] == 0) {
|
|
||||||
$arrDescription[] = array('name' => 'LANG_CTRLINFO',
|
|
||||||
'string' => translate('Hold CTRL to select<br>more than one entry'));
|
|
||||||
} else {
|
|
||||||
$arrDescription[] = array('name' => 'LANG_CTRLINFO', 'string' => ' ');
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Quick fix for poEdit for dynamically loaded Parameters
|
|
||||||
// ======================================================
|
|
||||||
//
|
|
||||||
// Main menu
|
|
||||||
translate('Main page');
|
|
||||||
translate('Supervision');
|
|
||||||
translate('Alarming');
|
|
||||||
translate('Alarming');
|
|
||||||
translate('Commands');
|
|
||||||
translate('Specialties');
|
|
||||||
translate('Tools');
|
|
||||||
translate('Administration');
|
|
||||||
// Submenu
|
|
||||||
translate('Hosts');
|
|
||||||
translate('Time periods');
|
|
||||||
translate('Host templates');
|
|
||||||
translate('Contact data');
|
|
||||||
translate('Contact groups');
|
|
||||||
translate('Services');
|
|
||||||
translate('Host groups');
|
|
||||||
translate('Service groups');
|
|
||||||
translate('Service dependency');
|
|
||||||
translate('Service escalation');
|
|
||||||
translate('Host dependency');
|
|
||||||
translate('Host escalation');
|
|
||||||
translate('Extended Host');
|
|
||||||
translate('Extended Service');
|
|
||||||
translate('Data import');
|
|
||||||
translate('Delete config files');
|
|
||||||
translate('Delete backup files');
|
|
||||||
translate('User admin');
|
|
||||||
translate('Group admin');
|
|
||||||
translate('Nagios control');
|
|
||||||
translate('New password');
|
|
||||||
translate('Logbook');
|
|
||||||
translate('Nagios config');
|
|
||||||
translate('Settings');
|
|
||||||
translate('Definitions');
|
|
||||||
translate('CGI config');
|
|
||||||
translate('Menu access');
|
|
||||||
translate('Domains');
|
|
||||||
translate('Host templates');
|
|
||||||
translate('Service templates');
|
|
||||||
translate('Contact templates');
|
|
||||||
translate('Help editor');
|
|
||||||
translate('Data domains');
|
|
||||||
translate('Config targets');
|
|
||||||
translate('Support');
|
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user