2017-05-22 11:24:21 +02:00
< ? php
///////////////////////////////////////////////////////////////////////////////
//
// NagiosQL
///////////////////////////////////////////////////////////////////////////////
//
2017-10-20 15:00:08 +02:00
// (c) 2005-2017 by Martin Willisegger
2017-05-22 11:24:21 +02:00
//
// Project : NagiosQL
// Component : Preprocessing script
// Website : http://www.nagiosql.org
2017-10-20 15:00:08 +02:00
// Date : $LastChangedDate: 2017-06-22 09:29:35 +0200 (Thu, 22 Jun 2017) $
2017-05-22 11:24:21 +02:00
// Author : $LastChangedBy: martin $
2017-10-20 15:00:08 +02:00
// Version : 3.3.0
// Revision : $LastChangedRevision: 2 $
2017-05-22 11:24:21 +02:00
//
///////////////////////////////////////////////////////////////////////////////
//error_reporting(E_ALL);
error_reporting ( E_ALL & ~ E_STRICT );
//
// Security Protection
// ===================
if ( isset ( $_GET [ 'SETS' ]) || isset ( $_POST [ 'SETS' ])) {
$SETS = " " ;
}
//
// Timezone settings (>=PHP5.1)
// ============================
if ( function_exists ( " date_default_timezone_set " ) and function_exists ( " date_default_timezone_get " )) {
@ date_default_timezone_set ( @ date_default_timezone_get ());
}
//
// Process post/get parameters
// ===========================
$chkInsName = isset ( $_POST [ 'tfUsername' ]) ? $_POST [ 'tfUsername' ] : " " ;
$chkInsPasswd = isset ( $_POST [ 'tfPassword' ]) ? $_POST [ 'tfPassword' ] : " " ;
$chkLogout = isset ( $_GET [ 'logout' ]) ? htmlspecialchars ( $_GET [ 'logout' ], ENT_QUOTES , 'utf-8' ) : " rr " ;
//
// Define common variables
// =======================
$strErrorMessage = " " ; // All error messages (red)
$strInfoMessage = " " ; // All information messages (green)
$strConsistMessage = " " ; // Consistency message
$tplHeaderVar = " " ;
$chkDomainId = 0 ;
$chkGroupAdm = 0 ;
$intError = 0 ;
$setDBVersion = " unknown " ;
2017-10-20 15:00:08 +02:00
$setFileVersion = " 3.3.0 " ;
2017-05-22 11:24:21 +02:00
//
// Start PHP session
// =================
session_start ();
//
// Check path settings
// ===================
if ( ! isset ( $_SESSION [ 'SETS' ][ 'path' ][ 'base_url' ]) || ! isset ( $_SESSION [ 'SETS' ][ 'path' ][ 'base_path' ])) {
if ( substr_count ( $_SERVER [ 'SCRIPT_NAME' ], " index.php " ) != 0 ) {
$preBasePath = str_replace ( " // " , " / " , dirname ( $_SERVER [ 'SCRIPT_FILENAME' ]) . " / " );
$preBaseURL = str_replace ( " // " , " / " , dirname ( $_SERVER [ 'SCRIPT_NAME' ]) . " / " );
$_SESSION [ 'SETS' ][ 'path' ][ 'base_url' ] = $preBaseURL ;
$_SESSION [ 'SETS' ][ 'path' ][ 'base_path' ] = $preBasePath ;
} else {
header ( " Location: ../index.php " );
exit ;
}
} else {
if ( substr_count ( $_SERVER [ 'SCRIPT_NAME' ], " index.php " ) != 0 ) {
$preBasePath_tmp = str_replace ( " // " , " / " , dirname ( $_SERVER [ 'SCRIPT_FILENAME' ]) . " / " );
$preBaseURL_tmp = str_replace ( " // " , " / " , dirname ( $_SERVER [ 'SCRIPT_NAME' ]) . " / " );
if ( $preBaseURL_tmp != $_SESSION [ 'SETS' ][ 'path' ][ 'base_url' ]) {
$_SESSION [ 'SETS' ][ 'path' ][ 'base_url' ] = $preBaseURL_tmp ;
$_SESSION [ 'SETS' ][ 'path' ][ 'base_path' ] = $preBasePath_tmp ;
}
}
$preBasePath = $_SESSION [ 'SETS' ][ 'path' ][ 'base_path' ];
$preBaseURL = $_SESSION [ 'SETS' ][ 'path' ][ 'base_url' ];
}
//
// Start installer
// ===============
$preIniFile = $preBasePath . 'config/settings.php' ;
if ( ! file_exists ( $preIniFile ) OR ! is_readable ( $preIniFile )) {
header ( " Location: " . $preBaseURL . " install/index.php " );
}
//
// Read file settings
// ==================
$SETS = parse_ini_file ( $preBasePath . 'config/settings.php' , true );
if ( ! isset ( $_SESSION [ 'SETS' ][ 'db' ])) $_SESSION [ 'SETS' ][ 'db' ] = $SETS [ 'db' ];
//
// Include external function/class files - part 1
// ==============================================
2017-10-20 15:00:08 +02:00
include ( " mysqli_class.php " );
2017-05-22 11:24:21 +02:00
require ( " translator.php " );
//
// Initialize classes - part 1
// ===========================
2017-10-20 15:00:08 +02:00
$myDBClass = new mysqlidb ;
$myDBClass -> arrParams = $SETS [ 'db' ];
$myDBClass -> getDatabase ();
2017-05-22 11:24:21 +02:00
if ( $myDBClass -> error == true ) {
2017-10-20 15:00:08 +02:00
$strDBMessage = $myDBClass -> strErrorMessage ;
$booError = $myDBClass -> error ;
2017-05-22 11:24:21 +02:00
}
//
// Get additional configuration from the table tbl_settings
// ========================================================
if ( $intError == 0 ) {
$strSQL = " SELECT `category`,`name`,`value` FROM `tbl_settings` " ;
$booReturn = $myDBClass -> getDataArray ( $strSQL , $arrDataLines , $intDataCount );
if ( $booReturn == false ) {
$strErrorMessage .= translate ( 'Error while selecting data from database:' ) . " :: " . $myDBClass -> strErrorMessage ;
$intError = 1 ;
} else if ( $intDataCount != 0 ) {
if ( isset ( $_SESSION [ 'SETS' ][ 'data' ][ 'locale' ]) && ( $_SESSION [ 'SETS' ][ 'data' ][ 'locale' ] != " " )) $strStoreLanguage = $_SESSION [ 'SETS' ][ 'data' ][ 'locale' ];
// Save additional configuration information
for ( $i = 0 ; $i < $intDataCount ; $i ++ ) {
// We use the path settings from file
if ( $arrDataLines [ $i ][ 'name' ] == 'base_url' ) continue ;
if ( $arrDataLines [ $i ][ 'name' ] == 'base_path' ) continue ;
$SETS [ $arrDataLines [ $i ][ 'category' ]][ $arrDataLines [ $i ][ 'name' ]] = $arrDataLines [ $i ][ 'value' ];
}
if ( isset ( $strStoreLanguage ) && ( $strStoreLanguage != " " )) $SETS [ 'data' ][ 'locale' ] = $strStoreLanguage ;
}
}
//
// Enable PHP gettext functionality
// ================================
if ( $intError == 0 ) {
$arrLocale = explode ( " . " , $SETS [ 'data' ][ 'locale' ]);
$strDomain = $arrLocale [ 0 ];
$strLocale = setlocale ( LC_ALL , $SETS [ 'data' ][ 'locale' ], $SETS [ 'data' ][ 'locale' ] . " .utf-8 " , $SETS [ 'data' ][ 'locale' ] . " .utf-8 " , $SETS [ 'data' ][ 'locale' ] . " .utf8 " , " en_GB " , " en_GB.utf-8 " , " en_GB.utf8 " );
if ( ! isset ( $strLocale )) {
$strErrorMessage .= translate ( " Error in setting the correct locale, please report this error with the associated output of 'locale -a' to bugs@nagiosql.org " ) . " :: " ;
$intError = 1 ;
}
putenv ( " LC_ALL= " . $SETS [ 'data' ][ 'locale' ] . " .utf-8 " );
putenv ( " LANG= " . $SETS [ 'data' ][ 'locale' ] . " .utf-8 " );
bindtextdomain ( $strDomain , $preBasePath . " config/locale " );
bind_textdomain_codeset ( $strDomain , $SETS [ 'data' ][ 'encoding' ]);
textdomain ( $strDomain );
}
//
// Update class data
// =================
$myDBClass -> arrSettings = $SETS ;
//
// Include external function/class files
// =====================================
include ( " nag_class.php " );
include ( " data_class.php " );
include ( " config_class.php " );
include ( " content_class.php " );
require_once ( $preBasePath . 'libraries/pear/HTML/Template/IT.php' );
if ( isset ( $preFieldvars ) && ( $preFieldvars == 1 )) {
require ( $preBasePath . 'config/fieldvars.php' );
}
//
// Check path settings
// ===================
if ( ! isset ( $SETS [ 'path' ][ 'base_path' ]) || ( $preBasePath != $SETS [ 'path' ][ 'base_path' ])) {
$SETS [ 'path' ][ 'base_path' ] = $preBasePath ;
}
if ( ! isset ( $SETS [ 'path' ][ 'base_url' ]) || ( $preBaseURL != $SETS [ 'path' ][ 'base_url' ])) {
$SETS [ 'path' ][ 'base_url' ] = $preBaseURL ;
}
//
// Add data to the session
// =======================
$_SESSION [ 'SETS' ] = $SETS ;
$_SESSION [ 'strLoginMessage' ] = " " ;
$_SESSION [ 'startsite' ] = $_SESSION [ 'SETS' ][ 'path' ][ 'base_url' ] . " admin.php " ;
if ( ! isset ( $_SESSION [ 'logged_in' ])) $_SESSION [ 'logged_in' ] = 0 ;
if ( isset ( $chkLogout ) && ( $chkLogout == " yes " )) {
$_SESSION = array ();
$_SESSION [ 'SETS' ] = $SETS ;
$_SESSION [ 'logged_in' ] = 0 ;
$_SESSION [ 'userid' ] = 0 ;
$_SESSION [ 'groupadm' ] = 0 ;
$_SESSION [ 'strLoginMessage' ] = " " ;
$_SESSION [ 'startsite' ] = $_SESSION [ 'SETS' ][ 'path' ][ 'base_url' ] . " admin.php " ;
// Get default language
$strSQL = " SELECT `value` FROM `tbl_settings` WHERE `category`='data' AND `name`='locale' " ;
$strLocale = $myDBClass -> getFieldData ( $strSQL );
if ( $strLocale != " " ) {
$_SESSION [ 'SETS' ][ 'data' ][ 'locale' ] = $strLocale ;
$SETS [ 'data' ][ 'locale' ] = $strLocale ;
}
$arrLocale = explode ( " . " , $SETS [ 'data' ][ 'locale' ]);
$strDomain = $arrLocale [ 0 ];
$strLocale = setlocale ( LC_ALL , $SETS [ 'data' ][ 'locale' ], $SETS [ 'data' ][ 'locale' ] . " .utf-8 " , $SETS [ 'data' ][ 'locale' ] . " .utf-8 " , $SETS [ 'data' ][ 'locale' ] . " .utf8 " , " en_GB " , " en_GB.utf-8 " , " en_GB.utf8 " );
if ( ! isset ( $strLocale )) {
$strErrorMessage .= translate ( " Error in setting the correct locale, please report this error with the associated output of 'locale -a' to bugs@nagiosql.org " ) . " :: " ;
$intError = 1 ;
}
putenv ( " LC_ALL= " . $SETS [ 'data' ][ 'locale' ] . " .utf-8 " );
putenv ( " LANG= " . $SETS [ 'data' ][ 'locale' ] . " .utf-8 " );
bindtextdomain ( $strDomain , $preBasePath . " config/locale " );
bind_textdomain_codeset ( $strDomain , $SETS [ 'data' ][ 'encoding' ]);
textdomain ( $strDomain );
}
if ( isset ( $_GET [ 'menu' ]) && ( htmlspecialchars ( $_GET [ 'menu' ], ENT_QUOTES , 'utf-8' ) == " visible " )) $_SESSION [ 'menu' ] = " visible " ;
if ( isset ( $_GET [ 'menu' ]) && ( htmlspecialchars ( $_GET [ 'menu' ], ENT_QUOTES , 'utf-8' ) == " invisible " )) $_SESSION [ 'menu' ] = " invisible " ;
//
// Initialize classes
// ==================
$myVisClass = new nagvisual ;
$myDataClass = new nagdata ;
$myConfigClass = new nagconfig ;
$myContentClass = new nagcontent ;
//
// Propagating the classes themselves
// ==================================
$myVisClass -> myDBClass =& $myDBClass ;
$myVisClass -> myDataClass =& $myDataClass ;
$myVisClass -> myConfigClass =& $myConfigClass ;
$myDataClass -> myDBClass =& $myDBClass ;
$myDataClass -> myVisClass =& $myVisClass ;
$myDataClass -> myConfigClass =& $myConfigClass ;
$myConfigClass -> myDBClass =& $myDBClass ;
$myConfigClass -> myVisClass =& $myVisClass ;
$myConfigClass -> myDataClass =& $myDataClass ;
$myContentClass -> myVisClass =& $myVisClass ;
$myContentClass -> myDBClass =& $myDBClass ;
$myContentClass -> myConfigClass =& $myConfigClass ;
if ( isset ( $arrDescription )) $myContentClass -> arrDescription = $arrDescription ;
$strErrorMessage = str_replace ( " :: " , " <br> " , $strErrorMessage );
//
// Version management
// ==================
if ( $intError == 0 ) {
$setDBVersion = $SETS [ 'db' ][ 'version' ];
}
//
// Version check
// =============
if ( version_compare ( $setFileVersion , $setDBVersion , '>' ) AND ( file_exists ( $preBasePath . " install " ) && is_readable ( $preBasePath . " install " ))) {
header ( " Location: " . $_SESSION [ 'SETS' ][ 'path' ][ 'base_url' ] . " install/index.php " );
}
//
// Browser Check
// =============
$preBrowser = $myVisClass -> browserCheck ();
//
// Login process
// ==============
if ( isset ( $_SERVER [ 'REMOTE_USER' ]) && ( $_SERVER [ 'REMOTE_USER' ] != " " ) && ( $_SESSION [ 'logged_in' ] == 0 ) &&
( $chkLogout != " yes " ) && ( $chkInsName == " " )) {
$strSQL = " SELECT * FROM `tbl_user` WHERE `username`=' " . $_SERVER [ 'REMOTE_USER' ] . " ' AND `wsauth`='1' AND `active`='1' " ;
$booReturn = $myDBClass -> getDataArray ( $strSQL , $arrDataUser , $intDataCount );
if ( $booReturn && ( $intDataCount == 1 )) {
// Set session variables
$_SESSION [ 'username' ] = $arrDataUser [ 0 ][ 'username' ];
$_SESSION [ 'userid' ] = $arrDataUser [ 0 ][ 'id' ];
$_SESSION [ 'groupadm' ] = $arrDataUser [ 0 ][ 'admin_enable' ];
$_SESSION [ 'startsite' ] = $_SESSION [ 'SETS' ][ 'path' ][ 'base_url' ] . " admin.php " ;
$_SESSION [ 'timestamp' ] = time ();
$_SESSION [ 'logged_in' ] = 1 ;
$_SESSION [ 'domain' ] = $arrDataUser [ 0 ][ 'domain' ];
// Update language settings
$strSQL = " SELECT `locale` FROM `tbl_language` WHERE `id`=' " . $arrDataUser [ 0 ][ 'language' ] . " ' AND `active`='1' " ;
$strUserLocale = $myDBClass -> getFieldData ( $strSQL );
if ( $strUserLocale != " " ) {
$_SESSION [ 'SETS' ][ 'data' ][ 'locale' ] = $strUserLocale ;
$SETS [ 'data' ][ 'locale' ] = $strUserLocale ;
}
// Update last login time
2017-10-20 15:00:08 +02:00
$strSQLUpdate = " UPDATE `tbl_user` SET `last_login`=NOW() WHERE `username`=' " . $myDBClass -> real_escape ( $chkInsName ) . " ' " ;
2017-05-22 11:24:21 +02:00
$booReturn = $myDBClass -> insertData ( $strSQLUpdate );
$myDataClass -> writeLog ( translate ( 'Webserver login successfull' ));
$_SESSION [ 'strLoginMessage' ] = " " ;
// Redirect to start page
header ( " Location: " . $_SESSION [ 'SETS' ][ 'path' ][ 'protocol' ] . " :// " . $_SERVER [ 'HTTP_HOST' ] . $_SESSION [ 'startsite' ]);
}
}
if (( $_SESSION [ 'logged_in' ] == 0 ) && isset ( $chkInsName ) && ( $chkInsName != " " ) && ( $intError == 0 )) {
2017-10-20 15:00:08 +02:00
$chkInsName = $myDBClass -> real_escape ( $chkInsName );
$chkInsPasswd = $myDBClass -> real_escape ( $chkInsPasswd );
2017-05-22 11:24:21 +02:00
$strSQL = " SELECT * FROM `tbl_user` WHERE `username`=' " . $chkInsName . " '
AND `password` = MD5 ( '".$chkInsPasswd."' ) AND `active` = '1' " ;
$booReturn = $myDBClass -> getDataArray ( $strSQL , $arrDataUser , $intDataCount );
if ( $booReturn == false ) {
$myVisClass -> processMessage ( translate ( 'Error while selecting data from database:' ), $strErrorMessage );
$myVisClass -> processMessage ( $myDBClass -> strErrorMessage , $strErrorMessage );
$_SESSION [ 'strLoginMessage' ] = $strErrorMessage ;
} else if ( $intDataCount == 1 ) {
// Set session variables
$_SESSION [ 'username' ] = $arrDataUser [ 0 ][ 'username' ];
$_SESSION [ 'userid' ] = $arrDataUser [ 0 ][ 'id' ];
$_SESSION [ 'groupadm' ] = $arrDataUser [ 0 ][ 'admin_enable' ];
$_SESSION [ 'startsite' ] = $_SESSION [ 'SETS' ][ 'path' ][ 'base_url' ] . " admin.php " ;
$_SESSION [ 'timestamp' ] = time ();
$_SESSION [ 'logged_in' ] = 1 ;
$_SESSION [ 'domain' ] = $arrDataUser [ 0 ][ 'domain' ];
// Update language settings
$strSQL = " SELECT `locale` FROM `tbl_language` WHERE `id`=' " . $arrDataUser [ 0 ][ 'language' ] . " ' AND `active`='1' " ;
$strUserLocale = $myDBClass -> getFieldData ( $strSQL );
if ( $strUserLocale != " " ) {
$_SESSION [ 'SETS' ][ 'data' ][ 'locale' ] = $strUserLocale ;
$SETS [ 'data' ][ 'locale' ] = $strUserLocale ;
}
// Update last login time
2017-10-20 15:00:08 +02:00
$strSQLUpdate = " UPDATE `tbl_user` SET `last_login`=NOW() WHERE `username`=' " . $myDBClass -> real_escape ( $chkInsName ) . " ' " ;
2017-05-22 11:24:21 +02:00
$booReturn = $myDBClass -> insertData ( $strSQLUpdate );
$myDataClass -> writeLog ( translate ( 'Login successfull' ));
$_SESSION [ 'strLoginMessage' ] = " " ;
// Redirect to start page
header ( " Location: " . $_SESSION [ 'SETS' ][ 'path' ][ 'protocol' ] . " :// " . $_SERVER [ 'HTTP_HOST' ] . $_SESSION [ 'startsite' ]);
} else {
$_SESSION [ 'strLoginMessage' ] = translate ( 'Login failed!' );
$myDataClass -> writeLog ( translate ( 'Login failed!' ) . " - Username: " . $chkInsName );
$preNoMain = 0 ;
}
}
if (( $_SESSION [ 'logged_in' ] == 0 ) && ( ! isset ( $intPageID ) || ( $intPageID != 0 )) && ( ! isset ( $chkInsName ) || ( $chkInsName == " " ))) {
header ( " Location: " . $_SESSION [ 'SETS' ][ 'path' ][ 'protocol' ] . " :// " . $_SERVER [ 'HTTP_HOST' ] . $_SESSION [ 'SETS' ][ 'path' ][ 'base_url' ] . " index.php " );
}
if ( ! isset ( $_SESSION [ 'userid' ]) && ( $_SESSION [ 'logged_in' ] == 1 )) {
$_SESSION [ 'logged_in' ] = 0 ;
header ( " Location: " . $_SESSION [ 'SETS' ][ 'path' ][ 'protocol' ] . " :// " . $_SERVER [ 'HTTP_HOST' ] . $_SESSION [ 'SETS' ][ 'path' ][ 'base_url' ] . " index.php " );
}
//
// Review and update login
// =======================
if (( $_SESSION [ 'logged_in' ] == 1 ) && ( $intError == 0 )) {
2017-10-20 15:00:08 +02:00
$strSQL = " SELECT * FROM `tbl_user` WHERE `username`=' " . $myDBClass -> real_escape ( $_SESSION [ 'username' ]) . " ' " ;
2017-05-22 11:24:21 +02:00
$booReturn = $myDBClass -> getDataArray ( $strSQL , $arrDataUser , $intDataCount );
if ( $booReturn == false ) {
$myVisClass -> processMessage ( translate ( 'Error while selecting data from database:' ), $strErrorMessage );
$myVisClass -> processMessage ( $myDBClass -> strErrorMessage , $strErrorMessage );
} else if ( $intDataCount == 1 ) {
// Time expired?
if ( time () - $_SESSION [ 'timestamp' ] > $_SESSION [ 'SETS' ][ 'security' ][ 'logofftime' ]) {
// Force new login
$myDataClass -> writeLog ( translate ( 'Session timeout reached - Seconds:' ) . " " . ( time () - $_SESSION [ 'timestamp' ] . " - User: " . $_SESSION [ 'username' ]));
$_SESSION [ 'logged_in' ] = 0 ;
header ( " Location: " . $_SESSION [ 'SETS' ][ 'path' ][ 'protocol' ] . " :// " . $_SERVER [ 'HTTP_HOST' ] . $_SESSION [ 'SETS' ][ 'path' ][ 'base_url' ] . " index.php " );
} else {
// Check rights
if ( isset ( $preAccess ) && ( $preAccess == 1 ) && ( isset ( $prePageId ) && ( $prePageId != 0 ))) {
$strKey = $myDBClass -> getFieldData ( " SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`= $prePageId " );
$intResult = $myVisClass -> checkAccGroup ( $strKey , 'read' );
// If no rights - redirect to index page
if ( $intResult != 0 ) {
$myDataClass -> writeLog ( translate ( 'Restricted site accessed:' ) . " " . filter_var ( $_SERVER [ 'PHP_SELF' ], FILTER_SANITIZE_STRING ));
header ( " Location: " . $_SESSION [ 'SETS' ][ 'path' ][ 'protocol' ] . " :// " . $_SERVER [ 'HTTP_HOST' ] . $_SESSION [ 'SETS' ][ 'path' ][ 'base_url' ] . " index.php " );
}
}
// Update login time
$_SESSION [ 'timestamp' ] = time ();
if ( isset ( $preContent ) && ( $preContent == " index.tpl.htm " )) {
header ( " Location: " . $_SESSION [ 'SETS' ][ 'path' ][ 'protocol' ] . " :// " . $_SERVER [ 'HTTP_HOST' ] . $_SESSION [ 'startsite' ]);
}
}
} else {
// Force new login
$myDataClass -> writeLog ( translate ( 'User not found in database' ));
$_SESSION [ 'logged_in' ] = 0 ;
header ( " Location: " . $_SESSION [ 'SETS' ][ 'path' ][ 'protocol' ] . " :// " . $_SERVER [ 'HTTP_HOST' ] . $_SESSION [ 'SETS' ][ 'path' ][ 'base_url' ] . " index.php " );
}
}
//
// Check access to current site
// ============================
if ( isset ( $prePageId ) && ( $prePageId != 1 )) {
if ( ! isset ( $_SESSION [ 'userid' ])) {
header ( " Location: " . $_SESSION [ 'SETS' ][ 'path' ][ 'protocol' ] . " :// " . $_SERVER [ 'HTTP_HOST' ] . $_SESSION [ 'SETS' ][ 'path' ][ 'base_url' ] . " index.php " );
}
$strSQL = " SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`= $prePageId " ;
$prePageKey = $myDBClass -> getFieldData ( $strSQL ) + 0 ;
if ( $myVisClass -> checkAccGroup ( $prePageKey , 'read' ) != 0 ) {
header ( " Location: " . $_SESSION [ 'SETS' ][ 'path' ][ 'protocol' ] . " :// " . $_SERVER [ 'HTTP_HOST' ] . $_SESSION [ 'startsite' ]);
}
}
//
// Insert main template
// ====================
if ( isset ( $preContent ) && ( $preContent != " " ) && ( ! isset ( $preNoMain ) || ( $preNoMain != 1 ))) {
$arrTplOptions = array ( 'use_preg' => false );
$maintp = new HTML_Template_IT ( $preBasePath . " templates/ " );
$maintp -> loadTemplatefile ( " main.tpl.htm " , true , true );
$maintp -> setOptions ( $arrTplOptions );
$maintp -> setVariable ( " META_DESCRIPTION " , " NagiosQL System Monitoring Administration Tool " );
$maintp -> setVariable ( " AUTHOR " , " NagiosQL Team " );
$maintp -> setVariable ( " LANGUAGE " , " de " );
$maintp -> setVariable ( " PUBLISHER " , " www.nagiosql.org " );
if ( $_SESSION [ 'logged_in' ] == 1 ) {
$maintp -> setVariable ( " ADMIN " , " <a href= \" " . $_SESSION [ 'SETS' ][ 'path' ][ 'base_url' ] . " admin.php \" class= \" top-link \" > " . translate ( 'Administration' ) . " </a> " );
//$maintp->setVariable("PLUGINS","<a href=\"".$_SESSION['SETS']['path']['base_url']."/plugin.php\" class=\"top-link\">".translate('Plugins')."</a>");
}
$maintp -> setVariable ( " BASE_PATH " , $_SESSION [ 'SETS' ][ 'path' ][ 'base_url' ]);
$maintp -> setVariable ( " ROBOTS " , " noindex,nofollow " );
$maintp -> setVariable ( " PAGETITLE " , " NagiosQL - Version " . $setDBVersion );
$maintp -> setVariable ( " IMAGEDIR " , $_SESSION [ 'SETS' ][ 'path' ][ 'base_url' ] . " images/ " );
if ( isset ( $prePageId ) && ( $intError == 0 )) $maintp -> setVariable ( " POSITION " , $myVisClass -> getPosition ( $prePageId , translate ( 'Admin' )));
$maintp -> parse ( " header " );
$tplHeaderVar = $maintp -> get ( " header " );
//
// Read domain list
// ================
if (( $_SESSION [ 'logged_in' ] == 1 ) && ( $intError == 0 )) {
$intDomain = isset ( $_POST [ 'selDomain' ]) ? $_POST [ 'selDomain' ] : - 1 ;
if ( $intDomain != - 1 ) {
$_SESSION [ 'domain' ] = $intDomain ;
$myVisClass -> intDomainId = $intDomain ;
$myDataClass -> intDomainId = $intDomain ;
$myConfigClass -> intDomainId = $intDomain ;
$myContentClass -> intDomainId = $intDomain ;
}
$strSQL = " SELECT * FROM `tbl_datadomain` WHERE `active` <> '0' ORDER BY `domain` " ;
$booReturn = $myDBClass -> getDataArray ( $strSQL , $arrDataDomain , $intDataCount );
if ( $booReturn == false ) {
$myVisClass -> processMessage ( translate ( 'Error while selecting data from database:' ), $strErrorMessage );
$myVisClass -> processMessage ( $myDBClass -> strErrorMessage , $strErrorMessage );
} else {
$intDomain = 0 ;
if ( $intDataCount > 0 ) {
foreach ( $arrDataDomain AS $elem ) {
$intIsDomain = 0 ;
// Check access rights
if ( $myVisClass -> checkAccGroup ( $elem [ 'access_group' ], 'read' ) == 0 ) {
$maintp -> setVariable ( " DOMAIN_VALUE " , $elem [ 'id' ]);
$maintp -> setVariable ( " DOMAIN_TEXT " , $elem [ 'domain' ]);
if ( isset ( $_SESSION [ 'domain' ]) && ( $_SESSION [ 'domain' ] == $elem [ 'id' ])) {
$maintp -> setVariable ( " DOMAIN_SELECTED " , " selected " );
$intDomain = $elem [ 'id' ];
$intIsDomain = 1 ;
}
if ( $intDomain == - 1 ) {
$intDomain = $elem [ 'id' ];
$intIsDomain = 1 ;
}
$maintp -> parse ( " domainsel " );
}
if ( $intIsDomain == 0 ) {
// Select available an domain
$strDomAcc = $myVisClass -> getAccGroups ( 'read' );
$strSQL = " SELECT id FROM `tbl_datadomain` WHERE `active` <> '0' AND `access_group` IN ( " . $strDomAcc . " ) ORDER BY domain LIMIT 1 " ;
$booReturn = $myDBClass -> getDataArray ( $strSQL , $arrDataDomain , $intDataCount );
if ( $booReturn == false ) {
$myVisClass -> processMessage ( translate ( 'Error while selecting data from database:' ), $strErrorMessage );
$myVisClass -> processMessage ( $myDBClass -> strErrorMessage , $strErrorMessage );
} else {
if ( $intDataCount != 0 ) $intDomain = $arrDataDomain [ 0 ][ 'id' ];
}
}
}
$maintp -> setVariable ( " DOMAIN_INFO " , translate ( " Domain " ) . " : " );
$maintp -> parse ( " dselect " );
$tplHeaderVar .= $maintp -> get ( " dselect " );
}
}
}
//
// Show login information
// ======================
if ( $_SESSION [ 'logged_in' ] == 1 ) {
$maintp -> setVariable ( " LOGIN_INFO " , translate ( 'Logged in:' ) . " " . $_SESSION [ 'username' ]);
$maintp -> setVariable ( " LOGOUT_INFO " , " <a href= \" " . $_SESSION [ 'SETS' ][ 'path' ][ 'base_url' ] . " index.php?logout=yes \" > " . translate ( 'Logout' ) . " </a> " );
} else {
$maintp -> setVariable ( " LOGOUT_INFO " , " " );
}
//
// Build content menu
// ==================
if ( isset ( $prePageId ) && ( $prePageId != 0 )) $maintp -> setVariable ( " MAINMENU " , $myVisClass -> getMenu ( $prePageId ));
$maintp -> parse ( " header2 " );
$tplHeaderVar .= $maintp -> get ( " header2 " );
if ( ! isset ( $preShowHeader ) || $preShowHeader == 1 ) {
echo $tplHeaderVar ;
}
}
//
// Insert content and master template
// ======================================
if ( isset ( $preContent ) && ( $preContent != " " )) {
$arrTplOptions = array ( 'use_preg' => false );
if ( ! file_exists ( $preBasePath . " templates/ " . $preContent ) || ! is_readable ( $preBasePath . " templates/ " . $preContent )) {
echo " <span style= \" color:#F00 \" > " . translate ( 'Warning - template file not found or not readable, please check your file permissions! - File: ' );
echo str_replace ( " // " , " / " , $preBasePath . " templates/ " . $preContent ) . " </span><br> " ;
exit ;
}
$conttp = new HTML_Template_IT ( $preBasePath . " templates/ " );
$conttp -> loadTemplatefile ( $preContent , true , true );
$conttp -> setOptions ( $arrTplOptions );
$strRootPath = $_SESSION [ 'SETS' ][ 'path' ][ 'base_url' ];
if ( substr ( $strRootPath , - 1 ) != " / " ) {
$conttp -> setVariable ( " BASE_PATH " , $strRootPath );
$conttp -> setVariable ( " IMAGE_PATH " , $strRootPath . " images/ " );
} else {
$conttp -> setVariable ( " BASE_PATH " , $strRootPath );
$conttp -> setVariable ( " IMAGE_PATH " , $strRootPath . " images/ " );
}
$mastertp = new HTML_Template_IT ( $preBasePath . " templates/ " );
$mastertp -> loadTemplatefile ( " admin/admin_master.tpl.htm " , true , true );
$mastertp -> setOptions ( $arrTplOptions );
} elseif ( isset ( $pluginTemplate ) && ( $pluginTemplate != " " )) {
//
// Insert Plugin Template
// ======================
$arrTplOptions = array ( 'use_preg' => false );
$conttp = new HTML_Template_IT ( $preBasePath . " plugins/ " . $pluginType . " / " . $pluginName . " /templates/default/ " );
$conttp -> loadTemplatefile ( $pluginTemplate , true , true );
$conttp -> setOptions ( $arrTplOptions );
$strRootPath = $_SESSION [ 'SETS' ][ 'path' ][ 'base_url' ];
if ( substr ( $strRootPath , - 1 ) != " / " ) {
$conttp -> setVariable ( " BASE_PATH " , $strRootPath . " /plugins/ " . $pluginType . " / " . $pluginName . " / " );
$conttp -> setVariable ( " IMAGE_PATH " , $strRootPath . " /plugins/ " . $pluginType . " / " . $pluginName . " /images/ " );
} else {
$conttp -> setVariable ( " BASE_PATH " , $strRootPath . " /plugins/ " . $pluginType . " / " . $pluginName . " / " );
$conttp -> setVariable ( " IMAGE_PATH " , $strRootPath . " /plugins/ " . $pluginType . " / " . $pluginName . " /images/ " );
}
$mastertp = new HTML_Template_IT ( $preBasePath . " templates/ " );
$mastertp -> loadTemplatefile ( " admin/admin_master.tpl.htm " , true , true );
$mastertp -> setOptions ( $arrTplOptions );
}
//
// Process standard get/post parameters
// ====================================
$arrSortDir = array ( " ASC " , " DESC " );
$arrSortBy = array ( " 1 " , " 2 " );
$chkModus = isset ( $_GET [ 'modus' ]) ? htmlspecialchars ( $_GET [ 'modus' ], ENT_QUOTES , 'utf-8' ) : " display " ;
$chkModus = isset ( $_POST [ 'modus' ]) ? htmlspecialchars ( $_POST [ 'modus' ], ENT_QUOTES , 'utf-8' ) : " display " ;
$chkHidModify = isset ( $_POST [ 'hidModify' ]) ? htmlspecialchars ( $_POST [ 'hidModify' ], ENT_QUOTES , 'utf-8' ) : " " ;
$chkSelModify = isset ( $_POST [ 'selModify' ]) ? htmlspecialchars ( $_POST [ 'selModify' ], ENT_QUOTES , 'utf-8' ) : " " ;
$hidSortDir = ( isset ( $_POST [ 'hidSortDir' ]) && in_array ( $_POST [ 'hidSortDir' ], $arrSortDir )) ? $_POST [ 'hidSortDir' ] : " ASC " ;
$hidSortBy = ( isset ( $_POST [ 'hidSortBy' ]) && in_array ( $_POST [ 'hidSortBy' ], $arrSortBy )) ? $_POST [ 'hidSortBy' ] : 1 ;
$chkLimit = isset ( $_POST [ 'hidLimit' ]) ? $_POST [ 'hidLimit' ] + 0 : 0 ;
$chkSelTargetDomain = isset ( $_POST [ 'selTargetDomain' ]) ? $_POST [ 'selTargetDomain' ] + 0 : 0 ;
$chkListId = isset ( $_POST [ 'hidListId' ]) ? $_POST [ 'hidListId' ] + 0 : 0 ;
$chkDataId = isset ( $_POST [ 'hidId' ]) ? $_POST [ 'hidId' ] + 0 : 0 ;
$chkActive = isset ( $_POST [ 'chbActive' ]) ? $_POST [ 'chbActive' ] + 0 : 0 ;
$chkRegister = isset ( $_POST [ 'chbRegister' ]) ? $_POST [ 'chbRegister' ] + 0 : 0 ;
$hidActive = isset ( $_POST [ 'hidActive' ]) ? $_POST [ 'hidActive' ] + 0 : 0 ;
$hidSort = isset ( $_POST [ 'hidSort' ]) ? $_POST [ 'hidSort' ] + 0 : 0 ;
$chkStatus = isset ( $_POST [ 'hidStatus' ]) ? $_POST [ 'hidStatus' ] + 0 : 0 ;
if ( isset ( $_GET [ 'orderby' ]) && ( $_GET [ 'orderby' ] != " " )) $hidSortBy = $_GET [ 'orderby' ];
if ( isset ( $_GET [ 'orderdir' ]) && ( $_GET [ 'orderdir' ] != " " )) $hidSortDir = $_GET [ 'orderdir' ];
//
// Setting some variables
// ======================
if ( $chkModus == " add " ) $chkSelModify = " " ;
if ( $chkHidModify != " " ) $chkSelModify = $chkHidModify ;
if ( isset ( $_GET [ 'limit' ])) $chkLimit = htmlspecialchars ( $_GET [ 'limit' ], ENT_QUOTES , 'utf-8' );
if ( isset ( $_SESSION [ 'domain' ])) $chkDomainId = $_SESSION [ 'domain' ];
if ( isset ( $_SESSION [ 'groupadm' ])) $chkGroupAdm = $_SESSION [ 'groupadm' ];
if ( isset ( $_SESSION [ 'strLoginMessage' ])) $_SESSION [ 'strLoginMessage' ] .= $strErrorMessage ;
$myConfigClass -> getDomainData ( " version " , $intVersion );
$myConfigClass -> getDomainData ( " enable_common " , $setEnableCommon );
if ( isset ( $preTableName )) {
if ( $setEnableCommon != 0 ) {
$strDomainWhere = " (` $preTableName `.`config_id`= $chkDomainId OR ` $preTableName `.`config_id`=0) " ;
$strDomainWhere2 = " (`config_id`= $chkDomainId OR `config_id`=0) " ;
} else {
$strDomainWhere = " (` $preTableName `.`config_id`= $chkDomainId ) " ;
$strDomainWhere2 = " (`config_id`= $chkDomainId ) " ;
}
}
// Row sort variables
if ( $hidSortDir == " ASC " ) { $setSortDir = " DESC " ; } else { $setSortDir = " ASC " ; }
if ( isset ( $preContent ) && ( $preContent != " " )) {
if ( $hidSortBy == 2 ) {
$mastertp -> setVariable ( " SORT_IMAGE_1 " , " " );
} else {
$hidSortBy = 1 ;
$mastertp -> setVariable ( " SORT_IMAGE_2 " , " " );
}
$setSortPicture = $_SESSION [ 'SETS' ][ 'path' ][ 'base_url' ] . " images/sort_ " . strtolower ( $hidSortDir ) . " .png " ;
$mastertp -> setVariable ( " SORT_DIR_ " . $hidSortBy , $setSortDir );
$mastertp -> setVariable ( " SORT_IMAGE_ " . $hidSortBy , " <img src= \" $setSortPicture\ " alt = \ " $hidSortDir\ " title = \ " $hidSortDir\ " width = \ " 15 \" height= \" 14 \" border= \" 0 \" > " );
$mastertp -> setVariable ( " SORT_DIR " , $hidSortDir );
$mastertp -> setVariable ( " SORT_BY " , $hidSortBy );
}
//
// Set class variables
// ===================
if ( isset ( $preContent ) && ( $preContent != " " )) {
$myVisClass -> myContentTpl = $conttp ;
$myVisClass -> dataId = $chkListId ;
}
?>