Imported Upstream version 3.2.0
This commit is contained in:
commit
c4f4701ef1
|
@ -0,0 +1,46 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Admin main site
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-03-14 13:43:23 +0100 (Wed, 14 Mar 2012) $
|
||||||
|
// Author : $LastChangedBy: rouven $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1296 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 1;
|
||||||
|
$preContent = "admin/mainpages.tpl.htm";
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("functions/prepend_adm.php");
|
||||||
|
require("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='http://www.nagiosql.org' target='_blank'>NagiosQL</a> $setFileVersion");
|
||||||
|
$maintp->parse("footer");
|
||||||
|
$maintp->show("footer");
|
||||||
|
?>
|
|
@ -0,0 +1,43 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Administration overview
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-02-21 14:10:41 +0100 (Tue, 21 Feb 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1229 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 7;
|
||||||
|
$preContent = "admin/mainpages.tpl.htm";
|
||||||
|
//
|
||||||
|
// Include preprocessing file
|
||||||
|
// ==========================
|
||||||
|
require("../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='http://www.nagiosql.org' target='_blank'>NagiosQL</a> $setFileVersion");
|
||||||
|
$maintp->parse("footer");
|
||||||
|
$maintp->show("footer");
|
||||||
|
?>
|
|
@ -0,0 +1,77 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Alarming overview
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-02-08 15:13:31 +0100 (Wed, 08 Feb 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1189 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 3;
|
||||||
|
$preContent = "admin/mainpages.tpl.htm";
|
||||||
|
//
|
||||||
|
// Include preprocessing file
|
||||||
|
// ==========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
//
|
||||||
|
// Include content
|
||||||
|
// ===============
|
||||||
|
$conttp->setVariable("TITLE",translate('Alarming'));
|
||||||
|
$conttp->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
$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->getAccGroups('read');
|
||||||
|
if ($myVisClass->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=14")+0,'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->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=15")+0,'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->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=16")+0,'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->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=17")+0,'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='http://www.nagiosql.org' target='_blank'>NagiosQL</a> $setFileVersion");
|
||||||
|
$maintp->parse("footer");
|
||||||
|
$maintp->show("footer");
|
||||||
|
?>
|
|
@ -0,0 +1,153 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : File editor cgi.cfg
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-03-07 10:38:34 +0100 (Wed, 07 Mar 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1275 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 29;
|
||||||
|
$preContent = "admin/nagioscfg.tpl.htm";
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
$intRemoveTmp = 0;
|
||||||
|
$strConfig = "";
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../functions/prepend_content.php");
|
||||||
|
//
|
||||||
|
// Get configuration set ID
|
||||||
|
// ========================
|
||||||
|
$arrConfigSet = $myConfigClass->getConfigSets();
|
||||||
|
$intConfigId = $arrConfigSet[0];
|
||||||
|
$myConfigClass->getConfigData($intConfigId,"method",$intMethod);
|
||||||
|
$myConfigClass->getConfigData($intConfigId,"nagiosbasedir",$strBaseDir);
|
||||||
|
$strConfigfile = str_replace("//","/",$strBaseDir."/cgi.cfg");
|
||||||
|
$strLocalBackup = str_replace("//","/",$strBaseDir."/cgi.cfg_old_").date("YmdHis",mktime());
|
||||||
|
//
|
||||||
|
// Convert Windows to UNIX
|
||||||
|
// =======================
|
||||||
|
$chkTaFileText = str_replace("\r\n","\n",$chkTaFileText);
|
||||||
|
//
|
||||||
|
// Process data
|
||||||
|
// ============
|
||||||
|
if ($chkTaFileText != "") {
|
||||||
|
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,"w");
|
||||||
|
fputs($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);
|
||||||
|
}
|
||||||
|
} else if (($intMethod == 2) || ($intMethod == 3)) {
|
||||||
|
// Backup config file
|
||||||
|
$intReturn = $myConfigClass->moveFile("nagiosbasic","cgi.cfg",$intConfigId);
|
||||||
|
if ($intReturn == 1) {
|
||||||
|
$myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage);
|
||||||
|
}
|
||||||
|
// Write file to temporary
|
||||||
|
$strFileName = tempnam($_SESSION['SETS']['path']['tempdir'], 'nagiosql_cgi');
|
||||||
|
$resFile = fopen($strFileName,"w");
|
||||||
|
fputs($resFile,$chkTaFileText);
|
||||||
|
fclose($resFile);
|
||||||
|
// Copy configuration to remoty system
|
||||||
|
$intReturn = $myConfigClass->configCopy($strConfigfile,$intConfigId,$strFileName,1);
|
||||||
|
if ($intReturn == 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// Include content
|
||||||
|
// ===============
|
||||||
|
$conttp->setVariable("TITLE",translate('CGI configuration file'));
|
||||||
|
$conttp->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
//
|
||||||
|
// Include input form
|
||||||
|
// ===================
|
||||||
|
$conttp->setVariable("ACTION_INSERT",filter_var($_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,"r");
|
||||||
|
if ($resFile) {
|
||||||
|
while(!feof($resFile)) {
|
||||||
|
$strConfig .= fgets($resFile,1024);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$myVisClass->processMessage(translate('Cannot open the data file (check the permissions)!'),$strErrorMessage);
|
||||||
|
}
|
||||||
|
} else if (($intMethod == 2) || ($intMethod == 3)) {
|
||||||
|
// Write file to temporary
|
||||||
|
$strFileName = tempnam($_SESSION['SETS']['path']['tempdir'], 'nagiosql_cgi');
|
||||||
|
// Copy configuration from remoty system
|
||||||
|
$intReturn = $myConfigClass->configCopy($strConfigfile,$intConfigId,$strFileName,0);
|
||||||
|
if ($intReturn == 0) {
|
||||||
|
$resFile = fopen($strFileName,"r");
|
||||||
|
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->checkAccGroup($prePageKey,'write') != 0) $conttp->setVariable("ADD_CONTROL","disabled=\"disabled\"");
|
||||||
|
$conttp->parse("naginsert");
|
||||||
|
$conttp->show("naginsert");
|
||||||
|
//
|
||||||
|
// Process footer
|
||||||
|
// ==============
|
||||||
|
$maintp->setVariable("VERSION_INFO","<a href='http://www.nagiosql.org' target='_blank'>NagiosQL</a> $setFileVersion");
|
||||||
|
$maintp->parse("footer");
|
||||||
|
$maintp->show("footer");
|
||||||
|
?>
|
|
@ -0,0 +1,152 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Command definitions
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-03-09 07:43:00 +0100 (Fri, 09 Mar 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1282 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 18;
|
||||||
|
$preContent = "admin/checkcommands.tpl.htm";
|
||||||
|
$preSearchSession = 'checkcommand';
|
||||||
|
$preTableName = 'tbl_command';
|
||||||
|
$preKeyField = 'command_name';
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../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);
|
||||||
|
//
|
||||||
|
// Start content
|
||||||
|
// =============
|
||||||
|
$conttp->setVariable("TITLE",translate('Command definitions'));
|
||||||
|
$conttp->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
//
|
||||||
|
// 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("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("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)";
|
||||||
|
$booReturn = $myDBClass->getSingleDataset($strSQL,$arrDataLinesCount);
|
||||||
|
if ($booReturn == false) {
|
||||||
|
$myVisClass->processMessage(translate('Error while selecting data from database:'));
|
||||||
|
$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'];
|
||||||
|
$booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount);
|
||||||
|
if ($booReturn == false) {
|
||||||
|
$myVisClass->processMessage(translate('Error while selecting data from database:'));
|
||||||
|
$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);
|
||||||
|
?>
|
|
@ -0,0 +1,86 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Command line visualization
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-02-21 14:10:41 +0100 (Tue, 21 Feb 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1229 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$preNoMain = 1;
|
||||||
|
//
|
||||||
|
// Include preprocessing file
|
||||||
|
// ==========================
|
||||||
|
require("../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;
|
||||||
|
} else if (substr_count($strCommandLine,"ARG7") != 0) {
|
||||||
|
$intCount = 7;
|
||||||
|
} else if (substr_count($strCommandLine,"ARG6") != 0) {
|
||||||
|
$intCount = 6;
|
||||||
|
} else if (substr_count($strCommandLine,"ARG5") != 0) {
|
||||||
|
$intCount = 5;
|
||||||
|
} else if (substr_count($strCommandLine,"ARG4") != 0) {
|
||||||
|
$intCount = 4;
|
||||||
|
} else if (substr_count($strCommandLine,"ARG3") != 0) {
|
||||||
|
$intCount = 3;
|
||||||
|
} else if (substr_count($strCommandLine,"ARG2") != 0) {
|
||||||
|
$intCount = 2;
|
||||||
|
} else if (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>
|
|
@ -0,0 +1,59 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Commands overview
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-02-08 15:13:31 +0100 (Wed, 08 Feb 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1189 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 4;
|
||||||
|
$preContent = "admin/mainpages.tpl.htm";
|
||||||
|
//
|
||||||
|
// Include preprocessing file
|
||||||
|
// ==========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
//
|
||||||
|
// Include content
|
||||||
|
// ===============
|
||||||
|
$conttp->setVariable("TITLE",translate('Check commands'));
|
||||||
|
$conttp->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
$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->getAccGroups('read');
|
||||||
|
if ($myVisClass->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=18")+0,'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='http://www.nagiosql.org' target='_blank'>NagiosQL</a> $setFileVersion");
|
||||||
|
$maintp->parse("footer");
|
||||||
|
$maintp->show("footer");
|
||||||
|
?>
|
|
@ -0,0 +1,287 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Admin configuration target administration
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2011-12-01 15:20:17 +0100 (Do, 01. Dez 2011) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1137 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 36;
|
||||||
|
$preContent = "admin/configtargets.tpl.htm";
|
||||||
|
$preTableName = 'tbl_configtarget';
|
||||||
|
$preKeyField = 'target';
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
$intIsError = 0;
|
||||||
|
$strPathMessage = "";
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../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")) {
|
||||||
|
if ($chkDataId != 0) {
|
||||||
|
if ($chkSelValue1 == 1) {
|
||||||
|
$arrPaths = array($chkTfValue8,$chkTfValue9,$chkTfValue10,$chkTfValue11,$chkTfValue12,$chkTfValue13);
|
||||||
|
foreach ($arrPaths AS $elem) {
|
||||||
|
if (!$myConfigClass->dir_is_writable($elem)) {
|
||||||
|
$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,'r');
|
||||||
|
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."cgi.cfg")) {
|
||||||
|
$myVisClass->processMessage(str_replace(" "," ",translate("Cgi config file")." ".$chkTfValue14."cgi.cfg"." ".translate("is not writeable")),$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', `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', `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";
|
||||||
|
//
|
||||||
|
// Start content
|
||||||
|
// =============
|
||||||
|
$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->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
//
|
||||||
|
// 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("CLASS_NAME_1","elementHide");
|
||||||
|
$conttp->setVariable("CLASS_NAME_2","elementHide");
|
||||||
|
$conttp->setVariable("FILL_ALLFIELDS",translate('Please fill in all fields marked with an *'));
|
||||||
|
$conttp->setVariable("FILL_ILLEGALCHARS",translate('The following field contains not permitted characters:'));
|
||||||
|
// Insert data from database in "modify" mode
|
||||||
|
// 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");
|
||||||
|
}
|
||||||
|
if ($arrModifyData['method'] == 3) {
|
||||||
|
$conttp->setVariable("SFTP_SELECTED","selected");
|
||||||
|
$conttp->setVariable("CLASS_NAME_1","elementShow");
|
||||||
|
$conttp->setVariable("CLASS_NAME_2","elementShow");
|
||||||
|
}
|
||||||
|
// Nagios version
|
||||||
|
if ($arrModifyData['version'] == 1) $conttp->setVariable("VER_SELECTED_1","selected");
|
||||||
|
if ($arrModifyData['version'] == 2) $conttp->setVariable("VER_SELECTED_2","selected");
|
||||||
|
if ($arrModifyData['version'] == 3) $conttp->setVariable("VER_SELECTED_3","selected");
|
||||||
|
// Domain localhost cant' be renamed
|
||||||
|
if ($arrModifyData[$preKeyField] == "localhost") {
|
||||||
|
$conttp->setVariable("DOMAIN_DISABLE","readonly");
|
||||||
|
$conttp->setVariable("LOCKCLASS","inputlock");
|
||||||
|
} else if ($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");
|
||||||
|
} else if ($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");
|
||||||
|
if ($chkSelValue1 == 2) {
|
||||||
|
$conttp->setVariable("FTP_SELECTED","selected");
|
||||||
|
$conttp->setVariable("CLASS_NAME_1","elementShow");
|
||||||
|
}
|
||||||
|
if ($chkSelValue1 == 3) {
|
||||||
|
$conttp->setVariable("SFTP_SELECTED","selected");
|
||||||
|
$conttp->setVariable("CLASS_NAME_1","elementShow");
|
||||||
|
$conttp->setVariable("CLASS_NAME_2","elementShow");
|
||||||
|
}
|
||||||
|
$conttp->setVariable("DAT_USER",$chkTfValue5);
|
||||||
|
$conttp->setVariable("DAT_SSH_KEY_PATH",$chkTfValue7);
|
||||||
|
$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_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",$_POST['modus']);
|
||||||
|
$conttp->setVariable("DAT_ID",$_POST['hidId']);
|
||||||
|
$conttp->setVariable("LIMIT",$_POST['hidLimit']);
|
||||||
|
// Active
|
||||||
|
if (isset ($_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("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)";
|
||||||
|
$booReturn = $myDBClass->getSingleDataset($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`, `alias`, `active`, `nodelete`, `access_group` FROM `$preTableName` WHERE `access_group` IN ($strAccess)
|
||||||
|
$strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
||||||
|
$booReturn = $myDBClass->getDataArray($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,'alias');
|
||||||
|
}
|
||||||
|
// Show messages
|
||||||
|
$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,'','',1);
|
||||||
|
//
|
||||||
|
// Process footer
|
||||||
|
// ==============
|
||||||
|
$myContentClass->showFooter($maintp,$setFileVersion);
|
||||||
|
?>
|
|
@ -0,0 +1,182 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Contactgroup definition
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-03-09 07:43:00 +0100 (Fri, 09 Mar 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1282 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 15;
|
||||||
|
$preContent = "admin/contactgroups.tpl.htm";
|
||||||
|
$preSearchSession = 'contactgroup';
|
||||||
|
$preTableName = 'tbl_contactgroup';
|
||||||
|
$preKeyField = 'contactgroup_name';
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../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);
|
||||||
|
} else if ($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);
|
||||||
|
//
|
||||||
|
// Start content
|
||||||
|
// =============
|
||||||
|
$conttp->setVariable("TITLE",translate('Define contact groups (contactgroups.cfg)'));
|
||||||
|
$conttp->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
//
|
||||||
|
// Singe data form
|
||||||
|
// ===============
|
||||||
|
if ($chkModus == "add") {
|
||||||
|
// Do not show modified time list
|
||||||
|
$intNoTime = 1;
|
||||||
|
// Process contact member selection fields
|
||||||
|
$intReturn = 0;
|
||||||
|
if (isset($arrModifyData['members'])) {$intFieldId = $arrModifyData['members'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectMulti('tbl_contact','contact_name','contacts','tbl_lnkContactgroupToContact',2,$intFieldId);
|
||||||
|
if ($intReturn != 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;}
|
||||||
|
$intReturn = $myVisClass->parseSelectMulti($preTableName,$preKeyField,'contactgroups','tbl_lnkContactgroupToContactgroup',0,$intFieldId,$chkListId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
// 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);
|
||||||
|
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("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)";
|
||||||
|
$booReturn = $myDBClass->getSingleDataset($strSQL,$arrDataLinesCount);
|
||||||
|
if ($booReturn == false) {
|
||||||
|
$myVisClass->processMessage(translate('Error while selecting data from database:'));
|
||||||
|
$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'];
|
||||||
|
$booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount);
|
||||||
|
if ($booReturn == false) {
|
||||||
|
$myVisClass->processMessage(translate('Error while selecting data from database:'));
|
||||||
|
$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);
|
||||||
|
?>
|
|
@ -0,0 +1,342 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Contact definitions
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-04-20 12:39:53 +0200 (Fri, 20 Apr 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1323 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 14;
|
||||||
|
$preContent = "admin/contacts.tpl.htm";
|
||||||
|
$preSearchSession = 'contact';
|
||||||
|
$preTableName = 'tbl_contact';
|
||||||
|
$preKeyField = 'contact_name';
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../functions/prepend_content.php");
|
||||||
|
//
|
||||||
|
// Checkbox data processing
|
||||||
|
// ========================
|
||||||
|
if ($intVersion == 3) {
|
||||||
|
$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,
|
||||||
|
`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);
|
||||||
|
} else if ($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;
|
||||||
|
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") {
|
||||||
|
$strSQL = "SELECT * FROM `tbl_lnkContactToVariabledefinition` WHERE `idMaster`=$chkDataId";
|
||||||
|
$booReturn = $myDBClass->getDataArray($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_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);
|
||||||
|
//
|
||||||
|
// Start content
|
||||||
|
// =============
|
||||||
|
$conttp->setVariable("TITLE",translate("Define contacts (contacts.cfg)"));
|
||||||
|
$conttp->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
//
|
||||||
|
// Singe data form
|
||||||
|
// ===============
|
||||||
|
if ($chkModus == "add") {
|
||||||
|
// Do not show modified time list
|
||||||
|
$intNoTime = 1;
|
||||||
|
// Process template selection fields (Spezial)
|
||||||
|
$strWhere = "";
|
||||||
|
if (isset($arrModifyData) && ($chkSelModify == "modify")) {
|
||||||
|
$strWhere = "AND `id` <> ".$arrModifyData['id'];
|
||||||
|
}
|
||||||
|
$strSQL = "SELECT `id`,`template_name`, `active` FROM `tbl_contacttemplate` WHERE $strDomainWhere2 ORDER BY `template_name`";
|
||||||
|
$booReturn = $myDBClass->getDataArray($strSQL,$arrDataTpl,$intDataCountTpl);
|
||||||
|
if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if ($intDataCountTpl != 0) {
|
||||||
|
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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$strSQL = "SELECT `id`, `name`, `active` FROM `$preTableName` WHERE `name` <> '' $strWhere AND $strDomainWhere ORDER BY `name`";
|
||||||
|
$booReturn = $myDBClass->getDataArray($strSQL,$arrDataHpl,$intDataCount);
|
||||||
|
if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if ($arrDataHpl != 0) {
|
||||||
|
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
|
||||||
|
$intReturn = 0;
|
||||||
|
if (isset($arrModifyData['host_notification_period'])) {$intFieldId = $arrModifyData['host_notification_period'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod','timeperiod_name','host_time',1,$intFieldId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if (isset($arrModifyData['service_notification_period'])) {$intFieldId = $arrModifyData['service_notification_period'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod','timeperiod_name','service_time',1,$intFieldId);
|
||||||
|
if ($intReturn != 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;}
|
||||||
|
$intReturn = $myVisClass->parseSelectMulti('tbl_command','command_name','host_command','tbl_lnkContactToCommandHost',0,$intFieldId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if (isset($arrModifyData['service_notification_commands'])) {$intFieldId = $arrModifyData['service_notification_commands'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectMulti('tbl_command','command_name','service_command','tbl_lnkContactToCommandService',0,$intFieldId);
|
||||||
|
if ($intReturn != 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;}
|
||||||
|
$intReturn = $myVisClass->parseSelectMulti('tbl_contactgroup','contactgroup_name','contactgroup','tbl_lnkContactToContactgroup',2,$intFieldId);
|
||||||
|
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;}
|
||||||
|
$intReturn = $myVisClass->parseSelectSimple('tbl_group','groupname','acc_group',0,$intFieldId);
|
||||||
|
if ($intReturn != 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 == 3) {
|
||||||
|
$conttp->setVariable("HOST_OPTION_FIELDS","chbGr1a,chbGr1b,chbGr1c,chbGr1d,chbGr1e,chbGr1f");
|
||||||
|
$conttp->setVariable("SERVICE_OPTION_FIELDS","chbGr2a,chbGr2b,chbGr2c,chbGr2d,chbGr2e,chbGr2f,chbGr2g");
|
||||||
|
} else {
|
||||||
|
$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("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
|
||||||
|
$strSQL = "SELECT count(*) AS `number` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)";
|
||||||
|
$booReturn = $myDBClass->getSingleDataset($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`, `alias`, `active`, `register`, `config_id`, `access_group` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere
|
||||||
|
AND `access_group` IN ($strAccess) $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
||||||
|
$booReturn = $myDBClass->getDataArray($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,'alias');
|
||||||
|
}
|
||||||
|
// Show messages
|
||||||
|
$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,$arrTimeData,$strTimeInfoString,$intNoTime);
|
||||||
|
//
|
||||||
|
// Process footer
|
||||||
|
// ==============
|
||||||
|
$myContentClass->showFooter($maintp,$setFileVersion);
|
||||||
|
?>
|
|
@ -0,0 +1,334 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Contact template definitions
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-03-09 07:43:00 +0100 (Fri, 09 Mar 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1282 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 17;
|
||||||
|
$preContent = "admin/contacttemplates.tpl.htm";
|
||||||
|
$preSearchSession = 'contacttemplate';
|
||||||
|
$preTableName = 'tbl_contacttemplate';
|
||||||
|
$preKeyField = 'template_name';
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../functions/prepend_content.php");
|
||||||
|
//
|
||||||
|
// Checkbox data processing
|
||||||
|
// ========================
|
||||||
|
if ($intVersion == 3) {
|
||||||
|
$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,
|
||||||
|
`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);
|
||||||
|
} else if ($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;
|
||||||
|
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->getDataArray($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);
|
||||||
|
//
|
||||||
|
// Start content
|
||||||
|
// =============
|
||||||
|
$conttp->setVariable("TITLE",translate("Define contact templates (contacttemplates.cfg)"));
|
||||||
|
$conttp->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
//
|
||||||
|
// Singe data form
|
||||||
|
// ===============
|
||||||
|
if ($chkModus == "add") {
|
||||||
|
// Do not show modified time list
|
||||||
|
$intNoTime = 1;
|
||||||
|
// Process template selection fields (Spezial)
|
||||||
|
$strWhere = "";
|
||||||
|
if (isset($arrModifyData) && ($chkSelModify == "modify")) {
|
||||||
|
$strWhere = "AND `id` <> ".$arrModifyData['id'];
|
||||||
|
}
|
||||||
|
$strSQL = "SELECT `id`,`$preKeyField`, `active` FROM `$preTableName` WHERE $strDomainWhere $strWhere ORDER BY `$preKeyField`";
|
||||||
|
$booReturn = $myDBClass->getDataArray($strSQL,$arrDataTpl,$intDataCountTpl);
|
||||||
|
if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if ($intDataCountTpl != 0) {
|
||||||
|
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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$strSQL = "SELECT `id`, `name`, `active` FROM `tbl_contact` WHERE `name` <> '' AND $strDomainWhere2 ORDER BY name";
|
||||||
|
$booReturn = $myDBClass->getDataArray($strSQL,$arrDataHpl,$intDataCount);
|
||||||
|
if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if ($arrDataHpl != 0) {
|
||||||
|
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
|
||||||
|
$intReturn = 0;
|
||||||
|
if (isset($arrModifyData['host_notification_period'])) {$intFieldId = $arrModifyData['host_notification_period'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod','timeperiod_name','host_time',1,$intFieldId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if (isset($arrModifyData['service_notification_period'])) {$intFieldId = $arrModifyData['service_notification_period'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod','timeperiod_name','service_time',1,$intFieldId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
// Process command selection fields
|
||||||
|
if (isset($arrModifyData['host_notification_commands'])) {$intFieldId = $arrModifyData['host_notification_commands'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectMulti('tbl_command','command_name','host_command','tbl_lnkContacttemplateToCommandHost',0,$intFieldId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if (isset($arrModifyData['service_notification_commands'])) {$intFieldId = $arrModifyData['service_notification_commands'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectMulti('tbl_command','command_name','service_command','tbl_lnkContacttemplateToCommandService',0,$intFieldId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
// Process contactgroup selection field
|
||||||
|
if (isset($arrModifyData['contactgroups'])) {$intFieldId = $arrModifyData['contactgroups'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectMulti('tbl_contactgroup','contactgroup_name','contactgroup','tbl_lnkContacttemplateToContactgroup',2,$intFieldId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
// 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
|
||||||
|
$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 == 3) {
|
||||||
|
$conttp->setVariable("HOST_OPTION_FIELDS","chbHOd3,chbHOu3,chbHOr3,chbHOf3,chbHOs3,chbHOn3");
|
||||||
|
$conttp->setVariable("SERVICE_OPTION_FIELDS","chbSOw3,chbSOu3,chbSOc3,chbSOr3,chbSOf3,chbSOs3,chbSOn3");
|
||||||
|
} else {
|
||||||
|
$conttp->setVariable("HOST_OPTION_FIELDS","chbHOd2,chbHOu2,chbHOr2,chbHOf2,chbHOn2");
|
||||||
|
$conttp->setVariable("SERVICE_OPTION_FIELDS","chbSOw2,chbSOu2,chbSOc2,chbSOr2,chbSOf2,chbSOn2");
|
||||||
|
$conttp->setVariable("VERSION_20_VALUE_MUST",",tfFriendly");
|
||||||
|
}
|
||||||
|
// 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("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)";
|
||||||
|
$booReturn = $myDBClass->getSingleDataset($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`, `alias`, `active`, `register`, `config_id`, `access_group` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere
|
||||||
|
AND `access_group` IN ($strAccess) $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
||||||
|
$booReturn = $myDBClass->getDataArray($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,'alias');
|
||||||
|
}
|
||||||
|
// Show messages
|
||||||
|
$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,$arrTimeData,$strTimeInfoString,$intNoTime);
|
||||||
|
//
|
||||||
|
// Process footer
|
||||||
|
// ==============
|
||||||
|
$myContentClass->showFooter($maintp,$setFileVersion);
|
||||||
|
?>
|
|
@ -0,0 +1,160 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Admin domain administration
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2011-12-01 15:20:17 +0100 (Do, 01. Dez 2011) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1137 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 35;
|
||||||
|
$preContent = "admin/datadomain.tpl.htm";
|
||||||
|
$preTableName = 'tbl_datadomain';
|
||||||
|
$preKeyField = 'domain';
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../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";
|
||||||
|
//
|
||||||
|
// Start content
|
||||||
|
// =============
|
||||||
|
$conttp->setVariable("TITLE",translate('Data domain administration'));
|
||||||
|
$conttp->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
//
|
||||||
|
// Single view
|
||||||
|
// ===========
|
||||||
|
if ($chkModus == "add") {
|
||||||
|
// Process configuration target selection fields
|
||||||
|
$intReturn = 0;
|
||||||
|
if (isset($arrModifyData['targets'])) {$intFieldId = $arrModifyData['targets'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectSimple('tbl_configtarget','target','target',0,$intFieldId);
|
||||||
|
if ($intReturn != 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;}
|
||||||
|
$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!'));
|
||||||
|
$conttp->setVariable("FILL_ALLFIELDS",translate('Please fill in all fields marked with an *'));
|
||||||
|
$conttp->setVariable("FILL_ILLEGALCHARS",translate('The following field contains not permitted 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
|
||||||
|
if ($arrModifyData['version'] == 1) $conttp->setVariable("VER_SELECTED_1","selected");
|
||||||
|
if ($arrModifyData['version'] == 2) $conttp->setVariable("VER_SELECTED_2","selected");
|
||||||
|
if ($arrModifyData['version'] == 3) $conttp->setVariable("VER_SELECTED_3","selected");
|
||||||
|
// Enable common domain
|
||||||
|
if ($arrModifyData['enable_common'] == 0) $conttp->setVariable("ENA_COMMON_SELECTED_0","selected");
|
||||||
|
if ($arrModifyData['enable_common'] == 1) $conttp->setVariable("ENA_COMMON_SELECTED_1","selected");
|
||||||
|
// Domain localhost cant' be renamed
|
||||||
|
if ($arrModifyData['domain'] == "localhost") {
|
||||||
|
$conttp->setVariable("DOMAIN_DISABLE","readonly");
|
||||||
|
$conttp->setVariable("LOCKCLASS","inputlock");
|
||||||
|
} else if ($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("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)";
|
||||||
|
$booReturn = $myDBClass->getSingleDataset($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`, `domain`, `alias`, `active`, `nodelete`, `access_group` FROM `$preTableName` WHERE `access_group` IN ($strAccess)
|
||||||
|
$strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
||||||
|
$booReturn = $myDBClass->getDataArray($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,'alias');
|
||||||
|
}
|
||||||
|
// Show messages
|
||||||
|
$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,'','',1);
|
||||||
|
//
|
||||||
|
// Process footer
|
||||||
|
// ==============
|
||||||
|
$myContentClass->showFooter($maintp,$setFileVersion);
|
||||||
|
?>
|
|
@ -0,0 +1,149 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Admin file deletion
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-02-27 13:01:17 +0100 (Mon, 27 Feb 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1257 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 26;
|
||||||
|
$preContent = "admin/delbackup.tpl.htm";
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../functions/prepend_content.php");
|
||||||
|
//
|
||||||
|
// Get configuration set ID
|
||||||
|
// ========================
|
||||||
|
$arrConfigSet = $myConfigClass->getConfigSets();
|
||||||
|
$intConfigId = $arrConfigSet[0];
|
||||||
|
$myConfigClass->getConfigData($intConfigId,"method",$intMethod);
|
||||||
|
$myConfigClass->getConfigData($intConfigId,"backupdir",$strBackupDir);
|
||||||
|
$myConfigClass->getConfigData($intConfigId,"hostbackup",$strHostBackupDir);
|
||||||
|
$myConfigClass->getConfigData($intConfigId,"servicebackup",$strServiceBackupDir);
|
||||||
|
//
|
||||||
|
// Process form inputs
|
||||||
|
// ===================
|
||||||
|
if (($chkMselValue1[0] != "") && ($chkStatus == 1)) {
|
||||||
|
foreach($chkMselValue1 AS $elem) {
|
||||||
|
$intCheck = $myConfigClass->removeFile(trim($elem),$intConfigId);
|
||||||
|
$strFile = str_replace($strServiceBackupDir,"",$elem);
|
||||||
|
$strFile = str_replace($strHostBackupDir,"",$strFile);
|
||||||
|
$strFile = str_replace($strBackupDir,"",$strFile);
|
||||||
|
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_var($_SERVER['PHP_SELF'], FILTER_SANITIZE_STRING));
|
||||||
|
// Build a local file list
|
||||||
|
if ($intMethod == 1) {
|
||||||
|
$output = array();
|
||||||
|
$temp=$myConfigClass->DirToArray($strBackupDir, "\.cfg_", "",$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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if ($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);
|
||||||
|
$arrFiles1 = ftp_nlist($myConfigClass->resConnectId,$strServiceBackupDir);
|
||||||
|
if (is_array($arrFiles1)) $arrFiles = array_merge($arrFiles,$arrFiles1);
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
} else if ($intMethod == 3) {
|
||||||
|
// Set up basic connection
|
||||||
|
if ($myConfigClass->getSSHConnection($intConfigId) == "0") {
|
||||||
|
$arrFiles = array();
|
||||||
|
$arrFiles1 = $myConfigClass->sendSSHCommand("ls ".$strBackupDir."*.cfg_old*");
|
||||||
|
if (is_array($arrFiles1)) $arrFiles = array_merge($arrFiles,$arrFiles1);
|
||||||
|
$arrFiles2 = $myConfigClass->sendSSHCommand("ls ".$strHostBackupDir."*.cfg_old*");
|
||||||
|
if (is_array($arrFiles2)) $arrFiles = array_merge($arrFiles,$arrFiles2);
|
||||||
|
$arrFiles3 = $myConfigClass->sendSSHCommand("ls ".$strServiceBackupDir."*.cfg_old*");
|
||||||
|
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_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->checkAccGroup($prePageKey,'write') != 0) $conttp->setVariable("ADD_CONTROL","disabled=\"disabled\"");
|
||||||
|
$conttp->parse("main");
|
||||||
|
$conttp->show("main");
|
||||||
|
//
|
||||||
|
// Footer ausgeben
|
||||||
|
// ===============
|
||||||
|
$maintp->setVariable("VERSION_INFO","<a href='http://www.nagiosql.org' target='_blank'>NagiosQL</a> $setFileVersion");
|
||||||
|
$maintp->parse("footer");
|
||||||
|
$maintp->show("footer");
|
||||||
|
?>
|
|
@ -0,0 +1,164 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Admin file deletion
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-02-27 13:01:17 +0100 (Mon, 27 Feb 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1257 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 27;
|
||||||
|
$preContent = "admin/delbackup.tpl.htm";
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../functions/prepend_content.php");
|
||||||
|
//
|
||||||
|
// Get configuration set ID
|
||||||
|
// ========================
|
||||||
|
$arrConfigSet = $myConfigClass->getConfigSets();
|
||||||
|
$intConfigId = $arrConfigSet[0];
|
||||||
|
$myConfigClass->getConfigData($intConfigId,"method",$intMethod);
|
||||||
|
$myConfigClass->getConfigData($intConfigId,"basedir",$strBaseDir);
|
||||||
|
$myConfigClass->getConfigData($intConfigId,"hostconfig",$strHostDir);
|
||||||
|
$myConfigClass->getConfigData($intConfigId,"serviceconfig",$strServiceDir);
|
||||||
|
//
|
||||||
|
// Process form inputs
|
||||||
|
// ===================
|
||||||
|
if (($chkMselValue1[0] != "") && ($chkStatus == 1)) {
|
||||||
|
foreach($chkMselValue1 AS $elem) {
|
||||||
|
$intCheck = $myConfigClass->removeFile(trim($elem),$intConfigId);
|
||||||
|
$strFile = str_replace($strServiceDir,"",$elem);
|
||||||
|
$strFile = str_replace($strHostDir,"",$strFile);
|
||||||
|
$strFile = str_replace($strBaseDir,"",$strFile);
|
||||||
|
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_var($_SERVER['PHP_SELF'], FILTER_SANITIZE_STRING));
|
||||||
|
// Build a local file list
|
||||||
|
if ($intMethod == 1) {
|
||||||
|
$output = array();
|
||||||
|
$temp=$myConfigClass->DirToArray($strBaseDir, "\.cfg", "",$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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if ($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);
|
||||||
|
}
|
||||||
|
} else if ($intMethod == 3) {
|
||||||
|
// Open ssh connection
|
||||||
|
if ($myConfigClass->getSSHConnection($intConfigId) == "0") {
|
||||||
|
$arrFiles1 = $myConfigClass->sendSSHCommand('ls '.$strBaseDir);
|
||||||
|
if (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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$arrFiles2 = $myConfigClass->sendSSHCommand('ls '.$strHostDir);
|
||||||
|
if (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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$arrFiles3 = $myConfigClass->sendSSHCommand('ls '.$strServiceDir);
|
||||||
|
if (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->checkAccGroup($prePageKey,'write') != 0) $conttp->setVariable("ADD_CONTROL","disabled=\"disabled\"");
|
||||||
|
$conttp->parse("main");
|
||||||
|
$conttp->show("main");
|
||||||
|
//
|
||||||
|
// Footer ausgeben
|
||||||
|
// ===============
|
||||||
|
$maintp->setVariable("VERSION_INFO","<a href='http://www.nagiosql.org' target='_blank'>NagiosQL</a> $setFileVersion");
|
||||||
|
$maintp->parse("footer");
|
||||||
|
$maintp->show("footer");
|
||||||
|
?>
|
|
@ -0,0 +1,68 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Download config file
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-02-21 14:10:41 +0100 (Tue, 21 Feb 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1229 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Version control
|
||||||
|
// ===============
|
||||||
|
session_cache_limiter('private_no_expire');
|
||||||
|
//
|
||||||
|
// Include preprocessing file
|
||||||
|
// ==========================
|
||||||
|
$preNoMain = 1;
|
||||||
|
$preNoLogin = 1;
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
//
|
||||||
|
// Process post parameters
|
||||||
|
// =======================
|
||||||
|
$chkTable = isset($_GET['table']) ? htmlspecialchars($_GET['table'], ENT_QUOTES, 'utf-8') : "";
|
||||||
|
$chkConfig = isset($_GET['config']) ? htmlspecialchars($_GET['config'], ENT_QUOTES, 'utf-8') : "";
|
||||||
|
$chkLine = isset($_GET['line']) ? htmlspecialchars($_GET['line'], ENT_QUOTES, 'utf-8') : 0;
|
||||||
|
//
|
||||||
|
// Header output
|
||||||
|
// ===============
|
||||||
|
switch($chkTable) {
|
||||||
|
case "tbl_timeperiod": $strFile = "timeperiods.cfg"; break;
|
||||||
|
case "tbl_command": $strFile = "commands.cfg"; break;
|
||||||
|
case "tbl_contact": $strFile = "contacts.cfg"; break;
|
||||||
|
case "tbl_contacttemplate": $strFile = "contacttemplates.cfg"; break;
|
||||||
|
case "tbl_contactgroup": $strFile = "contactgroups.cfg"; break;
|
||||||
|
case "tbl_hosttemplate": $strFile = "hosttemplates.cfg"; break;
|
||||||
|
case "tbl_servicetemplate": $strFile = "servicetemplates.cfg"; break;
|
||||||
|
case "tbl_hostgroup": $strFile = "hostgroups.cfg"; break;
|
||||||
|
case "tbl_servicegroup": $strFile = "servicegroups.cfg"; break;
|
||||||
|
case "tbl_servicedependency": $strFile = "servicedependencies.cfg"; break;
|
||||||
|
case "tbl_hostdependency": $strFile = "hostdependencies.cfg"; break;
|
||||||
|
case "tbl_serviceescalation": $strFile = "serviceescalations.cfg"; break;
|
||||||
|
case "tbl_hostescalation": $strFile = "hostescalations.cfg"; break;
|
||||||
|
case "tbl_hostextinfo": $strFile = "hostextinfo.cfg"; break;
|
||||||
|
case "tbl_serviceextinfo": $strFile = "serviceextinfo.cfg"; break;
|
||||||
|
default: $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);
|
||||||
|
?>
|
|
@ -0,0 +1,165 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Group administration
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-02-21 14:10:41 +0100 (Tue, 21 Feb 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1229 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 33;
|
||||||
|
$preContent = "admin/group.tpl.htm";
|
||||||
|
$preSearchSession = 'group';
|
||||||
|
$preTableName = 'tbl_group';
|
||||||
|
$preKeyField = 'groupname';
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
$preNoAccessGrp = 1;
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../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";
|
||||||
|
//
|
||||||
|
// Start content
|
||||||
|
// =============
|
||||||
|
$conttp->setVariable("TITLE",translate('Group administration'));
|
||||||
|
$conttp->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
//
|
||||||
|
// Singe data form
|
||||||
|
// ===============
|
||||||
|
if ($chkModus == "add") {
|
||||||
|
// Process data fields
|
||||||
|
$strSQL = "SELECT * FROM tbl_user WHERE id <> 1 ORDER BY username";
|
||||||
|
$booReturn = $myDBClass->getDataArray($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("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 not permitted 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("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`";
|
||||||
|
$booReturn = $myDBClass->getSingleDataset($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`, `groupname`, `description`, `active` FROM `$preTableName` $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
||||||
|
$booReturn = $myDBClass->getDataArray($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,'description');
|
||||||
|
}
|
||||||
|
// Show messages
|
||||||
|
$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,'','',1);
|
||||||
|
//
|
||||||
|
// Process footer
|
||||||
|
// ==============
|
||||||
|
$myContentClass->showFooter($maintp,$setFileVersion);
|
||||||
|
?>
|
|
@ -0,0 +1,159 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Admin time definition list
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-02-27 13:01:17 +0100 (Mon, 27 Feb 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1257 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$preAccess = 1;
|
||||||
|
//$prePageId = 33;
|
||||||
|
$preNoMain = 1;
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
//
|
||||||
|
// Process get parameters
|
||||||
|
// ======================
|
||||||
|
$chkDataId = isset($_GET['dataId']) ? htmlspecialchars($_GET['dataId'], ENT_QUOTES, 'utf-8') : 0;
|
||||||
|
$chkMode = isset($_GET['mode']) ? htmlspecialchars($_GET['mode'], ENT_QUOTES, 'utf-8') : "";
|
||||||
|
$chkUser = isset($_GET['user']) ? htmlspecialchars($_GET['user'], ENT_QUOTES, 'utf-8') : "";
|
||||||
|
$chkRights = isset($_GET['rights']) ? htmlspecialchars($_GET['rights'], ENT_QUOTES, 'utf-8') : "";
|
||||||
|
$chkId = isset($_GET['id']) ? htmlspecialchars($_GET['id'], ENT_QUOTES, 'utf-8') : "";
|
||||||
|
$chkVersion = isset($_GET['version']) ? htmlspecialchars($_GET['version'], ENT_QUOTES, 'utf-8') : 0;
|
||||||
|
$chkLinkTab = isset($_GET['linktab']) ? htmlspecialchars($_GET['linktab'], ENT_QUOTES, 'utf-8') : "";
|
||||||
|
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->getDataArray($strSQL,$arrDataLines,$intDataCount);
|
||||||
|
//
|
||||||
|
// Write data to session
|
||||||
|
// =====================
|
||||||
|
if ($chkMode == "") {
|
||||||
|
$_SESSION['groupuser'] = "";
|
||||||
|
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'][] = $arrTemp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// Deletion mode
|
||||||
|
// =============
|
||||||
|
if ($chkMode == "del") {
|
||||||
|
if (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>
|
|
@ -0,0 +1,153 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Help text editor
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-02-27 13:01:17 +0100 (Mon, 27 Feb 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1257 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 39;
|
||||||
|
$preContent = "admin/helpedit.tpl.htm";
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
$setSaveLangId = "private";
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../functions/prepend_content.php");
|
||||||
|
//
|
||||||
|
// Process post parameters
|
||||||
|
// =======================
|
||||||
|
$chkHidVersion = isset($_POST['hidVersion']) ? $_POST['hidVersion'] : "all";
|
||||||
|
$chkKey1 = isset($_POST['selInfoKey1']) ? $_POST['selInfoKey1'] : "";
|
||||||
|
$chkKey2 = isset($_POST['selInfoKey2']) ? $_POST['selInfoKey2'] : "";
|
||||||
|
$chkVersion = isset($_POST['selInfoVersion']) ? $_POST['selInfoVersion'] : "";
|
||||||
|
//
|
||||||
|
// Add or modify data
|
||||||
|
// ==================
|
||||||
|
if (($chkTaValue1 != "") && ($chkTfValue3 == "1")) {
|
||||||
|
$strSQL = "SELECT `infotext` FROM `tbl_info`
|
||||||
|
WHERE `key1` = '$chkTfValue1' AND `key2` = '$chkTfValue2' AND `version` = '$chkHidVersion'
|
||||||
|
AND `language` = '$setSaveLangId'";
|
||||||
|
$booReturn = $myDBClass->getDataArray($strSQL,$arrData,$intDataCount);
|
||||||
|
if ($intDataCount == 0) {
|
||||||
|
$strSQL = "INSERT INTO `tbl_info` (`key1`,`key2`,`version`,`language`,`infotext`)
|
||||||
|
VALUES ('$chkTfValue1','$chkTfValue2','$chkHidVersion','$setSaveLangId','$chkTaValue1')";
|
||||||
|
} else {
|
||||||
|
$strSQL = "UPDATE `tbl_info` SET `infotext` = '$chkTaValue1'
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// Start content
|
||||||
|
// =============
|
||||||
|
$conttp->setVariable("TITLE",translate('Help text editor'));
|
||||||
|
$conttp->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
//
|
||||||
|
// Singe data form
|
||||||
|
// ===============
|
||||||
|
$conttp->setVariable("ACTION_INSERT",filter_var($_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
|
||||||
|
// =======
|
||||||
|
$strSQL = "SELECT DISTINCT `key1` FROM `tbl_info` ORDER BY `key1`";
|
||||||
|
$booReturn = $myDBClass->getDataArray($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->getDataArray($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->getDataArray($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->checkAccGroup($prePageKey,'write') != 0) $conttp->setVariable("ADD_CONTROL","disabled=\"disabled\"");
|
||||||
|
$conttp->parse("helpedit");
|
||||||
|
$conttp->show("helpedit");
|
||||||
|
//
|
||||||
|
// Process footer
|
||||||
|
// ==============
|
||||||
|
$maintp->setVariable("VERSION_INFO","<a href='http://www.nagiosql.org' target='_blank'>NagiosQL</a> $setFileVersion");
|
||||||
|
$maintp->parse("footer");
|
||||||
|
$maintp->show("footer");
|
||||||
|
?>
|
|
@ -0,0 +1,229 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Host dependencies definition
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-03-09 07:43:00 +0100 (Fri, 09 Mar 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1282 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 19;
|
||||||
|
$preContent = "admin/hostdependencies.tpl.htm";
|
||||||
|
$preSearchSession = 'hostdependencies';
|
||||||
|
$preTableName = 'tbl_hostdependency';
|
||||||
|
$preKeyField = 'config_name';
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../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);
|
||||||
|
} else if ($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);
|
||||||
|
//
|
||||||
|
// Start content
|
||||||
|
// =============
|
||||||
|
$conttp->setVariable("TITLE",translate('Define host dependencies (hostdependencies.cfg)'));
|
||||||
|
$conttp->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
//
|
||||||
|
// Singe data form
|
||||||
|
// ===============
|
||||||
|
if ($chkModus == "add") {
|
||||||
|
// 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("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->getSingleDataset($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->getDataArray($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);
|
||||||
|
?>
|
|
@ -0,0 +1,226 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Host escalation definition
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-03-09 07:43:00 +0100 (Fri, 09 Mar 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1282 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 20;
|
||||||
|
$preContent = "admin/hostescalations.tpl.htm";
|
||||||
|
$preSearchSession = 'hostescalation';
|
||||||
|
$preTableName = 'tbl_hostescalation';
|
||||||
|
$preKeyField = 'config_name';
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../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);
|
||||||
|
} else if ($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);
|
||||||
|
//
|
||||||
|
// Start content
|
||||||
|
// =============
|
||||||
|
$conttp->setVariable("TITLE",translate('Define host escalation (hostescalations.cfg)'));
|
||||||
|
$conttp->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
//
|
||||||
|
// Singe data form
|
||||||
|
// ===============
|
||||||
|
if ($chkModus == "add") {
|
||||||
|
// 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("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->getSingleDataset($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->getDataArray($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);
|
||||||
|
?>
|
|
@ -0,0 +1,159 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Host extended information definition
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-03-09 07:43:00 +0100 (Fri, 09 Mar 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1282 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 21;
|
||||||
|
$preContent = "admin/hostextinfo.tpl.htm";
|
||||||
|
$preSearchSession = 'hostextinfo';
|
||||||
|
$preTableName = 'tbl_hostextinfo';
|
||||||
|
$preKeyField = 'host_name';
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../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);
|
||||||
|
//
|
||||||
|
// Start content
|
||||||
|
// =============
|
||||||
|
$conttp->setVariable("TITLE",translate('Define host extended information (hostextinfo.cfg)'));
|
||||||
|
$conttp->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
//
|
||||||
|
// Singe data form
|
||||||
|
// ===============
|
||||||
|
if ($chkModus == "add") {
|
||||||
|
// 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("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->getSingleDataset($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->getDataArray($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);
|
||||||
|
?>
|
|
@ -0,0 +1,182 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Hostgroup definition
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-03-09 07:43:00 +0100 (Fri, 09 Mar 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1282 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 10;
|
||||||
|
$preContent = "admin/hostgroups.tpl.htm";
|
||||||
|
$preSearchSession = 'hostgroup';
|
||||||
|
$preTableName = 'tbl_hostgroup';
|
||||||
|
$preKeyField = 'hostgroup_name';
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../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);
|
||||||
|
} else if ($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);
|
||||||
|
//
|
||||||
|
// Start content
|
||||||
|
// =============
|
||||||
|
$conttp->setVariable("TITLE",translate('Define host groups (hostgroups.cfg)'));
|
||||||
|
$conttp->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
//
|
||||||
|
// Singe data form
|
||||||
|
// ===============
|
||||||
|
if ($chkModus == "add") {
|
||||||
|
// Do not show modified time list
|
||||||
|
$intNoTime = 1;
|
||||||
|
// Process host selection field
|
||||||
|
if (isset($arrModifyData['members'])) {$intFieldId = $arrModifyData['members'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectMulti('tbl_host','host_name','host_members','tbl_lnkHostgroupToHost',2,$intFieldId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if (($intReturn != 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;}
|
||||||
|
$intReturn = $myVisClass->parseSelectMulti($preTableName,$preKeyField,'hostgroups','tbl_lnkHostgroupToHostgroup',0,$intFieldId,$chkListId);
|
||||||
|
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;}
|
||||||
|
$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("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
|
||||||
|
$strSQL = "SELECT count(*) AS `number` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)";
|
||||||
|
$booReturn = $myDBClass->getSingleDataset($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`, `alias`, `register`, `active`, `config_id`, `access_group` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere
|
||||||
|
AND `access_group` IN ($strAccess) $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
||||||
|
$booReturn = $myDBClass->getDataArray($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,'alias');
|
||||||
|
}
|
||||||
|
// Show messages
|
||||||
|
$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,$arrTimeData,$strTimeInfoString,$intNoTime);
|
||||||
|
//
|
||||||
|
// Process footer
|
||||||
|
// ==============
|
||||||
|
$myContentClass->showFooter($maintp,$setFileVersion);
|
||||||
|
?>
|
|
@ -0,0 +1,494 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Host definition
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-04-17 12:09:50 +0200 (Tue, 17 Apr 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1321 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 8;
|
||||||
|
$preContent = "admin/hosts.tpl.htm";
|
||||||
|
$preSearchSession = 'host';
|
||||||
|
$preTableName = 'tbl_host';
|
||||||
|
$preKeyField = 'host_name';
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../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++) {
|
||||||
|
${"chkTfArg$i"} = str_replace("!","::bang::",${"chkTfArg$i"});
|
||||||
|
if (${"chkTfArg$i"} != "") $chkSelValue1 .= "!".${"chkTfArg$i"};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// 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, `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);
|
||||||
|
} else if ($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)) {
|
||||||
|
$arrConfigID = $myConfigClass->getConfigSets();
|
||||||
|
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)) {
|
||||||
|
$arrConfigID = $myConfigClass->getConfigSets();
|
||||||
|
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;
|
||||||
|
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->getDataArray($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";
|
||||||
|
$intReturn = $myDataClass->dataInsert($strSQL,$intInsertId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage);
|
||||||
|
$strSQL = "UPDATE `tbl_host` SET `use_variables`=0 WHERE `id`=$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)) {
|
||||||
|
$intCountVariable = 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_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->getDataArray($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);
|
||||||
|
foreach ($chkMselValue5 AS $elem) {
|
||||||
|
if ($elem != "") {
|
||||||
|
$intExclude = 0;
|
||||||
|
if (substr($elem,0,1) == "e") {
|
||||||
|
$intExclude = 1;
|
||||||
|
$elem = substr_replace($elem,"",0,1);
|
||||||
|
}
|
||||||
|
$strSQL = "INSERT INTO `tbl_lnkServiceToHost` (`idMaster`,`idSlave`,`exclude`)
|
||||||
|
VALUES ($elem,$chkDataId,$intExclude)";
|
||||||
|
$intReturn = $myDataClass->dataInsert($strSQL,$intInsertId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage);
|
||||||
|
// Update service table last modified date
|
||||||
|
$strSQL = "UPDATE `tbl_service` SET `last_modified` = NOW() WHERE `id`=".$elem;
|
||||||
|
$intReturn = $myDataClass->dataInsert($strSQL,$intInsertId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage);
|
||||||
|
// Check if Service ID is not 0
|
||||||
|
$strSQL = "SELECT `$preKeyField` FROM `tbl_service` WHERE `id`=$elem";
|
||||||
|
$strResult = $myDBClass->getFieldData($strSQL);
|
||||||
|
if ($strResult == 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";
|
||||||
|
//
|
||||||
|
// Start content
|
||||||
|
// =============
|
||||||
|
$conttp->setVariable("TITLE",translate('Define hosts (hosts.cfg)'));
|
||||||
|
$conttp->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
//
|
||||||
|
// Singe data form
|
||||||
|
// ===============
|
||||||
|
if ($chkModus == "add") {
|
||||||
|
// Do not show modified time list
|
||||||
|
$intNoTime = 1;
|
||||||
|
// Process template fields
|
||||||
|
$strWhere = "";
|
||||||
|
if (isset($arrModifyData) && ($chkSelModify == "modify")) {
|
||||||
|
$strWhere = "AND `id` <> ".$arrModifyData['id'];
|
||||||
|
}
|
||||||
|
$strSQL = "SELECT `id`,`template_name`, `active` FROM `tbl_hosttemplate` WHERE $strDomainWhere2 ORDER BY `template_name`";
|
||||||
|
$booReturn = $myDBClass->getDataArray($strSQL,$arrDataTpl,$intDataCountTpl);
|
||||||
|
if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if ($intDataCountTpl != 0) {
|
||||||
|
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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$strSQL = "SELECT `id`, `name`, `active` FROM `$preTableName` WHERE `name` <> '' $strWhere AND $strDomainWhere ORDER BY `name`";
|
||||||
|
$booReturn = $myDBClass->getDataArray($strSQL,$arrDataHpl,$intDataCount);
|
||||||
|
if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if ($arrDataHpl != 0) {
|
||||||
|
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;}
|
||||||
|
$intReturn = $myVisClass->parseSelectMulti($preTableName,$preKeyField,'host_parents','tbl_lnkHostToHost',0,$intFieldId,$intKeyId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
// Process hostgroup selection field
|
||||||
|
if (isset($arrModifyData['hostgroups'])) {$intFieldId = $arrModifyData['hostgroups'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectMulti('tbl_hostgroup','hostgroup_name','hostgroup','tbl_lnkHostToHostgroup',0,$intFieldId);
|
||||||
|
if ($intReturn != 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;
|
||||||
|
}
|
||||||
|
$intReturn = $myVisClass->parseSelectSimple('tbl_command','command_name','hostcommand',2,$intFieldId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
// Process check period selection field
|
||||||
|
if (isset($arrModifyData['check_period'])) {$intFieldId = $arrModifyData['check_period'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod','timeperiod_name','checkperiod',1,$intFieldId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if (isset($arrModifyData['notification_period'])) {$intFieldId = $arrModifyData['notification_period'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod','timeperiod_name','notifyperiod',1,$intFieldId);
|
||||||
|
if ($intReturn != 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;}
|
||||||
|
$intReturn = $myVisClass->parseSelectSimple('tbl_command','command_name','eventhandler',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','host_contacts','tbl_lnkHostToContact',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','host_contactgroups','tbl_lnkHostToContactgroup',2,$intFieldId);
|
||||||
|
if ($intReturn2 != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if (($intReturn != 0) && ($intReturn2 != 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;}
|
||||||
|
$intReturn = $myVisClass->parseSelectSimple('tbl_group','groupname','acc_group',0,$intFieldId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
// Process service selection field
|
||||||
|
if (isset($arrModifyData['contacts'])) {$intFieldId = $arrModifyData['id'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectMulti('tbl_service','service_description','host_services','tbl_lnkServiceToHost',0,$intFieldId);
|
||||||
|
if ($intReturn != 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 {
|
||||||
|
$value = str_replace("::bang::","!",$value);
|
||||||
|
$value = str_replace("::back::","\\",$value);
|
||||||
|
$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("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)";
|
||||||
|
$booReturn = $myDBClass->getSingleDataset($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`, `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'];
|
||||||
|
$booReturn = $myDBClass->getDataArray($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,'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);
|
||||||
|
?>
|
|
@ -0,0 +1,382 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Hosttemplate definition
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-03-09 07:43:00 +0100 (Fri, 09 Mar 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1282 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 12;
|
||||||
|
$preContent = "admin/hosttemplates.tpl.htm";
|
||||||
|
$preSearchSession = 'hosttemplate';
|
||||||
|
$preTableName = 'tbl_hosttemplate';
|
||||||
|
$preKeyField = 'template_name';
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../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++) {
|
||||||
|
if (${"chkTfArg$i"} != "") $chkSelValue1 .= "!".${"chkTfArg$i"};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// Add or modify data
|
||||||
|
// ==================
|
||||||
|
if ((($chkModus == "insert") || ($chkModus == "modify")) && ($intGlobalWriteAccess == 0)) {
|
||||||
|
$strSQLx = "`$preTableName` SET `$preKeyField`='$chkTfValue1', `alias`='$chkTfValue2', `parents`=$intMselValue1, `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`='$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);
|
||||||
|
} else if ($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;
|
||||||
|
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->getDataArray($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())";
|
||||||
|
$intReturn = $myDataClass->dataInsert($strSQL,$intInsertId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage);
|
||||||
|
$strSQL = "INSERT INTO `tbl_lnkHosttemplateToVariabledefinition` (`idMaster`,`idSlave`)
|
||||||
|
VALUES ($chkDataId,$intInsertId)";
|
||||||
|
$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";
|
||||||
|
//
|
||||||
|
// Get date/time of last database and config file manipulation
|
||||||
|
// ===========================================================
|
||||||
|
$intReturn = $myConfigClass->lastModifiedFile($preTableName,$arrTimeData,$strTimeInfoString);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage);
|
||||||
|
//
|
||||||
|
// Start content
|
||||||
|
// =============
|
||||||
|
$conttp->setVariable("TITLE",translate('Host template definition (hosttemplates.cfg)'));
|
||||||
|
$conttp->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
//
|
||||||
|
// Singe data form
|
||||||
|
// ===============
|
||||||
|
if ($chkModus == "add") {
|
||||||
|
// Do not show modified time list
|
||||||
|
$intNoTime = 1;
|
||||||
|
// Process template fields
|
||||||
|
$strWhere = "";
|
||||||
|
if (isset($arrModifyData) && ($chkSelModify == "modify")) {
|
||||||
|
$strWhere = "AND `id` <> ".$arrModifyData['id'];
|
||||||
|
}
|
||||||
|
$strSQL = "SELECT `id`,`$preKeyField`, `active` FROM `$preTableName` WHERE `config_id` = $chkDomainId $strWhere ORDER BY `$preKeyField`";
|
||||||
|
$booReturn = $myDBClass->getDataArray($strSQL,$arrDataTpl,$intDataCountTpl);
|
||||||
|
if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if ($intDataCountTpl != 0) {
|
||||||
|
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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$strSQL = "SELECT `id`, `name`, `active` FROM `tbl_host` WHERE `name` <> '' AND `config_id` = $chkDomainId ORDER BY `name`";
|
||||||
|
$booReturn = $myDBClass->getDataArray($strSQL,$arrDataHpl,$intDataCount);
|
||||||
|
if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if ($arrDataHpl != 0) {
|
||||||
|
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;}
|
||||||
|
$intReturn = $myVisClass->parseSelectMulti('tbl_host','host_name','host_parents','tbl_lnkHosttemplateToHost',0,$intFieldId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
// Process hostgroup selection field
|
||||||
|
if (isset($arrModifyData['hostgroups'])) {$intFieldId = $arrModifyData['hostgroups'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectMulti('tbl_hostgroup','hostgroup_name','hostgroup','tbl_lnkHosttemplateToHostgroup',0,$intFieldId);
|
||||||
|
if ($intReturn != 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;
|
||||||
|
}
|
||||||
|
$intReturn = $myVisClass->parseSelectSimple('tbl_command','command_name','hostcommand',1,$intFieldId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
// Process check period selection field
|
||||||
|
$intReturn = 0;
|
||||||
|
if (isset($arrModifyData['check_period'])) {$intFieldId = $arrModifyData['check_period'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod','timeperiod_name','checkperiod',1,$intFieldId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if (isset($arrModifyData['notification_period'])) {$intFieldId = $arrModifyData['notification_period'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod','timeperiod_name','notifyperiod',1,$intFieldId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
// Process event handler selection field
|
||||||
|
if (isset($arrModifyData['event_handler'])) {$intFieldId = $arrModifyData['event_handler'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectSimple('tbl_command','command_name','eventhandler',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;}
|
||||||
|
$intReturn = $myVisClass->parseSelectMulti('tbl_contact','contact_name','host_contacts','tbl_lnkHosttemplateToContact',2,$intFieldId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if (isset($arrModifyData['contact_groups'])) {$intFieldId = $arrModifyData['contact_groups'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectMulti('tbl_contactgroup','contactgroup_name','host_contactgroups','tbl_lnkHosttemplateToContactgroup',2,$intFieldId);
|
||||||
|
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;}
|
||||||
|
$intReturn = $myVisClass->parseSelectSimple('tbl_group','groupname','acc_group',0,$intFieldId);
|
||||||
|
if ($intReturn != 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 {
|
||||||
|
$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("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
|
||||||
|
$strSQL = "SELECT count(*) AS `number` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)";
|
||||||
|
$booReturn = $myDBClass->getSingleDataset($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`, `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'];
|
||||||
|
$booReturn = $myDBClass->getDataArray($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,'alias');
|
||||||
|
}
|
||||||
|
// Show messages
|
||||||
|
$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,$arrTimeData,$strTimeInfoString,$intNoTime);
|
||||||
|
//
|
||||||
|
// Process footer
|
||||||
|
// ==============
|
||||||
|
$myContentClass->showFooter($maintp,$setFileVersion);
|
||||||
|
?>
|
|
@ -0,0 +1,220 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Admin configuration verification
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-03-07 10:38:34 +0100 (Wed, 07 Mar 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1275 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 25;
|
||||||
|
$preContent = "admin/import.tpl.htm";
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
$intModus = 0;
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../functions/prepend_content.php");
|
||||||
|
//
|
||||||
|
// Initialize import class
|
||||||
|
// =======================
|
||||||
|
include("../functions/import_class.php");
|
||||||
|
$myImportClass = new nagimport;
|
||||||
|
$myImportClass->myDataClass =& $myDataClass;
|
||||||
|
$myImportClass->myDBClass =& $myDBClass;
|
||||||
|
$myImportClass->myConfigClass =& $myConfigClass;
|
||||||
|
//
|
||||||
|
// Get configuration set ID
|
||||||
|
// ========================
|
||||||
|
$arrConfigSet = $myConfigClass->getConfigSets();
|
||||||
|
$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 [overwite flag]:')." ".$_FILES['datValue1']['name']." [".$chkChbValue1."]");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (($chkMselValue1[0] != "") && ($chkStatus == 1)) {
|
||||||
|
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 [overwite 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_var($_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->getConfigData($intConfigId,"method",$intMethod);
|
||||||
|
$myConfigClass->getConfigData($intConfigId,"basedir",$strBaseDir);
|
||||||
|
$myConfigClass->getConfigData($intConfigId,"hostconfig",$strHostDir);
|
||||||
|
$myConfigClass->getConfigData($intConfigId,"serviceconfig",$strServiceDir);
|
||||||
|
$myConfigClass->getConfigData($intConfigId,"backupdir",$strBackupDir);
|
||||||
|
$myConfigClass->getConfigData($intConfigId,"hostbackup",$strHostBackupDir);
|
||||||
|
$myConfigClass->getConfigData($intConfigId,"servicebackup",$strServiceBackupDir);
|
||||||
|
$myConfigClass->getConfigData($intConfigId,"importdir",$strImportDir);
|
||||||
|
$myConfigClass->getConfigData($intConfigId,"nagiosbasedir",$strNagiosBaseDir);
|
||||||
|
if ($intMethod == 1) {
|
||||||
|
// Building local file list
|
||||||
|
$output = array();
|
||||||
|
$temp=$myConfigClass->DirToArray($strBaseDir, "\.cfg", "cgi.cfg|nagios.cfg|nrpe.cfg|nsca.cfg",$output,$strErrorMessage);
|
||||||
|
if ($strNagiosBaseDir != $strBaseDir) {
|
||||||
|
$temp=$myConfigClass->DirToArray($strNagiosBaseDir, "\.cfg", "cgi.cfg|nagios.cfg|nrpe.cfg|nsca.cfg",$output,$strErrorMessage);
|
||||||
|
}
|
||||||
|
$temp=$myConfigClass->DirToArray($strHostDir, "\.cfg", "",$output,$strErrorMessage);
|
||||||
|
$temp=$myConfigClass->DirToArray($strServiceDir, "\.cfg", "",$output,$strErrorMessage);
|
||||||
|
$temp=$myConfigClass->DirToArray($strHostBackupDir, "\.cfg_", "",$output,$strErrorMessage);
|
||||||
|
$temp=$myConfigClass->DirToArray($strServiceBackupDir, "\.cfg_", "",$output,$strErrorMessage);
|
||||||
|
if (($strImportDir != "") && ($strImportDir != $strBaseDir) && ($strImportDir != $strNagiosBaseDir)) {
|
||||||
|
$temp=$myConfigClass->DirToArray($strImportDir, "\.cfg", "",$output,$strErrorMessage);
|
||||||
|
}
|
||||||
|
$output=array_unique($output);
|
||||||
|
if (is_array($output) && (count($output) != 0)) {
|
||||||
|
foreach ($output AS $elem) {
|
||||||
|
if (($chkTfSearch == "") || (substr_count($elem,$chkTfSearch) != 0)) {
|
||||||
|
$conttp->setVariable("DAT_IMPORTFILE_2",$elem);
|
||||||
|
$conttp->parse("filelist2");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if ($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);
|
||||||
|
}
|
||||||
|
} else if ($intMethod == 3) {
|
||||||
|
// Set up basic connection
|
||||||
|
if ($myConfigClass->getSSHConnection($intConfigId) == "0") {
|
||||||
|
$arrFiles = array();
|
||||||
|
$arrFiles1 = $myConfigClass->sendSSHCommand("ls ".$strBaseDir."*.cfg");
|
||||||
|
if ($arrFiles1 && is_array($arrFiles1)) $arrFiles = array_merge($arrFiles,$arrFiles1);
|
||||||
|
$arrFiles2 = $myConfigClass->sendSSHCommand("ls ".$strHostDir."*.cfg");
|
||||||
|
if (is_array($arrFiles2)) $arrFiles = array_merge($arrFiles,$arrFiles2);
|
||||||
|
$arrFiles3 = $myConfigClass->sendSSHCommand("ls ".$strServiceDir."*.cfg");
|
||||||
|
if (is_array($arrFiles3)) $arrFiles = array_merge($arrFiles,$arrFiles3);
|
||||||
|
$arrFiles4 = $myConfigClass->sendSSHCommand("ls ".$strHostBackupDir."*.cfg*");
|
||||||
|
if (is_array($arrFiles4)) $arrFiles = array_merge($arrFiles,$arrFiles4);
|
||||||
|
$arrFiles5 = $myConfigClass->sendSSHCommand("ls ".$strServiceBackupDir."*.cfg*");
|
||||||
|
if (is_array($arrFiles5)) $arrFiles = array_merge($arrFiles,$arrFiles5);
|
||||||
|
if ($strImportDir != "" ) {
|
||||||
|
$arrFiles6 = $myConfigClass->sendSSHCommand("ls ".$strImportDir."*.cfg");
|
||||||
|
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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Check access rights for adding new objects
|
||||||
|
if ($myVisClass->checkAccGroup($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='http://www.nagiosql.org' target='_blank'>NagiosQL</a> $setFileVersion");
|
||||||
|
$maintp->parse("footer");
|
||||||
|
$maintp->show("footer");
|
||||||
|
?>
|
|
@ -0,0 +1,95 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Admin information dialog
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-02-21 14:10:41 +0100 (Tue, 21 Feb 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1229 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Include preprocessing file
|
||||||
|
// ==========================
|
||||||
|
$preNoMain = 1;
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
//
|
||||||
|
// Process get parameters
|
||||||
|
// ======================
|
||||||
|
$chkKey1 = isset($_GET['key1']) ? htmlspecialchars($_GET['key1'], ENT_QUOTES, 'utf-8') : "";
|
||||||
|
$chkKey2 = isset($_GET['key2']) ? htmlspecialchars($_GET['key2'], ENT_QUOTES, 'utf-8') : "";
|
||||||
|
$chkVersion = isset($_GET['version']) ? htmlspecialchars($_GET['version'], ENT_QUOTES, 'utf-8') : "";
|
||||||
|
//
|
||||||
|
// 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"),
|
||||||
|
"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("How many entries per side should be visibile (e.g. services or hosts)"),
|
||||||
|
"selSeldisable" => translate("Selection of multiple entries by using the new dialog or by holding CTRL + left click like in NagiosQL2"),
|
||||||
|
"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>
|
||||||
|
.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>
|
|
@ -0,0 +1,124 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Admin logbook
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-01-13 07:40:23 +0100 (Fri, 13 Jan 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1158 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 37;
|
||||||
|
$preContent = "admin/admin_master.tpl.htm";
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../functions/prepend_content.php");
|
||||||
|
//
|
||||||
|
// Delete log entries
|
||||||
|
// ==================
|
||||||
|
if (isset($_POST['tfValue1']) && (($chkTfValue1 != "") || ($chkTfValue2 != ""))) {
|
||||||
|
$strWhere = "";
|
||||||
|
if ($chkTfValue1 != "") {
|
||||||
|
$strWhere .= "AND `time` > '$chkTfValue1 00:00:00'";
|
||||||
|
}
|
||||||
|
if ($chkTfValue2 != "") {
|
||||||
|
$strWhere .= "AND `time` < '$chkTfValue2 23:59:59'";
|
||||||
|
}
|
||||||
|
$strSQL = "DELETE FROM `tbl_logbook` WHERE 1=1 $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->getDataArray($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 at least fill in a start or a stop time'));
|
||||||
|
$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_var($_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_var($_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->checkAccGroup($prePageKey,'write') != 0) $conttp->setVariable("ADD_CONTROL","disabled=\"disabled\"");
|
||||||
|
$conttp->parse("logbooksite");
|
||||||
|
$conttp->show("logbooksite");
|
||||||
|
//
|
||||||
|
// Process footer
|
||||||
|
// ==============
|
||||||
|
$maintp->setVariable("VERSION_INFO","<a href='http://www.nagiosql.org' target='_blank'>NagiosQL</a> $setFileVersion");
|
||||||
|
$maintp->parse("footer");
|
||||||
|
$maintp->show("footer");
|
||||||
|
?>
|
|
@ -0,0 +1,99 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Menu access administration
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-02-21 14:10:41 +0100 (Tue, 21 Feb 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1229 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 34;
|
||||||
|
$preContent = "admin/admin_master.tpl.htm";
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
$preNoAccessGrp = 1;
|
||||||
|
$intFieldId = 0;
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../functions/prepend_content.php");
|
||||||
|
//
|
||||||
|
// Process data
|
||||||
|
// ============
|
||||||
|
if (isset($_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 to the data base:'),$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 Accessrights'));
|
||||||
|
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->getDataArray($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='http://www.nagiosql.org' target='_blank'>NagiosQL</a> $setFileVersion");
|
||||||
|
$maintp->parse("footer");
|
||||||
|
$maintp->show("footer");
|
||||||
|
?>
|
|
@ -0,0 +1,90 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Admin specials overview
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-02-08 15:13:31 +0100 (Wed, 08 Feb 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1189 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 2;
|
||||||
|
$preContent = "admin/mainpages.tpl.htm";
|
||||||
|
//
|
||||||
|
// Include preprocessing file
|
||||||
|
// ==========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../functions/prepend_content.php");
|
||||||
|
//
|
||||||
|
// Include content
|
||||||
|
// ===============
|
||||||
|
$conttp->setVariable("TITLE",translate('Monitoring'));
|
||||||
|
$conttp->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
$conttp->setVariable("DESC",translate('To 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->getAccGroups('read');
|
||||||
|
if ($myVisClass->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=8")+0,'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->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=9")+0,'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->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=10")+0,'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->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=11")+0,'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->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=12")+0,'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->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=13")+0,'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='http://www.nagiosql.org' target='_blank'>NagiosQL</a> $setFileVersion");
|
||||||
|
$maintp->parse("footer");
|
||||||
|
$maintp->show("footer");
|
||||||
|
?>
|
|
@ -0,0 +1,59 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Admin timeperiod definitions
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-02-27 13:01:17 +0100 (Mon, 27 Feb 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1257 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$preContent = "admin/mutdialog.tpl.htm";
|
||||||
|
//
|
||||||
|
// Process post parameters
|
||||||
|
// =======================
|
||||||
|
$chkObject = isset($_GET['object']) ? htmlspecialchars($_GET['object'], ENT_QUOTES, 'utf-8') : "";
|
||||||
|
$intExclude = isset($_GET['exclude']) ? htmlspecialchars($_GET['exclude'], ENT_QUOTES, 'utf-8') : 0;
|
||||||
|
//
|
||||||
|
// Include preprocessing file
|
||||||
|
// ==========================
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
$preNoMain = 1;
|
||||||
|
require("../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_var($_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");
|
||||||
|
?>
|
|
@ -0,0 +1,153 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Admin timeperiod definitions
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-03-07 10:38:34 +0100 (Wed, 07 Mar 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1275 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 28;
|
||||||
|
$preContent = "admin/nagioscfg.tpl.htm";
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
$intRemoveTmp = 0;
|
||||||
|
$strConfig = "";
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../functions/prepend_content.php");
|
||||||
|
//
|
||||||
|
// Get configuration set ID
|
||||||
|
// ========================
|
||||||
|
$arrConfigSet = $myConfigClass->getConfigSets();
|
||||||
|
$intConfigId = $arrConfigSet[0];
|
||||||
|
$myConfigClass->getConfigData($intConfigId,"method",$intMethod);
|
||||||
|
$myConfigClass->getConfigData($intConfigId,"nagiosbasedir",$strBaseDir);
|
||||||
|
$myConfigClass->getConfigData($intConfigId,"conffile",$strConfigfile);
|
||||||
|
$strLocalBackup = $strConfigfile."_old_".date("YmdHis",mktime());
|
||||||
|
//
|
||||||
|
// Convert Windows to UNIX
|
||||||
|
// =======================
|
||||||
|
$chkTaFileText = str_replace("\r\n","\n",$chkTaFileText);
|
||||||
|
//
|
||||||
|
// Process data
|
||||||
|
// ============
|
||||||
|
if ($chkTaFileText != "") {
|
||||||
|
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,"w");
|
||||||
|
fputs($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);
|
||||||
|
}
|
||||||
|
} else if (($intMethod == 2) || ($intMethod == 3)) {
|
||||||
|
// Backup config file
|
||||||
|
$intReturn = $myConfigClass->moveFile("nagiosbasic",basename($strConfigfile),$intConfigId);
|
||||||
|
if ($intReturn == 1) {
|
||||||
|
$myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage);
|
||||||
|
}
|
||||||
|
// Write file to temporary
|
||||||
|
$strFileName = tempnam($_SESSION['SETS']['path']['tempdir'], 'nagiosql_conf');
|
||||||
|
$resFile = fopen($strFileName,"w");
|
||||||
|
fputs($resFile,$chkTaFileText);
|
||||||
|
fclose($resFile);
|
||||||
|
// Copy configuration to remoty system
|
||||||
|
$intReturn = $myConfigClass->configCopy($strConfigfile,$intConfigId,$strFileName,1);
|
||||||
|
if ($intReturn == 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// Include content
|
||||||
|
// ===============
|
||||||
|
$conttp->setVariable("TITLE",translate('Nagios main configuration file'));
|
||||||
|
$conttp->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
//
|
||||||
|
// Include input form
|
||||||
|
// ===================
|
||||||
|
$conttp->setVariable("ACTION_INSERT",filter_var($_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,"r");
|
||||||
|
if ($resFile) {
|
||||||
|
while(!feof($resFile)) {
|
||||||
|
$strConfig .= fgets($resFile,1024);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$myVisClass->processMessage(translate('Cannot open the data file (check the permissions)!'),$strErrorMessage);
|
||||||
|
}
|
||||||
|
} else if (($intMethod == 2) || ($intMethod == 3)) {
|
||||||
|
// Write file to temporary
|
||||||
|
$strFileName = tempnam($_SESSION['SETS']['path']['tempdir'], 'nagiosql_conf');
|
||||||
|
// Copy configuration from remoty system
|
||||||
|
$intReturn = $myConfigClass->configCopy($strConfigfile,$intConfigId,$strFileName,0);
|
||||||
|
if ($intReturn == 0) {
|
||||||
|
$resFile = fopen($strFileName,"r");
|
||||||
|
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->checkAccGroup($prePageKey,'write') != 0) $conttp->setVariable("ADD_CONTROL","disabled=\"disabled\"");
|
||||||
|
$conttp->parse("naginsert");
|
||||||
|
$conttp->show("naginsert");
|
||||||
|
//
|
||||||
|
// Process footer
|
||||||
|
// ==============
|
||||||
|
$maintp->setVariable("VERSION_INFO","<a href='http://www.nagiosql.org' target='_blank'>NagiosQL</a> $setFileVersion");
|
||||||
|
$maintp->parse("footer");
|
||||||
|
$maintp->show("footer");
|
||||||
|
?>
|
|
@ -0,0 +1,102 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Password administration
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-02-27 13:01:17 +0100 (Mon, 27 Feb 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1257 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 31;
|
||||||
|
$preContent = "admin/admin_master.tpl.htm";
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
$preShowHeader = 0;
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../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->getDataArray($strSQL,$arrDataLines,$intDataCount);
|
||||||
|
if ($booReturn == false) {
|
||||||
|
$myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage);
|
||||||
|
$myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage);
|
||||||
|
} else if ($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']."://".$_SERVER['HTTP_HOST'].$_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 unequally!'),$strErrorMessage);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Old password wrong
|
||||||
|
$myVisClass->processMessage(translate('Old password is wrong'),$strErrorMessage);
|
||||||
|
}
|
||||||
|
} else if (isset($_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 are not equal!'));
|
||||||
|
$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_var($_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->checkAccGroup($prePageKey,'write') != 0) $conttp->setVariable("ADD_CONTROL","disabled=\"disabled\"");
|
||||||
|
$conttp->parse("passwordsite");
|
||||||
|
$conttp->show("passwordsite");
|
||||||
|
//
|
||||||
|
// Include footer
|
||||||
|
// ==============
|
||||||
|
$maintp->setVariable("VERSION_INFO","<a href='http://www.nagiosql.org' target='_blank'>NagiosQL</a> $setFileVersion");
|
||||||
|
$maintp->parse("footer");
|
||||||
|
$maintp->show("footer");
|
||||||
|
?>
|
|
@ -0,0 +1,388 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Service dependencies definition
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-03-09 07:43:00 +0100 (Fri, 09 Mar 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1282 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 22;
|
||||||
|
$preContent = "admin/servicedependencies.tpl.htm";
|
||||||
|
$preSearchSession = 'servicedependencies';
|
||||||
|
$preTableName = 'tbl_servicedependency';
|
||||||
|
$preKeyField = 'config_name';
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../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);
|
||||||
|
} else if ($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);
|
||||||
|
//
|
||||||
|
// Start content
|
||||||
|
// =============
|
||||||
|
$conttp->setVariable("TITLE",translate('Define service dependencies (servicedependencies.cfg)'));
|
||||||
|
$conttp->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
//
|
||||||
|
// Singe data form
|
||||||
|
// ===============
|
||||||
|
if (($chkModus == "add") || ($chkModus == "refresh")) {
|
||||||
|
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;
|
||||||
|
} 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->getDataArray($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->getDataArray($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->getDataArray($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->getDataArray($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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 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") && (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") && (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") && (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") && (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") && (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") && (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") && (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") && (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
|
||||||
|
} else 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);
|
||||||
|
// 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("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->getSingleDataset($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_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->getDataArray($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);
|
||||||
|
?>
|
|
@ -0,0 +1,326 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Service escalation definition
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-03-09 07:43:00 +0100 (Fri, 09 Mar 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1282 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 23;
|
||||||
|
$preContent = "admin/serviceescalations.tpl.htm";
|
||||||
|
$preSearchSession = 'serviceescalation';
|
||||||
|
$preTableName = 'tbl_serviceescalation';
|
||||||
|
$preKeyField = 'config_name';
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../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);
|
||||||
|
} else if ($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);
|
||||||
|
//
|
||||||
|
// Start content
|
||||||
|
// =============
|
||||||
|
$conttp->setVariable("TITLE",translate('Define service escalation (serviceescalations.cfg)'));
|
||||||
|
$conttp->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
//
|
||||||
|
// Singe data form
|
||||||
|
// ===============
|
||||||
|
if (($chkModus == "add") || ($chkModus == "refresh")) {
|
||||||
|
// 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;
|
||||||
|
} 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->getDataArray($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->getDataArray($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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Process host selection field
|
||||||
|
if (isset($arrModifyData['host_name'])) {$intFieldId = $arrModifyData['host_name'];} else {$intFieldId = 0;}
|
||||||
|
if (($chkModus == "refresh") && (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") && (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") && (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") && (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") && (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") && (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
|
||||||
|
} else 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);
|
||||||
|
// 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("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->getSingleDataset($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->getDataArray($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);
|
||||||
|
?>
|
|
@ -0,0 +1,203 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Service extended information definition
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-03-09 07:43:00 +0100 (Fri, 09 Mar 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1282 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 24;
|
||||||
|
$preContent = "admin/serviceextinfo.tpl.htm";
|
||||||
|
$preSearchSession = 'serviceextinfo';
|
||||||
|
$preTableName = 'tbl_serviceextinfo';
|
||||||
|
$preKeyField = 'host_name';
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../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);
|
||||||
|
//
|
||||||
|
// Start content
|
||||||
|
// =============
|
||||||
|
$conttp->setVariable("TITLE",translate('Define service extended information (serviceextinfo.cfg)'));
|
||||||
|
$conttp->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
//
|
||||||
|
// Singe data form
|
||||||
|
// ===============
|
||||||
|
if (($chkModus == "add") || ($chkModus == "refresh")) {
|
||||||
|
// Do not show modified time list
|
||||||
|
$intNoTime = 1;
|
||||||
|
// Refresh mode
|
||||||
|
if ($chkModus == "refresh") {
|
||||||
|
$_SESSION['refresh']['se_host'] = $chkSelValue1;
|
||||||
|
} else {
|
||||||
|
$_SESSION['refresh']['se_host'] = $chkSelValue1;
|
||||||
|
if (isset($arrModifyData[$preKeyField]) && ($arrModifyData[$preKeyField] != 0 )){
|
||||||
|
$strSQL = "SELECT `$preKeyField` FROM `$preTableName` WHERE `id` = ".$arrModifyData['id'];
|
||||||
|
$booReturn = $myDBClass->getDataArray($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->getDataArray($strSQL,$arrData,$intDC);
|
||||||
|
if ($intDC != 0) {
|
||||||
|
$_SESSION['refresh']['se_host'] = $arrData[0]['id'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 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
|
||||||
|
} else 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("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->getSingleDataset($strSQL,$arrDataLinesCount);
|
||||||
|
if ($booReturn == false) {
|
||||||
|
$myVisClass->processMessage(translate('Error while selecting data from database:'));
|
||||||
|
$myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage);
|
||||||
|
} else {
|
||||||
|
$intCount = (int)$arrDataLinesCount['number'];
|
||||||
|
if ($intCount < $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->getDataArray($strSQL,$arrDataLines,$intDataCount);
|
||||||
|
if ($booReturn == false) {
|
||||||
|
$myVisClass->processMessage(translate('Error while selecting data from database:'));
|
||||||
|
$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);
|
||||||
|
?>
|
|
@ -0,0 +1,183 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Admin servicegroup definition
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-03-09 07:43:00 +0100 (Fri, 09 Mar 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1282 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 11;
|
||||||
|
$preContent = "admin/servicegroups.tpl.htm";
|
||||||
|
$preSearchSession = 'servicegroup';
|
||||||
|
$preTableName = 'tbl_servicegroup';
|
||||||
|
$preKeyField = 'servicegroup_name';
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
//
|
||||||
|
// Include preprocessing file
|
||||||
|
// ==========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../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);
|
||||||
|
} else if ($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);
|
||||||
|
//
|
||||||
|
// Start content
|
||||||
|
// =============
|
||||||
|
$conttp->setVariable("TITLE",translate('Define service groups (servicegroups.cfg)'));
|
||||||
|
$conttp->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
//
|
||||||
|
// Singe data form
|
||||||
|
// ===============
|
||||||
|
if ($chkModus == "add") {
|
||||||
|
// Do not show modified time list
|
||||||
|
$intNoTime = 1;
|
||||||
|
// Process service selection field
|
||||||
|
$intReturn = 0;
|
||||||
|
if (isset($arrModifyData['members'])) {$intFieldId = $arrModifyData['members'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectMulti('tbl_service','service_description','service_members','tbl_lnkServicegroupToService',0,$intFieldId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if (($intReturn != 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;}
|
||||||
|
$intReturn = $myVisClass->parseSelectMulti($preTableName,$preKeyField,'servicegroups','tbl_lnkServicegroupToServicegroup',0,$intFieldId,$chkListId);
|
||||||
|
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;}
|
||||||
|
$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("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
|
||||||
|
$strSQL = "SELECT count(*) AS `number` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)";
|
||||||
|
$booReturn = $myDBClass->getSingleDataset($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`, `alias`, `register`, `active`, `config_id`, `access_group` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere
|
||||||
|
AND `access_group` IN ($strAccess) $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
||||||
|
$booReturn = $myDBClass->getDataArray($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,'alias');
|
||||||
|
}
|
||||||
|
// Show messages
|
||||||
|
$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,$arrTimeData,$strTimeInfoString,$intNoTime);
|
||||||
|
//
|
||||||
|
// Process footer
|
||||||
|
// ==============
|
||||||
|
$myContentClass->showFooter($maintp,$setFileVersion);
|
||||||
|
?>
|
|
@ -0,0 +1,499 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Service definition
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-04-17 12:09:50 +0200 (Tue, 17 Apr 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1321 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 9;
|
||||||
|
$preContent = "admin/services.tpl.htm";
|
||||||
|
$preSearchSession = 'service';
|
||||||
|
$preTableName = 'tbl_service';
|
||||||
|
$preKeyField = 'config_name';
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../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++) {
|
||||||
|
${"chkTfArg$i"} = str_replace("!","::bang::",${"chkTfArg$i"});
|
||||||
|
if (${"chkTfArg$i"} != "") $chkSelValue1 .= "!".${"chkTfArg$i"};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// 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', `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);
|
||||||
|
} else if ($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($intRet1) && ($intRet1 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage);
|
||||||
|
}
|
||||||
|
if (($intRet1 + $intRet2 + $intRet3 + $intRet4 + $intRet5) != 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) {
|
||||||
|
$arrConfigID = $myConfigClass->getConfigSets();
|
||||||
|
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) {
|
||||||
|
$arrConfigID = $myConfigClass->getConfigSets();
|
||||||
|
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;
|
||||||
|
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->getDataArray($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_lnkServiceToVariabledefinition` WHERE `idMaster`=$chkDataId";
|
||||||
|
$intReturn = $myDataClass->dataInsert($strSQL,$intInsertId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage);
|
||||||
|
$strSQL = "UPDATE `tbl_service` SET `use_variables`=0 WHERE `id`=$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)) {
|
||||||
|
$intCountVariable = 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_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";
|
||||||
|
//
|
||||||
|
// Start content
|
||||||
|
// =============
|
||||||
|
$conttp->setVariable("TITLE",translate('Define services (services.cfg)'));
|
||||||
|
$conttp->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
//
|
||||||
|
// Singe data form
|
||||||
|
// ===============
|
||||||
|
if ($chkModus == "add") {
|
||||||
|
// Do not show modified time list
|
||||||
|
$intNoTime = 1;
|
||||||
|
// Process template fields
|
||||||
|
$strWhere = "";
|
||||||
|
if (isset($arrModifyData) && ($chkSelModify == "modify")) {
|
||||||
|
$strWhere = "AND `id` <> ".$arrModifyData['id'];
|
||||||
|
}
|
||||||
|
$strSQL = "SELECT `id`,`template_name`, `active` FROM `tbl_servicetemplate` WHERE $strDomainWhere2 ORDER BY `template_name`";
|
||||||
|
$booReturn = $myDBClass->getDataArray($strSQL,$arrDataTpl,$intDataCountTpl);
|
||||||
|
if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if ($intDataCountTpl != 0) {
|
||||||
|
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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$strSQL = "SELECT `id`, `name`, `active` FROM `$preTableName` WHERE `name` <> '' $strWhere AND $strDomainWhere ORDER BY `name`";
|
||||||
|
$booReturn = $myDBClass->getDataArray($strSQL,$arrDataHpl,$intDataCount);
|
||||||
|
if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if ($arrDataHpl != 0) {
|
||||||
|
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_lnkServiceToHost',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_lnkServiceToHostgroup',2,$intFieldId);
|
||||||
|
if ($intReturn2 != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if (($intReturn1 != 0) && ($intReturn2 != 0)) {
|
||||||
|
$myVisClass->processMessage(translate('Attention, no hosts or hostgroups defined!'),$strDBWarning);
|
||||||
|
$intDataWarning = 1;
|
||||||
|
}
|
||||||
|
// Process service groups selection field
|
||||||
|
if (isset($arrModifyData['servicegroups'])) {$intFieldId = $arrModifyData['servicegroups'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectMulti('tbl_servicegroup','servicegroup_name','servicegroup','tbl_lnkServiceToServicegroup',0,$intFieldId);
|
||||||
|
if ($intReturn != 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;
|
||||||
|
}
|
||||||
|
$intReturn = $myVisClass->parseSelectSimple('tbl_command','command_name','servicecommand',2,$intFieldId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if ($intReturn != 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;}
|
||||||
|
$intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod','timeperiod_name','checkperiod',1,$intFieldId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if (isset($arrModifyData['notification_period'])) {$intFieldId = $arrModifyData['notification_period'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod','timeperiod_name','notifyperiod',1,$intFieldId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if ($intReturn != 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;}
|
||||||
|
$intReturn = $myVisClass->parseSelectSimple('tbl_command','command_name','eventhandler',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','service_contacts','tbl_lnkServiceToContact',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','service_contactgroups','tbl_lnkServiceToContactgroup',2,$intFieldId);
|
||||||
|
if ($intReturn2 != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if (($intReturn != 0) && ($intReturn2 != 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;}
|
||||||
|
$intReturn = $myVisClass->parseSelectSimple('tbl_group','groupname','acc_group',0,$intFieldId);
|
||||||
|
if ($intReturn != 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,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 {
|
||||||
|
$value = str_replace("::bang::","!",$value);
|
||||||
|
$value = str_replace("::back::","\\",$value);
|
||||||
|
$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("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");
|
||||||
|
$strSQL = "SELECT DISTINCT `$preKeyField` FROM `$preTableName` WHERE $strDomainWhere ORDER BY `$preKeyField`";
|
||||||
|
$booReturn = $myDBClass->getDataArray($strSQL,$arrDataConfig,$intDataCount);
|
||||||
|
if ($booReturn == false) {
|
||||||
|
$myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage);
|
||||||
|
$myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage);
|
||||||
|
} else if ($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
|
||||||
|
$strSQL = "SELECT count(*) AS `number` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere2 $strSearchWhere AND `access_group` IN ($strAccess)";
|
||||||
|
$booReturn = $myDBClass->getSingleDataset($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;
|
||||||
|
}
|
||||||
|
// Datensätze holen
|
||||||
|
$strSQL = "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'];
|
||||||
|
$booReturn = $myDBClass->getDataArray($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',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);
|
||||||
|
?>
|
|
@ -0,0 +1,396 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Service template definition
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-03-09 07:43:00 +0100 (Fri, 09 Mar 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1282 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 13;
|
||||||
|
$preContent = "admin/servicetemplates.tpl.htm";
|
||||||
|
$preSearchSession = 'servicetemplate';
|
||||||
|
$preTableName = 'tbl_servicetemplate';
|
||||||
|
$preKeyField = 'template_name';
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../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++) {
|
||||||
|
if (${"chkTfArg$i"} != "") $chkSelValue1 .= "!".${"chkTfArg$i"};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// 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', `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);
|
||||||
|
} else if ($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 (($intRet1 + $intRet2 + $intRet3 + $intRet4 + $intRet5) != 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;
|
||||||
|
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->getDataArray($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) {
|
||||||
|
$strSQL = "INSERT INTO `tbl_variabledefinition` (`name`,`value`,`last_modified`)
|
||||||
|
VALUES ('".$elem['definition']."','".$elem['range']."',now())";
|
||||||
|
$intReturn = $myDataClass->dataInsert($strSQL,$intInsertId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage);
|
||||||
|
$strSQL = "INSERT INTO `tbl_lnkServicetemplateToVariabledefinition` (`idMaster`,`idSlave`)
|
||||||
|
VALUES ($chkDataId,$intInsertId)";
|
||||||
|
$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";
|
||||||
|
//
|
||||||
|
// Get date/time of last database and config file manipulation
|
||||||
|
// ===========================================================
|
||||||
|
$intReturn = $myConfigClass->lastModifiedFile($preTableName,$arrTimeData,$strTimeInfoString);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage);
|
||||||
|
//
|
||||||
|
// Start content
|
||||||
|
// =============
|
||||||
|
$conttp->setVariable("TITLE",translate('Define service templates (servicetemplates.cfg)'));
|
||||||
|
$conttp->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
//
|
||||||
|
// Singe data form
|
||||||
|
// ===============
|
||||||
|
if ($chkModus == "add") {
|
||||||
|
// Do not show modified time list
|
||||||
|
$intNoTime = 1;
|
||||||
|
// Process template fields
|
||||||
|
$strWhere = "";
|
||||||
|
if (isset($arrModifyData) && ($chkSelModify == "modify")) {
|
||||||
|
$strWhere = "AND `id` <> ".$arrModifyData['id'];
|
||||||
|
}
|
||||||
|
$strSQL = "SELECT `id`, `$preKeyField`, `active` FROM `$preTableName` WHERE $strDomainWhere $strWhere ORDER BY `$preKeyField`";
|
||||||
|
$booReturn = $myDBClass->getDataArray($strSQL,$arrDataTpl,$intDataCountTpl);
|
||||||
|
if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if ($intDataCountTpl != 0) {
|
||||||
|
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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$strSQL = "SELECT `id`, `name`, `active` FROM `tbl_service` WHERE `name` <> '' AND $strDomainWhere2 ORDER BY `name`";
|
||||||
|
$booReturn = $myDBClass->getDataArray($strSQL,$arrDataHpl,$intDataCount);
|
||||||
|
if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if ($arrDataHpl != 0) {
|
||||||
|
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;}
|
||||||
|
$intReturn = $myVisClass->parseSelectMulti('tbl_host','host_name','hosts','tbl_lnkServicetemplateToHost',2,$intFieldId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if (isset($arrModifyData['hostgroup_name'])) {$intFieldId = $arrModifyData['hostgroup_name'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectMulti('tbl_hostgroup','hostgroup_name','hostgroup','tbl_lnkServicetemplateToHostgroup',2,$intFieldId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
// Process service groups selection field
|
||||||
|
if (isset($arrModifyData['servicegroups'])) {$intFieldId = $arrModifyData['servicegroups'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectMulti('tbl_servicegroup','servicegroup_name','servicegroup','tbl_lnkServicetemplateToServicegroup',0,$intFieldId);
|
||||||
|
if ($intReturn != 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;
|
||||||
|
}
|
||||||
|
$intReturn = $myVisClass->parseSelectSimple('tbl_command','command_name','servicecommand',2,$intFieldId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
// Process check period selection field
|
||||||
|
if (isset($arrModifyData['check_period'])) {$intFieldId = $arrModifyData['check_period'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod','timeperiod_name','checkperiod',1,$intFieldId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if (isset($arrModifyData['notification_period'])) {$intFieldId = $arrModifyData['notification_period'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod','timeperiod_name','notifyperiod',1,$intFieldId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
// Process event handler selection field
|
||||||
|
if (isset($arrModifyData['event_handler'])) {$intFieldId = $arrModifyData['event_handler'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectSimple('tbl_command','command_name','eventhandler',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;}
|
||||||
|
$intReturn = $myVisClass->parseSelectMulti('tbl_contact','contact_name','service_contacts','tbl_lnkServicetemplateToContact',2,$intFieldId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
if (isset($arrModifyData['contact_groups'])) {$intFieldId = $arrModifyData['contact_groups'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectMulti('tbl_contactgroup','contactgroup_name','service_contactgroups','tbl_lnkServicetemplateToContactgroup',2,$intFieldId);
|
||||||
|
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;}
|
||||||
|
$intReturn = $myVisClass->parseSelectSimple('tbl_group','groupname','acc_group',0,$intFieldId);
|
||||||
|
if ($intReturn != 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,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 {
|
||||||
|
$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("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
|
||||||
|
$strSQL = "SELECT count(*) AS `number` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)";
|
||||||
|
$booReturn = $myDBClass->getSingleDataset($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`, `last_modified`, `config_id`, `access_group`
|
||||||
|
FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)
|
||||||
|
$strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
||||||
|
$booReturn = $myDBClass->getDataArray($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',0);
|
||||||
|
}
|
||||||
|
// Show messages
|
||||||
|
$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,$arrTimeData,$strTimeInfoString,$intNoTime);
|
||||||
|
//
|
||||||
|
// Process footer
|
||||||
|
// ==============
|
||||||
|
$myContentClass->showFooter($maintp,$setFileVersion);
|
||||||
|
?>
|
|
@ -0,0 +1,261 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Settings configuration
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-02-21 14:10:41 +0100 (Tue, 21 Feb 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1229 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 38;
|
||||||
|
$preContent = "admin/settings.tpl.htm";
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../functions/prepend_content.php");
|
||||||
|
//
|
||||||
|
// Process initial values
|
||||||
|
// ======================
|
||||||
|
if (!isset($_POST['tfValue1'])) $chkTfValue1 = $SETS['path']['tempdir'];
|
||||||
|
if (!isset($_POST['tfValue2'])) $chkTfValue2 = $SETS['data']['encoding'];
|
||||||
|
if (!isset($_POST['tfValue3'])) $chkTfValue3 = $SETS['db']['server'];
|
||||||
|
if (!isset($_POST['tfValue4'])) $chkTfValue4 = $SETS['db']['port'];
|
||||||
|
if (!isset($_POST['tfValue5'])) $chkTfValue5 = $SETS['db']['database'];
|
||||||
|
if (!isset($_POST['tfValue6'])) $chkTfValue6 = $SETS['db']['username'];
|
||||||
|
if (!isset($_POST['tfValue7'])) $chkTfValue7 = $SETS['db']['password'];
|
||||||
|
if (!isset($_POST['tfValue8'])) $chkTfValue8 = $SETS['security']['logofftime'];
|
||||||
|
if (!isset($_POST['tfValue9'])) $chkTfValue9 = $SETS['common']['pagelines'];
|
||||||
|
if (!isset($_POST['tfValue10'])) $chkTfValue10 = $SETS['network']['proxyserver'];
|
||||||
|
if (!isset($_POST['tfValue11'])) $chkTfValue11 = $SETS['network']['proxyuser'];
|
||||||
|
if (!isset($_POST['tfValue12'])) $chkTfValue12 = $SETS['network']['proxypasswd'];
|
||||||
|
if (!isset($_POST['selValue3'])) $chkSelValue3 = $SETS['security']['wsauth'];
|
||||||
|
if (!isset($_POST['selValue4'])) $chkSelValue4 = $SETS['common']['seldisable'];
|
||||||
|
if (!isset($_POST['radValue1'])) $chkRadValue1 = $SETS['common']['tplcheck'];
|
||||||
|
if (!isset($_POST['radValue2'])) $chkRadValue2 = $SETS['common']['updcheck'];
|
||||||
|
if (!isset($_POST['radValue3'])) $chkRadValue3 = $SETS['network']['proxy'];
|
||||||
|
//
|
||||||
|
// Save changes
|
||||||
|
// ============
|
||||||
|
if (isset($_POST) && isset($_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";
|
||||||
|
// 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
|
||||||
|
$strBaseURL = str_replace("admin/settings.php","",$_SERVER["PHP_SELF"]);
|
||||||
|
$strBasePath = substr(realpath('.'),0,-5);
|
||||||
|
$arrSQL = "";
|
||||||
|
$arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$strProtocol."' WHERE `category` = 'path' AND `name`='protocol'";
|
||||||
|
$arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$chkTfValue1."' WHERE `category` = 'path' AND `name`='tempdir'";
|
||||||
|
$arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$strBaseURL."' WHERE `category` = 'path' AND `name`='base_url'";
|
||||||
|
$arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$strBasePath."' WHERE `category` = 'path' AND `name`='base_path'";
|
||||||
|
$arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$strLocale."' WHERE `category` = 'data' AND `name`='locale'";
|
||||||
|
$arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$chkTfValue2."' WHERE `category` = 'data' AND `name`='encoding'";
|
||||||
|
$arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$chkTfValue8."' WHERE `category` = 'security' AND `name`='logofftime'";
|
||||||
|
$arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$chkSelValue3."' WHERE `category` = 'security' AND `name`='wsauth'";
|
||||||
|
$arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$chkTfValue9."' WHERE `category` = 'common' AND `name`='pagelines'";
|
||||||
|
$arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$chkSelValue4."' WHERE `category` = 'common' AND `name`='seldisable'";
|
||||||
|
$arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$chkRadValue1."' WHERE `category` = 'common' AND `name`='tplcheck'";
|
||||||
|
$arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$chkRadValue2."' WHERE `category` = 'common' AND `name`='updcheck'";
|
||||||
|
$arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$chkRadValue3."' WHERE `category` = 'network' AND `name`='proxy'";
|
||||||
|
$arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$chkTfValue10."' WHERE `category` = 'network' AND `name`='proxyserver'";
|
||||||
|
$arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$chkTfValue11."' WHERE `category` = 'network' AND `name`='proxyuser'";
|
||||||
|
$arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$chkTfValue12."' WHERE `category` = 'network' AND `name`='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($strBasePath."config/settings.php")) {
|
||||||
|
$filSettings = fopen($strBasePath."config/settings.php","w");
|
||||||
|
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 : http://www.nagiosql.org\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,"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 = ".$strBaseURL."\n");
|
||||||
|
fwrite($filSettings,"base_path = ".$strBasePath."\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 in 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, $strBasePath."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($strBasePath."config/settings.php ".translate("is not writeable, please check permissions!"),$strErrorMessage);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// Start content
|
||||||
|
// =============
|
||||||
|
$conttp->setVariable("TITLE",translate('Configure Settings'));
|
||||||
|
$conttp->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
foreach($arrDescription AS $elem) {
|
||||||
|
$conttp->setVariable($elem['name'],$elem['string']);
|
||||||
|
}
|
||||||
|
$conttp->setVariable("ACTION_INSERT",filter_var($_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->getDataArray($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->checkAccGroup($prePageKey,'write') != 0) $conttp->setVariable("ADD_CONTROL","disabled=\"disabled\"");
|
||||||
|
$conttp->parse("settingssite");
|
||||||
|
$conttp->show("settingssite");
|
||||||
|
//
|
||||||
|
// Footer ausgeben
|
||||||
|
// ===============
|
||||||
|
$maintp->setVariable("VERSION_INFO","<a href='http://www.nagiosql.org' target='_blank'>NagiosQL</a> $setFileVersion");
|
||||||
|
$maintp->parse("footer");
|
||||||
|
$maintp->show("footer");
|
||||||
|
?>
|
|
@ -0,0 +1,89 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Specials overview
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-02-08 15:13:31 +0100 (Wed, 08 Feb 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1189 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 5;
|
||||||
|
$preContent = "admin/mainpages.tpl.htm";
|
||||||
|
//
|
||||||
|
// Include preprocessing file
|
||||||
|
// ==========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
//
|
||||||
|
// Include content
|
||||||
|
// ===============
|
||||||
|
$conttp->setVariable("TITLE",translate('Misc commands'));
|
||||||
|
$conttp->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
$conttp->setVariable("DESC",translate('To 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->getAccGroups('read');
|
||||||
|
if ($myVisClass->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=19")+0,'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->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=20")+0,'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->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=21")+0,'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->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=22")+0,'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->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=23")+0,'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->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=24")+0,'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='http://www.nagiosql.org' target='_blank'>NagiosQL</a> $setFileVersion");
|
||||||
|
$maintp->parse("footer");
|
||||||
|
$maintp->show("footer");
|
||||||
|
?>
|
|
@ -0,0 +1,630 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Support page
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-01-27 09:59:02 +0100 (Fre, 27. Jan 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1182 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 40;
|
||||||
|
$preContent = "admin/support.tpl.htm";
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
$setSaveLangId = "private";
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../functions/prepend_content.php");
|
||||||
|
//
|
||||||
|
// Process post parameters
|
||||||
|
// =======================
|
||||||
|
$chkHidVersion = isset($_POST['hidVersion']) ? $_POST['hidVersion'] : "all";
|
||||||
|
$chkKey1 = isset($_POST['selInfoKey1']) ? $_POST['selInfoKey1'] : "";
|
||||||
|
$chkKey2 = isset($_POST['selInfoKey2']) ? $_POST['selInfoKey2'] : "";
|
||||||
|
$chkVersion = isset($_POST['selInfoVersion']) ? $_POST['selInfoVersion'] : "";
|
||||||
|
//
|
||||||
|
// Add or modify data
|
||||||
|
// ==================
|
||||||
|
if (($chkTaValue1 != "") && ($chkTfValue3 == "1")) {
|
||||||
|
$strSQL = "SELECT `infotext` FROM `tbl_info`
|
||||||
|
WHERE `key1` = '$chkTfValue1' AND `key2` = '$chkTfValue2' AND `version` = '$chkHidVersion'
|
||||||
|
AND `language` = '$setSaveLangId'";
|
||||||
|
$booReturn = $myDBClass->getDataArray($strSQL,$arrData,$intDataCount);
|
||||||
|
if ($intDataCount == 0) {
|
||||||
|
$strSQL = "INSERT INTO `tbl_info` (`key1`,`key2`,`version`,`language`,`infotext`)
|
||||||
|
VALUES ('$chkTfValue1','$chkTfValue2','$chkHidVersion','$setSaveLangId','$chkTaValue1')";
|
||||||
|
} else {
|
||||||
|
$strSQL = "UPDATE `tbl_info` SET `infotext` = '$chkTaValue1'
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// 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:'));
|
||||||
|
//
|
||||||
|
// 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'));
|
||||||
|
//
|
||||||
|
// 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.'));
|
||||||
|
} else if (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
|
||||||
|
define('MIN_PHP_VERSION', '5.2.0');
|
||||||
|
$conttp->setVariable("PHP_VERSION",translate("PHP version"));
|
||||||
|
if (version_compare(PHP_VERSION, MIN_PHP_VERSION, '>=')) {
|
||||||
|
$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:")." ".MIN_PHP_VERSION.")");
|
||||||
|
}
|
||||||
|
// 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->getSingleDataset($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");
|
||||||
|
$strStatus = ini_get('file_uploads');
|
||||||
|
if (empty($strStatus) || ($strStatus == 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");
|
||||||
|
$strStatus = ini_get('session.auto_start');
|
||||||
|
if (empty($strStatus) || ($strStatus == 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");
|
||||||
|
$strStatus = ini_get('suhosin.session.encrypt');
|
||||||
|
if (empty($strStatus) || ($strStatus == 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");
|
||||||
|
$strStatus = ini_get('date.timezone');
|
||||||
|
if (!empty($strStatus)) {
|
||||||
|
$conttp->setVariable("INI_DATE_TIMEZONE_CLASS","checkgreen");
|
||||||
|
$conttp->setVariable("INI_DATE_TIMEZONE_RESULT",translate("ok")." (".$strStatus.")");
|
||||||
|
} 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
|
||||||
|
// =============
|
||||||
|
$arrConfigSet = $myConfigClass->getConfigSets();
|
||||||
|
$intConfigId = $arrConfigSet[0];
|
||||||
|
$myConfigClass->getConfigData($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->getConfigData($intConfigId,"conffile",$strConffile);
|
||||||
|
$myConfigClass->getConfigData($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");
|
||||||
|
} else if ($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)");
|
||||||
|
}
|
||||||
|
} else if ($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"));
|
||||||
|
} else if ($intMethod == 2) {
|
||||||
|
$booReturn = 0;
|
||||||
|
if (!isset($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;
|
||||||
|
}
|
||||||
|
} else if ($intMethod == 3) {
|
||||||
|
$booReturn = 0;
|
||||||
|
if (!isset($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) && is_writable($strConffile)) {
|
||||||
|
$conttp->setVariable("RW_NAG_CONF_CLASS","checkgreen");
|
||||||
|
$conttp->setVariable("RW_NAG_CONF_RESULT",translate("ok"));
|
||||||
|
} else if (file_exists($strConffile) && is_readable($strConffile)) {
|
||||||
|
$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"));
|
||||||
|
}
|
||||||
|
} else if (($intMethod == 2) || ($intMethod == 3)) {
|
||||||
|
// Write file to temporary
|
||||||
|
$strFileName = tempnam($SETS['path']['tempdir'], 'nagiosql_conf');
|
||||||
|
// Copy configuration from remote system
|
||||||
|
$intReturn = $myConfigClass->configCopy($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->configCopy($strConffile,$intConfigId,$strFileName,1);
|
||||||
|
if ($intReturn == 0) {
|
||||||
|
$intCheck = 0;
|
||||||
|
if (file_exists($strFileName)) unlink($strFileName);
|
||||||
|
} else {
|
||||||
|
$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"));
|
||||||
|
} else if ($intCheck == 1) {
|
||||||
|
$conttp->setVariable("RW_NAG_CONF_CLASS","checkred");
|
||||||
|
$conttp->setVariable("RW_NAG_CONF_RESULT",translate("failed"));
|
||||||
|
} else if ($intCheck == 2) {
|
||||||
|
$conttp->setVariable("RW_NAG_CONF_CLASS","checkorange");
|
||||||
|
$conttp->setVariable("RW_NAG_CONF_RESULT",translate("ok")." (".translate("readonly").")");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$myConfigClass->getConfigData($intConfigId,"pidfile",$strPidfile);
|
||||||
|
$myConfigClass->getConfigData($intConfigId,"binaryfile",$strBinary);
|
||||||
|
$myConfigClass->getConfigData($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 (file_exists($strPidfile) && isset($arrExec[0])) {
|
||||||
|
$conttp->setVariable("CHECK_NAG_LOCK_CLASS","checkgreen");
|
||||||
|
$conttp->setVariable("CHECK_NAG_LOCK_RESULT",translate("ok"));
|
||||||
|
$intDemonOk = 0;
|
||||||
|
} else if (!file_exists($strPidfile) && isset($arrExec[0])) {
|
||||||
|
$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;
|
||||||
|
}
|
||||||
|
} else if ($intMethod == 2) {
|
||||||
|
$conttp->setVariable("CHECK_NAG_LOCK_CLASS","checkorange");
|
||||||
|
$conttp->setVariable("CHECK_NAG_LOCK_RESULT",translate("ok")." (".translate("not used with FTP").")");
|
||||||
|
$intDemonOk = 1;
|
||||||
|
} else if ($intMethod == 3) {
|
||||||
|
$arrResult1 = $myConfigClass->sendSSHCommand('ps -ef | grep '.basename($strBinary).' | grep '.basename($strConffile).' | grep -v grep');
|
||||||
|
$arrResult2 = $myConfigClass->sendSSHCommand('ls '.$strPidfile);
|
||||||
|
if (is_array($arrResult1) && is_array($arrResult2)) {
|
||||||
|
$conttp->setVariable("CHECK_NAG_LOCK_CLASS","checkgreen");
|
||||||
|
$conttp->setVariable("CHECK_NAG_LOCK_RESULT",translate("ok"));
|
||||||
|
$intDemonOk = 0;
|
||||||
|
} else if (is_array($arrResult1) && !is_array($arrResult2)) {
|
||||||
|
$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) && ($intDemonOk == 0)) {
|
||||||
|
$conttp->setVariable("RW_NAG_COMMAND_CLASS","checkgreen");
|
||||||
|
$conttp->setVariable("RW_NAG_COMMAND_RESULT",translate("ok"));
|
||||||
|
} else if (file_exists($strCommandfile) && is_readable($strCommandfile) && is_writable($strCommandfile) && ($intDemonOk == 1)) {
|
||||||
|
$conttp->setVariable("RW_NAG_COMMAND_CLASS","checkorange");
|
||||||
|
$conttp->setVariable("RW_NAG_COMMAND_RESULT",translate("ok")." (".translate("demon dead")."?)");
|
||||||
|
} else if (!file_exists($strCommandfile)) {
|
||||||
|
$conttp->setVariable("RW_NAG_COMMAND_CLASS","checkred");
|
||||||
|
$conttp->setVariable("RW_NAG_COMMAND_RESULT",translate("failed")." (".translate("file is missed").")");
|
||||||
|
} else if (!is_writable($strCommandfile)) {
|
||||||
|
$conttp->setVariable("RW_NAG_COMMAND_CLASS","checkred");
|
||||||
|
$conttp->setVariable("RW_NAG_COMMAND_RESULT",translate("failed")." (".translate("readonly").")");
|
||||||
|
} else {
|
||||||
|
$conttp->setVariable("RW_NAG_COMMAND_CLASS","checkred");
|
||||||
|
$conttp->setVariable("RW_NAG_COMMAND_RESULT",translate("failed"));
|
||||||
|
}
|
||||||
|
} else if ($intMethod == 2) {
|
||||||
|
$conttp->setVariable("RW_NAG_COMMAND_CLASS","checkorange");
|
||||||
|
$conttp->setVariable("RW_NAG_COMMAND_RESULT",translate("ok")." (".translate("not used with FTP").")");
|
||||||
|
} else if ($intMethod == 3) {
|
||||||
|
if (is_array($myConfigClass->sendSSHCommand('ls '.$strCommandfile)) && ($intDemonOk == 0)) {
|
||||||
|
$timeout = 3;
|
||||||
|
$old = ini_set('default_socket_timeout', $timeout);
|
||||||
|
$resCmdFile = fopen($strCommandfile,"w");
|
||||||
|
ini_set('default_socket_timeout', $old);
|
||||||
|
stream_set_timeout($resCmdFile, $timeout);
|
||||||
|
stream_set_blocking($resCmdFile, 0);
|
||||||
|
if ($resCmdFile) {
|
||||||
|
$conttp->setVariable("RW_NAG_COMMAND_CLASS","checkgreen");
|
||||||
|
$conttp->setVariable("RW_NAG_COMMAND_RESULT",translate("ok"));
|
||||||
|
fclose($resCmdFile);
|
||||||
|
} else {
|
||||||
|
$conttp->setVariable("RW_NAG_COMMAND_CLASS","checkred");
|
||||||
|
$conttp->setVariable("RW_NAG_COMMAND_RESULT",translate("failed")." (".translate("readonly").")");
|
||||||
|
}
|
||||||
|
} else if ($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").")");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
// Binary file
|
||||||
|
$conttp->setVariable("EXE_NAG_BINARY",translate("Nagios binary file"));
|
||||||
|
if ($intMethod == 1) {
|
||||||
|
if (file_exists($strBinary) && is_executable($strBinary)) {
|
||||||
|
$conttp->setVariable("EXE_NAG_BINARY_CLASS","checkgreen");
|
||||||
|
$conttp->setVariable("EXE_NAG_BINARY_RESULT",translate("ok"));
|
||||||
|
} else if (!file_exists($strBinary)) {
|
||||||
|
$conttp->setVariable("EXE_NAG_BINARY_CLASS","checkred");
|
||||||
|
$conttp->setVariable("EXE_NAG_BINARY_RESULT",translate("failed")." (".translate("file is missed").")");
|
||||||
|
} else {
|
||||||
|
$conttp->setVariable("EXE_NAG_BINARY_CLASS","checkred");
|
||||||
|
$conttp->setVariable("EXE_NAG_BINARY_RESULT",translate("failed")." (".translate("not executable").")");
|
||||||
|
}
|
||||||
|
} else if ($intMethod == 2) {
|
||||||
|
$conttp->setVariable("EXE_NAG_BINARY_CLASS","checkorange");
|
||||||
|
$conttp->setVariable("EXE_NAG_BINARY_RESULT",translate("ok")." (".translate("not used with FTP").")");
|
||||||
|
} else if ($intMethod == 3) {
|
||||||
|
$booReturn = 0;
|
||||||
|
if (!isset($myConfigClass->resConnectId) || !is_resource($myConfigClass->resConnectId)) {
|
||||||
|
$booReturn = $myConfigClass->getSSHConnection($intConfigId);
|
||||||
|
}
|
||||||
|
if ($booReturn == 1) {
|
||||||
|
$myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage);
|
||||||
|
} else {
|
||||||
|
if (($strBinary != "") && ($strConffile != "") && (is_array($myConfigClass->sendSSHCommand('ls '.$strBinary)))) {
|
||||||
|
$arrResult = $myConfigClass->sendSSHCommand($strBinary.' -V');
|
||||||
|
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->getConfigData($intConfigId,"basedir",$strBasedir);
|
||||||
|
$myConfigClass->getConfigData($intConfigId,"hostconfig",$strHostdir);
|
||||||
|
$myConfigClass->getConfigData($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).")");
|
||||||
|
$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,'r');
|
||||||
|
while (!feof($resFile)) {
|
||||||
|
$strLine = trim(fgets($resFile));
|
||||||
|
if ((substr($strLine,0,1) == 'c') && ((substr_count($strLine,'cfg_dir') != 0) || (substr_count($strLine,'cfg_file') != 0))) {
|
||||||
|
$arrConfig[] = $strLine;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$intCheck = 0;
|
||||||
|
fclose($resFile);
|
||||||
|
}
|
||||||
|
} else if (($intMethod == 2) || ($intMethod == 3)) {
|
||||||
|
$intCheck = 1;
|
||||||
|
// Write file to temporary
|
||||||
|
$strFileName = tempnam($SETS['path']['tempdir'], 'nagiosql_conf');
|
||||||
|
// Copy configuration from remote system
|
||||||
|
$intReturn = $myConfigClass->configCopy($strConffile,$intConfigId,$strFileName,0);
|
||||||
|
if ($intReturn == 0) {
|
||||||
|
$intCheck = 0;
|
||||||
|
if (file_exists($strFileName) && is_readable($strFileName)) {
|
||||||
|
$resFile = fopen($strFileName,'r');
|
||||||
|
while (!feof($resFile)) {
|
||||||
|
$strLine = trim(fgets($resFile));
|
||||||
|
if ((substr($strLine,0,1) == '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->getDataArray($strSQL,$arrDataLines,$intDataCount);
|
||||||
|
if ($booReturn && ($intDataCount != 0)) {
|
||||||
|
$conttp->setVariable("ACTIVE_CONFIG_COUNT","<span class=\"checkgreen\">".translate("ok")." (".$intDataCount.")</span>");
|
||||||
|
} else if ($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.")");
|
||||||
|
} else if (substr_count($line,$strBasedir.$elem['file']) != 0) {
|
||||||
|
$conttp->setVariable("DEMON_CFG_OK","<span class=\"checkgreen\">".translate("ok")."</span> (".$line.")");
|
||||||
|
} else if ($intDataCount == 0) {
|
||||||
|
$conttp->setVariable("DEMON_CFG_OK","<span class=\"checkorange\">".translate("ok")."</span> (".translate("cfg definition missed, but actually not used").")");
|
||||||
|
} else if (substr_count($line,$elem['file']) != 0) {
|
||||||
|
$conttp->setVariable("DEMON_CFG_OK","<span class=\"checkred\">".translate("failed")."</span> (".translate("wrong base path:")." ".$line.")");
|
||||||
|
}
|
||||||
|
} else if ($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.")");
|
||||||
|
} else if ($intDataCount == 0) {
|
||||||
|
$conttp->setVariable("DEMON_CFG_OK","<span class=\"checkorange\">".translate("ok")."</span> (".translate("cfg definition missed, but actually not used").")");
|
||||||
|
}
|
||||||
|
} else if ($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.")");
|
||||||
|
} else if ($intDataCount == 0) {
|
||||||
|
$conttp->setVariable("DEMON_CFG_OK","<span class=\"checkorange\">".translate("ok")."</span> (".translate("cfg definition missed, but actually not used").")");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} 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->checkAccGroup($prePageKey,'write') != 0) $conttp->setVariable("ADD_CONTROL","disabled=\"disabled\"");
|
||||||
|
$conttp->parse("support");
|
||||||
|
$conttp->show("support");
|
||||||
|
//
|
||||||
|
// Process footer
|
||||||
|
// ==============
|
||||||
|
$maintp->setVariable("VERSION_INFO","<a href='http://www.nagiosql.org' target='_blank'>NagiosQL</a> $setFileVersion");
|
||||||
|
$maintp->parse("footer");
|
||||||
|
$maintp->show("footer");
|
||||||
|
?>
|
|
@ -0,0 +1,249 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Template definition list
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-04-05 08:11:59 +0200 (Thu, 05 Apr 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1315 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$preAccess = 1;
|
||||||
|
$preNoMain = 1;
|
||||||
|
//
|
||||||
|
// Include preprocessing file
|
||||||
|
// ==========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
//
|
||||||
|
// Process post parameters
|
||||||
|
// =======================
|
||||||
|
$chkDataId = isset($_GET['dataId']) ? htmlspecialchars($_GET['dataId'], ENT_QUOTES, 'utf-8') : 0;
|
||||||
|
$chkMode = isset($_GET['mode']) ? htmlspecialchars($_GET['mode'], ENT_QUOTES, 'utf-8') : "";
|
||||||
|
$chkKey = isset($_GET['key']) ? htmlspecialchars($_GET['key'], ENT_QUOTES, 'utf-8') : "";
|
||||||
|
$chkDef = isset($_GET['def']) ? htmlspecialchars($_GET['def'], ENT_QUOTES, 'utf-8') : "";
|
||||||
|
$chkType = isset($_GET['type']) ? htmlspecialchars($_GET['type'], ENT_QUOTES, 'utf-8') : "";
|
||||||
|
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->getDataArray($strSQL,$arrDataLines,$intDataCount);
|
||||||
|
//
|
||||||
|
// Store data to session
|
||||||
|
// ============================
|
||||||
|
if ($chkMode == "") {
|
||||||
|
$_SESSION['templatedefinition'] = "";
|
||||||
|
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'] = $myDBClass->getFieldData($strSQL3)+0;
|
||||||
|
$arrTemp['status'] = 0;
|
||||||
|
$_SESSION['templatedefinition'][] = $arrTemp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// Add mode
|
||||||
|
// ========
|
||||||
|
if ($chkMode == "add") {
|
||||||
|
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'] = $myDBClass->getFieldData($strSQL3)+0;
|
||||||
|
$_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'] = $myDBClass->getFieldData($strSQL3)+0;
|
||||||
|
$_SESSION['templatedefinition'][] = $arrTemp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// Deletion mode
|
||||||
|
// =============
|
||||||
|
if ($chkMode == "del") {
|
||||||
|
if (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") {
|
||||||
|
if (isset($_SESSION['templatedefinition']) && is_array($_SESSION['templatedefinition'])) {
|
||||||
|
$arrTemp = "";
|
||||||
|
$arrWait = "";
|
||||||
|
$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") {
|
||||||
|
if (isset($_SESSION['templatedefinition']) && is_array($_SESSION['templatedefinition'])) {
|
||||||
|
$arrTemp = "";
|
||||||
|
$arrWait = "";
|
||||||
|
$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 = "";
|
||||||
|
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" language="javascript">
|
||||||
|
<!--
|
||||||
|
function doDel(key) {
|
||||||
|
document.location.href = "<?php echo $_SESSION['SETS']['path']['base_url']; ?>admin/templatedefinitions.php?dataId=<?php echo $chkDataId; ?>&type=<?php echo $chkType; ?>&mode=del&def="+key;
|
||||||
|
}
|
||||||
|
function doUp(key,elem) {
|
||||||
|
document.location.href = "<?php echo $_SESSION['SETS']['path']['base_url']; ?>admin/templatedefinitions.php?dataId=<?php echo $chkDataId; ?>&type=<?php echo $chkType; ?>&mode=sortup&key="+key+"def="+elem;
|
||||||
|
}
|
||||||
|
function doDown(key,elem) {
|
||||||
|
document.location.href = "<?php echo $_SESSION['SETS']['path']['base_url']; ?>admin/templatedefinitions.php?dataId=<?php echo $chkDataId; ?>&type=<?php echo $chkType; ?>&mode=sortdown&key="+key+"def="+elem;
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</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>
|
|
@ -0,0 +1,183 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Admin time definition list
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-02-27 13:01:17 +0100 (Mon, 27 Feb 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1257 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$preAccess = 1;
|
||||||
|
//$prePageId = 16;
|
||||||
|
$preNoMain = 1;
|
||||||
|
//
|
||||||
|
// Include preprocessing file
|
||||||
|
// ==========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
//
|
||||||
|
// Process post parameters
|
||||||
|
// =======================
|
||||||
|
$chkTipId = (isset($_GET['tipId']) && ($_GET['tipId'] != "")) ? htmlspecialchars($_GET['tipId'], ENT_QUOTES, 'utf-8') : 0;
|
||||||
|
$chkMode = isset($_GET['mode']) ? htmlspecialchars($_GET['mode'], ENT_QUOTES, 'utf-8') : "";
|
||||||
|
$chkDef = isset($_GET['def']) ? html_entity_decode($_GET['def']) : "";
|
||||||
|
$chkRange = isset($_GET['range']) ? html_entity_decode($_GET['range']) : "";
|
||||||
|
$chkId = isset($_GET['id']) ? htmlspecialchars($_GET['id'], ENT_QUOTES, 'utf-8') : "";
|
||||||
|
$chkVersion = isset($_GET['version']) ? htmlspecialchars($_GET['version'], ENT_QUOTES, 'utf-8') : 0;
|
||||||
|
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->getDataArray($strSQL,$arrDataLines,$intDataCount);
|
||||||
|
//
|
||||||
|
// Store data to session
|
||||||
|
// ============================
|
||||||
|
if ($chkMode == "") {
|
||||||
|
$_SESSION['timedefinition'] = "";
|
||||||
|
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") {
|
||||||
|
if (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">
|
||||||
|
<script type="text/javascript" language="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>
|
|
@ -0,0 +1,201 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Timeperiod definitions
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-03-09 07:43:00 +0100 (Fri, 09 Mar 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1282 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 16;
|
||||||
|
$preContent = "admin/timeperiods.tpl.htm";
|
||||||
|
$preSearchSession = 'timeperiod';
|
||||||
|
$preTableName = 'tbl_timeperiod';
|
||||||
|
$preKeyField = 'timeperiod_name';
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../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);
|
||||||
|
} else if ($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);
|
||||||
|
//
|
||||||
|
// Start content
|
||||||
|
// =============
|
||||||
|
$conttp->setVariable("TITLE",translate('Timeperiod definitions'));
|
||||||
|
$conttp->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
//
|
||||||
|
// Singe data form
|
||||||
|
// ===============
|
||||||
|
if ($chkModus == "add") {
|
||||||
|
// Do not show modified time list
|
||||||
|
$intNoTime = 1;
|
||||||
|
// Process exclude selection fields
|
||||||
|
if (isset($arrModifyData['exclude'])) {$intFieldId = $arrModifyData['exclude'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectMulti($preTableName,'name','excludes','tbl_lnkTimeperiodToTimeperiod',0,$intFieldId,$chkListId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
// Process include selection fields
|
||||||
|
if (isset($arrModifyData['use_template'])) {$intFieldId = $arrModifyData['use_template'];} else {$intFieldId = 0;}
|
||||||
|
$intReturn = $myVisClass->parseSelectMulti($preTableName,'name','uses','tbl_lnkTimeperiodToTimeperiodUse',0,$intFieldId,$chkListId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
// 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);
|
||||||
|
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("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)";
|
||||||
|
$booReturn = $myDBClass->getSingleDataset($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`, `alias`, `register`, `active`, `config_id`, `access_group` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere
|
||||||
|
AND `access_group` IN ($strAccess) $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
||||||
|
$booReturn = $myDBClass->getDataArray($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,'alias');
|
||||||
|
}
|
||||||
|
// Show messages
|
||||||
|
$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,$arrTimeData,$strTimeInfoString,$intNoTime);
|
||||||
|
//
|
||||||
|
// Process footer
|
||||||
|
// ==============
|
||||||
|
$myContentClass->showFooter($maintp,$setFileVersion);
|
||||||
|
?>
|
|
@ -0,0 +1,43 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Tools overview
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-02-21 14:10:41 +0100 (Tue, 21 Feb 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1229 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 6;
|
||||||
|
$preContent = "admin/mainpages.tpl.htm";
|
||||||
|
//
|
||||||
|
// Include preprocessing file
|
||||||
|
// ==========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
//
|
||||||
|
// Include content
|
||||||
|
// ===============
|
||||||
|
$conttp->setVariable("TITLE",translate('Different tools'));
|
||||||
|
$conttp->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
$conttp->setVariable("DESC",translate('Useful functions for data import, main configuration, daemon control and so on.'));
|
||||||
|
$conttp->parse("main");
|
||||||
|
$conttp->show("main");
|
||||||
|
//
|
||||||
|
// Include Footer
|
||||||
|
// ==============
|
||||||
|
$maintp->setVariable("VERSION_INFO","<a href='http://www.nagiosql.org' target='_blank'>NagiosQL</a> $setFileVersion");
|
||||||
|
$maintp->parse("footer");
|
||||||
|
$maintp->show("footer");
|
||||||
|
?>
|
|
@ -0,0 +1,175 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : User administration
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-02-21 14:10:41 +0100 (Tue, 21 Feb 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1229 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 32;
|
||||||
|
$preContent = "admin/user.tpl.htm";
|
||||||
|
$preSearchSession = 'user';
|
||||||
|
$preTableName = 'tbl_user';
|
||||||
|
$preKeyField = 'username';
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
//$preNoAccessGrp = 1;
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../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('A 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 unequally!'),$strErrorMessage);
|
||||||
|
}
|
||||||
|
$chkModus = "display";
|
||||||
|
}
|
||||||
|
if ($chkModus != "add") $chkModus = "display";
|
||||||
|
//
|
||||||
|
// Start content
|
||||||
|
// =============
|
||||||
|
$conttp->setVariable("TITLE",translate('User administration'));
|
||||||
|
$conttp->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
//
|
||||||
|
// Singe data form
|
||||||
|
// ===============
|
||||||
|
if ($chkModus == "add") {
|
||||||
|
// Process domain selection field
|
||||||
|
if (isset($arrModifyData['domain'])) {$intFieldId = $arrModifyData['domain'];} else {$intFieldId = 1;}
|
||||||
|
$intReturn = $myVisClass->parseSelectSimple('tbl_datadomain','domain','std_domain',0,$intFieldId,0);
|
||||||
|
if ($intReturn != 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']."'")+0;
|
||||||
|
}
|
||||||
|
$intReturn = $myVisClass->parseSelectSimple('tbl_language','language','language_name',0,$intFieldId);
|
||||||
|
if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage);
|
||||||
|
// Initial add/modify form definitions
|
||||||
|
$myContentClass->addFormInit($conttp);
|
||||||
|
$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 not permitted characters:'));
|
||||||
|
$conttp->setVariable("FILL_PASSWD_NOT_EQUAL",translate('The passwords are not equal!'));
|
||||||
|
$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("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`";
|
||||||
|
$booReturn = $myDBClass->getSingleDataset($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`, `alias`, `active`, `nodelete`
|
||||||
|
FROM `$preTableName` $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines'];
|
||||||
|
$booReturn = $myDBClass->getDataArray($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,'alias');
|
||||||
|
}
|
||||||
|
// Show messages
|
||||||
|
$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,'','',1);
|
||||||
|
//
|
||||||
|
// Process footer
|
||||||
|
// ==============
|
||||||
|
$myContentClass->showFooter($maintp,$setFileVersion);
|
||||||
|
?>
|
|
@ -0,0 +1,150 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Variable definition list
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-02-27 13:01:17 +0100 (Mon, 27 Feb 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1257 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$preAccess = 1;
|
||||||
|
$preNoMain = 1;
|
||||||
|
//
|
||||||
|
// Include preprocessing file
|
||||||
|
// ==========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
//
|
||||||
|
// Process post parameters
|
||||||
|
// =======================
|
||||||
|
$chkDataId = isset($_GET['dataId']) ? htmlspecialchars($_GET['dataId'], ENT_QUOTES, 'utf-8') : 0;
|
||||||
|
$chkMode = isset($_GET['mode']) ? htmlspecialchars($_GET['mode'], ENT_QUOTES, 'utf-8') : "";
|
||||||
|
$chkDef = isset($_GET['def']) ? $_GET['def'] : "";
|
||||||
|
$chkRange = isset($_GET['range']) ? $_GET['range'] : "";
|
||||||
|
$chkId = isset($_GET['id']) ? htmlspecialchars($_GET['id'], ENT_QUOTES, 'utf-8') : "";
|
||||||
|
$chkVersion = isset($_GET['version']) ? htmlspecialchars($_GET['version'], ENT_QUOTES, 'utf-8') : 0;
|
||||||
|
$chkLinkTab = isset($_GET['linktab']) ? htmlspecialchars($_GET['linktab'], ENT_QUOTES, 'utf-8') : "";
|
||||||
|
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->getDataArray($strSQL,$arrDataLines,$intDataCount);
|
||||||
|
//
|
||||||
|
// Store data to session
|
||||||
|
// ============================
|
||||||
|
if ($chkMode == "") {
|
||||||
|
$_SESSION['variabledefinition'] = "";
|
||||||
|
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") {
|
||||||
|
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") {
|
||||||
|
if (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">
|
||||||
|
<script type="text/javascript" language="javascript">
|
||||||
|
<!--
|
||||||
|
function doEdit(key,range) {
|
||||||
|
parent.document.frmDetail.txtVariablename.value = decodeURIComponent(key);
|
||||||
|
parent.document.frmDetail.txtVariablevalue.value = decodeURIComponent(range);
|
||||||
|
}
|
||||||
|
function doDel(key) {
|
||||||
|
document.location.href = "<?php echo $_SESSION['SETS']['path']['base_url']; ?>admin/variabledefinitions.php?dataId=<?php echo $chkDataId; ?>&mode=del&def="+key;
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</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>
|
|
@ -0,0 +1,492 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Configuration verification
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-09-24 14:42:29 +0200 (Mon, 24 Sep 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1347 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$prePageId = 30;
|
||||||
|
$preContent = "admin/verify.tpl.htm";
|
||||||
|
$preAccess = 1;
|
||||||
|
$preFieldvars = 1;
|
||||||
|
$intModus = 0;
|
||||||
|
$strInfo = "";
|
||||||
|
//
|
||||||
|
// Include preprocessing files
|
||||||
|
// ===========================
|
||||||
|
require("../functions/prepend_adm.php");
|
||||||
|
require("../functions/prepend_content.php");
|
||||||
|
//
|
||||||
|
// Get configuration set ID
|
||||||
|
// ========================
|
||||||
|
$arrConfigSet = $myConfigClass->getConfigSets();
|
||||||
|
$intConfigId = $arrConfigSet[0];
|
||||||
|
$myConfigClass->getConfigData($intConfigId,"method",$intMethod);
|
||||||
|
//
|
||||||
|
// Process form variables
|
||||||
|
// ======================
|
||||||
|
$intProcessError = 0;
|
||||||
|
// Write monitoring data
|
||||||
|
if ($chkButValue1 != "") {
|
||||||
|
$strNoData = translate('Writing of the configuration failed - no dataset or not activated dataset found')."::";
|
||||||
|
// Write host configuration
|
||||||
|
$strSQL = "SELECT `id` FROM `tbl_host` WHERE `config_id` = $chkDomainId AND `active`='1'";
|
||||||
|
$myDBClass->getDataArray($strSQL,$arrData,$intDataCount);
|
||||||
|
$intError = 0;
|
||||||
|
if ($intDataCount != 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);
|
||||||
|
} else if ($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->getDataArray($strSQL,$arrData,$intDataCount);
|
||||||
|
$intError = 0;
|
||||||
|
if ($intDataCount != 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);
|
||||||
|
} else if ($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
|
||||||
|
$intReturn = $myConfigClass->createConfig("tbl_hostgroup");
|
||||||
|
if ($intReturn == 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
|
||||||
|
$intReturn = $myConfigClass->createConfig("tbl_servicegroup");
|
||||||
|
if ($intReturn == 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
|
||||||
|
$intReturn = $myConfigClass->createConfig("tbl_hosttemplate");
|
||||||
|
if ($intReturn == 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
|
||||||
|
$intReturn = $myConfigClass->createConfig("tbl_servicetemplate");
|
||||||
|
if ($intReturn == 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
|
||||||
|
$intReturn = $myConfigClass->createConfig("tbl_timeperiod");
|
||||||
|
if ($intReturn == 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
|
||||||
|
$intReturn = $myConfigClass->createConfig("tbl_command");
|
||||||
|
if ($intReturn == 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
|
||||||
|
$intReturn = $myConfigClass->createConfig("tbl_contact");
|
||||||
|
if ($intReturn == 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
|
||||||
|
$intReturn = $myConfigClass->createConfig("tbl_contactgroup");
|
||||||
|
if ($intReturn == 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
|
||||||
|
$intReturn = $myConfigClass->createConfig("tbl_contacttemplate");
|
||||||
|
if ($intReturn == 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
|
||||||
|
$intReturn = $myConfigClass->createConfig("tbl_servicedependency");
|
||||||
|
if ($intReturn == 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
|
||||||
|
$intReturn = $myConfigClass->createConfig("tbl_hostdependency");
|
||||||
|
if ($intReturn == 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
|
||||||
|
$intReturn = $myConfigClass->createConfig("tbl_serviceescalation");
|
||||||
|
if ($intReturn == 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
|
||||||
|
$intReturn = $myConfigClass->createConfig("tbl_hostescalation");
|
||||||
|
if ($intReturn == 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
|
||||||
|
$intReturn = $myConfigClass->createConfig("tbl_serviceextinfo");
|
||||||
|
if ($intReturn == 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
|
||||||
|
$intReturn = $myConfigClass->createConfig("tbl_hostextinfo");
|
||||||
|
if ($intReturn == 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->getConfigData($intConfigId,"binaryfile",$strBinary);
|
||||||
|
$myConfigClass->getConfigData($intConfigId,"basedir",$strBaseDir);
|
||||||
|
$myConfigClass->getConfigData($intConfigId,"nagiosbasedir",$strNagiosBaseDir);
|
||||||
|
$myConfigClass->getConfigData($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 rights for execution!'),$strErrorMessage);
|
||||||
|
}
|
||||||
|
} else if ($intMethod == 2) {
|
||||||
|
$booReturn = 0;
|
||||||
|
if (!isset($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);
|
||||||
|
}
|
||||||
|
} else if ($intMethod == 3) {
|
||||||
|
$booReturn = 0;
|
||||||
|
if (!isset($myConfigClass->resConnectId) || !is_resource($myConfigClass->resConnectId)) {
|
||||||
|
$booReturn = $myConfigClass->getSSHConnection($intConfigId);
|
||||||
|
}
|
||||||
|
if ($booReturn == 1) {
|
||||||
|
$myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage);
|
||||||
|
} else {
|
||||||
|
if (($strBinary != "") && ($strConffile != "") && (is_array($myConfigClass->sendSSHCommand('ls '.$strBinary))) &&
|
||||||
|
(is_array($myConfigClass->sendSSHCommand('ls '.$strConffile)))) {
|
||||||
|
$arrResult = $myConfigClass->sendSSHCommand($strBinary.' -v '.$strConffile,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->getConfigData($intConfigId,"commandfile",$strCommandfile);
|
||||||
|
$myConfigClass->getConfigData($intConfigId,"binaryfile",$strBinary);
|
||||||
|
$myConfigClass->getConfigData($intConfigId,"pidfile",$strPidfile);
|
||||||
|
// 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)) {
|
||||||
|
$strCommandString = "[".mktime()."] RESTART_PROGRAM;".mktime();
|
||||||
|
$timeout = 3;
|
||||||
|
$old = ini_set('default_socket_timeout', $timeout);
|
||||||
|
$resCmdFile = fopen($strCommandfile,"w");
|
||||||
|
ini_set('default_socket_timeout', $old);
|
||||||
|
stream_set_timeout($resCmdFile, $timeout);
|
||||||
|
stream_set_blocking($resCmdFile, 0);
|
||||||
|
if ($resCmdFile) {
|
||||||
|
fputs($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 rights to execute'));
|
||||||
|
$myVisClass->processMessage(translate('Nagios command file not found or no rights to write!'),$strErrorMessage);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
|
||||||
|
$myDataClass->writeLog(translate('Restart failed - Nagios command file not found or no rights to execute'));
|
||||||
|
$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);
|
||||||
|
}
|
||||||
|
} else if ($intMethod == 2) {
|
||||||
|
$myDataClass->writeLog(translate('Restart failed - FTP restrictions'));
|
||||||
|
$myVisClass->processMessage(translate('Nagios restart is not possible via FTP remote connection!'),$strErrorMessage);
|
||||||
|
} else if ($intMethod == 3) {
|
||||||
|
$booReturn = 0;
|
||||||
|
if (!isset($myConfigClass->resConnectId) || !is_resource($myConfigClass->resConnectId)) {
|
||||||
|
$booReturn = $myConfigClass->getSSHConnection($intConfigId);
|
||||||
|
}
|
||||||
|
if ($booReturn == 1) {
|
||||||
|
$myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage);
|
||||||
|
} else {
|
||||||
|
if (is_array($myConfigClass->sendSSHCommand('ls '.$strCommandfile))) {
|
||||||
|
$strCommandString = "[".mktime()."] RESTART_PROGRAM;".mktime();
|
||||||
|
$arrInfo = ssh2_sftp_stat($myConfigClass->resSFTP, $strCommandfile);
|
||||||
|
$intFileStamp1 = $arrInfo['mtime'];
|
||||||
|
$arrResult = $myConfigClass->sendSSHCommand('echo "'.$strCommandString.'" >> '.$strCommandfile);
|
||||||
|
$arrInfo = ssh2_sftp_stat($myConfigClass->resSFTP, $strCommandfile);
|
||||||
|
$intFileStamp2 = $arrInfo['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->parse("header");
|
||||||
|
$conttp->show("header");
|
||||||
|
$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 restart Nagios!'));
|
||||||
|
$conttp->setVariable("MAKE",translate('Do it'));
|
||||||
|
$conttp->setVariable("IMAGE_PATH",$_SESSION['SETS']['path']['base_url']."images/");
|
||||||
|
$conttp->setVariable("ACTION_INSERT",filter_var($_SERVER['PHP_SELF'], FILTER_SANITIZE_STRING));
|
||||||
|
$strOutput = "";
|
||||||
|
if (isset($resFile) && ($resFile != false)){
|
||||||
|
$intError = 0;
|
||||||
|
$intWarning = 0;
|
||||||
|
while(!feof($resFile)) {
|
||||||
|
$strLine = fgets($resFile,1024);
|
||||||
|
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('Written Nagios configuration checked - Warnings/Errors:')." ".$intWarning."/".$intError);
|
||||||
|
pclose($resFile);
|
||||||
|
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");
|
||||||
|
} else if (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('Written Nagios configuration 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->checkAccGroup($prePageKey,'write') != 0) $conttp->setVariable("ADD_CONTROL","disabled=\"disabled\"");
|
||||||
|
$conttp->parse("main");
|
||||||
|
$conttp->show("main");
|
||||||
|
//
|
||||||
|
// Insert footer
|
||||||
|
// =============
|
||||||
|
$maintp->setVariable("VERSION_INFO","<a href='http://www.nagiosql.org' target='_blank'>NagiosQL</a> $setFileVersion");
|
||||||
|
$maintp->parse("footer");
|
||||||
|
$maintp->show("footer");
|
||||||
|
?>
|
|
@ -0,0 +1,173 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : Command line visualization
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2011-10-31 15:42:09 +0100 (Mo, 31. Okt 2011) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1118 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Define common variables
|
||||||
|
// =======================
|
||||||
|
$preNoMain = 1;
|
||||||
|
$chkShow = isset($_GET['show']) ? $_GET['show']+0 : 0;
|
||||||
|
//
|
||||||
|
// Include preprocessing file
|
||||||
|
// ==========================
|
||||||
|
require("../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>";
|
||||||
|
} else if (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>";
|
||||||
|
} else if (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: 0px;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
-->
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<table width="100%" border="0" class="content_listtable" style="padding:0px; margin:0px; 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 language="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: 0px;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
-->
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<p><br>Loading...</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
|
@ -0,0 +1,473 @@
|
||||||
|
@charset "utf-8";
|
||||||
|
/*/////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : CSS content definition
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2011-10-27 09:50:16 +0200 (Thu, 27 Oct 2011) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1111 $
|
||||||
|
//
|
||||||
|
/////////////////////////////////////////////////////////////////////////////*/
|
||||||
|
/* Content main div */
|
||||||
|
#content_main {
|
||||||
|
top:-3px;
|
||||||
|
left:0px;
|
||||||
|
width:890px;
|
||||||
|
padding: 0px;
|
||||||
|
margin: 0px;
|
||||||
|
padding-left: 10px;
|
||||||
|
position:relative;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
/* Content title (list and single view) */
|
||||||
|
#content_title {
|
||||||
|
color: #0c4271;
|
||||||
|
margin:0px;
|
||||||
|
padding:0px;
|
||||||
|
margin-top:0px;
|
||||||
|
margin-left:2px;
|
||||||
|
font-size:20px;
|
||||||
|
font-weight:bold;
|
||||||
|
font-family:Arial, Helvetica, sans-serif;
|
||||||
|
padding-bottom: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;
|
||||||
|
}
|
||||||
|
#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:0px;
|
||||||
|
}
|
||||||
|
/* 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:0px;
|
||||||
|
padding:0px;
|
||||||
|
}
|
||||||
|
/* 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:0px;
|
||||||
|
margin:0px;
|
||||||
|
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:0px;
|
||||||
|
margin:0px;
|
||||||
|
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:0px;
|
||||||
|
margin:0px;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
.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:0px;
|
||||||
|
margin:0px;
|
||||||
|
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:0px;
|
||||||
|
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:0px;
|
||||||
|
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:0px;
|
||||||
|
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:0px;
|
||||||
|
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:0px;
|
||||||
|
padding-bottom:2px;
|
||||||
|
}
|
||||||
|
.content_formtable input[type=checkbox] {
|
||||||
|
border:none;
|
||||||
|
margin-left:0px;
|
||||||
|
margin-right:0px;
|
||||||
|
background:none;
|
||||||
|
float:left;
|
||||||
|
}
|
||||||
|
.content_formtable input[type=radio] {
|
||||||
|
border:none;
|
||||||
|
margin-left:0px;
|
||||||
|
margin-right:0px;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
.content_formtable .inactive_option {
|
||||||
|
background-color:#FF8000;
|
||||||
|
}
|
||||||
|
.content_formtable .foreign_option {
|
||||||
|
background-color:#C90;
|
||||||
|
}
|
||||||
|
.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:0px;
|
||||||
|
padding-bottom:2px;
|
||||||
|
height:25px;
|
||||||
|
}
|
||||||
|
.content_listtable .tdlb {
|
||||||
|
padding-left:5px;
|
||||||
|
}
|
||||||
|
.content_listtable .tdld {
|
||||||
|
padding-left:5px;
|
||||||
|
background-color: #dbe6ff;
|
||||||
|
}
|
||||||
|
.content_listtable .tdmb {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.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: 0px;
|
||||||
|
padding: 0px;
|
||||||
|
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 */
|
|
@ -0,0 +1,296 @@
|
||||||
|
<?php
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// NagiosQL
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2005-2012 by Martin Willisegger
|
||||||
|
//
|
||||||
|
// Project : NagiosQL
|
||||||
|
// Component : field language variables (for replace in templates)
|
||||||
|
// Website : http://www.nagiosql.org
|
||||||
|
// Date : $LastChangedDate: 2012-02-21 14:10:41 +0100 (Tue, 21 Feb 2012) $
|
||||||
|
// Author : $LastChangedBy: martin $
|
||||||
|
// Version : 3.2.0
|
||||||
|
// Revision : $LastChangedRevision: 1229 $
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// 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_SERVER_NAME", "string" => translate("Server name"));
|
||||||
|
$arrDescription[] = array ("name" => "LANG_CONFIGURATION_DIRECTORIES", "string" => translate("Configuration 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_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("Formcheck"));
|
||||||
|
$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"));
|
||||||
|
$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_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 nonstatus 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_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 nostatus 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_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 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 not permitted 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