Imported Upstream version 3.2.0

This commit is contained in:
Mario Fetka 2017-05-22 11:24:21 +02:00
commit c4f4701ef1
381 changed files with 97590 additions and 0 deletions

46
admin.php Normal file
View File

@ -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");
?>

43
admin/administration.php Normal file
View File

@ -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");
?>

77
admin/alarming.php Normal file
View File

@ -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");
?>

153
admin/cgicfg.php Normal file
View File

@ -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");
?>

152
admin/checkcommands.php Normal file
View File

@ -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);
?>

86
admin/commandline.php Normal file
View File

@ -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 = "&nbsp;";
$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>

59
admin/commands.php Normal file
View File

@ -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");
?>

287
admin/configtargets.php Executable file
View File

@ -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);
?>

182
admin/contactgroups.php Normal file
View File

@ -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);
?>

342
admin/contacts.php Normal file
View File

@ -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);
?>

334
admin/contacttemplates.php Normal file
View File

@ -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);
?>

160
admin/datadomain.php Executable file
View File

@ -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);
?>

149
admin/delbackup.php Normal file
View File

@ -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");
?>

164
admin/delconfig.php Normal file
View File

@ -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");
?>

68
admin/download.php Normal file
View File

@ -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);
?>

165
admin/group.php Normal file
View File

@ -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);
?>

159
admin/groupusers.php Normal file
View File

@ -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">&nbsp;</td>
<td class="tablerow" align="right">&nbsp;</td>
</tr>
<?php
}
?>
</table>
</body>
</html>

153
admin/helpedit.php Normal file
View File

@ -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");
?>

229
admin/hostdependencies.php Normal file
View File

@ -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);
?>

226
admin/hostescalations.php Normal file
View File

@ -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);
?>

159
admin/hostextinfo.php Normal file
View File

@ -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);
?>

182
admin/hostgroups.php Normal file
View File

@ -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);
?>

494
admin/hosts.php Normal file
View File

@ -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);
?>

382
admin/hosttemplates.php Normal file
View File

@ -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);
?>

220
admin/import.php Normal file
View File

@ -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
admin/index.html Normal file
View File

95
admin/info.php Normal file
View File

@ -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>

124
admin/logbook.php Normal file
View File

@ -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'] = "&nbsp;";
// 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");
?>

99
admin/menuaccess.php Normal file
View File

@ -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","&nbsp;");
$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");
?>

90
admin/monitoring.php Normal file
View File

@ -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");
?>

59
admin/mutdialog.php Normal file
View File

@ -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");
?>

153
admin/nagioscfg.php Normal file
View File

@ -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");
?>

102
admin/password.php Normal file
View File

@ -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");
?>

View File

@ -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);
?>

View File

@ -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);
?>

203
admin/serviceextinfo.php Normal file
View File

@ -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);
?>

183
admin/servicegroups.php Normal file
View File

@ -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);
?>

499
admin/services.php Normal file
View File

@ -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);
?>

396
admin/servicetemplates.php Normal file
View File

@ -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);
?>

261
admin/settings.php Normal file
View File

@ -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");
?>

89
admin/specials.php Normal file
View File

@ -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");
?>

630
admin/support.php Normal file
View File

@ -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");
?>

View File

@ -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">&nbsp;<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">&nbsp;<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">&nbsp;</td>
</tr>
<?php
}
?>
</table>
</body>
</html>

183
admin/timedefinitions.php Normal file
View File

@ -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">&nbsp;<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">&nbsp;</td>
<td class="tablerow" align="right">&nbsp;</td>
</tr>
<?php
}
?>
</table>
</body>
</html>

201
admin/timeperiods.php Normal file
View File

@ -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);
?>

43
admin/tools.php Normal file
View File

@ -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");
?>

175
admin/user.php Normal file
View File

@ -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);
?>

View File

@ -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">&nbsp;<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">&nbsp;</td>
<td class="tablerow" align="right">&nbsp;</td>
</tr>
<?php
}
?>
</table>
</body>
</html>

492
admin/verify.php Normal file
View File

@ -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");
?>

173
admin/versioncheck.php Normal file
View File

@ -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 = "&nbsp;";
$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
}
?>

473
config/content.css Normal file
View File

@ -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 */

296
config/fieldvars.php Normal file
View File

@ -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" => "&nbsp;");
}
//
// 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

View File

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

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