From ebd0e986ed11f2a34fb58cdd33efbfab192083ad Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Fri, 22 Apr 2016 05:26:17 -0400
Subject: [PATCH] Added PHP 7 check in installer and updater.

---
 interface/web/capp.php |   54 +++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 41 insertions(+), 13 deletions(-)

diff --git a/interface/web/capp.php b/interface/web/capp.php
index 041e79d..3939269 100644
--- a/interface/web/capp.php
+++ b/interface/web/capp.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -28,26 +28,54 @@
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-require_once('../lib/config.inc.php');
-require_once('../lib/app.inc.php');
+require_once '../lib/config.inc.php';
+require_once '../lib/app.inc.php';
 
-// importiere Modul
+//* Import module variable
 $mod = $_REQUEST["mod"];
+//* If we click on a search result, load that one instead of the module's start page
+$redirect = (isset($_REQUEST["redirect"]) ? $_REQUEST["redirect"] : '');
 
-// Checke ob User eingeloggt
-if(!is_array($_SESSION["s"]["user"])) header("Location: index.php?phpsessid=".$_SESSION["s"]["id"]);
+//* Check if user is logged in
+if($_SESSION["s"]["user"]['active'] != 1) {
+	die("URL_REDIRECT: /index.php");
+	//die();
+}
 
-// checke ob User Modul verwenden darf
-$user_modules = explode(",",$_SESSION["s"]["user"]["modules"]);
+if(!preg_match("/^[a-z]{2,20}$/i", $mod)) die('module name contains unallowed chars.');
+if($redirect != '' && !preg_match("/^[a-z0-9]+\/[a-z0-9_\.\-]+\?id=[0-9]{1,9}$/i", $redirect)) die('redirect contains unallowed chars.');
 
-if(!in_array($mod,$user_modules)) $app->error($app->lng(301));
+//* Check if user may use the module.
+$user_modules = explode(",", $_SESSION["s"]["user"]["modules"]);
 
-// lade Moduldaten in Session
+if(!in_array($mod, $user_modules)) $app->error($app->lng(301));
+
+//* Load module configuration into the session.
 if(is_file($mod."/lib/module.conf.php")) {
-	include_once($mod."/lib/module.conf.php");
+	include_once $mod."/lib/module.conf.php";
+
+	$menu_dir = ISPC_WEB_PATH.'/' . $mod . '/lib/menu.d';
+
+	if (is_dir($menu_dir)) {
+		if ($dh = opendir($menu_dir)) {
+			//** Go through all files in the menu dir
+			while (($file = readdir($dh)) !== false) {
+				if ($file != '.' && $file != '..' && substr($file, -9, 9) == '.menu.php' && $file != 'dns_resync.menu.php') {
+					include_once $menu_dir . '/' . $file;
+				}
+			}
+		}
+	}
+
 	$_SESSION["s"]["module"] = $module;
-	echo "HEADER_REDIRECT:".$_SESSION["s"]["module"]["startpage"];
+	session_write_close();
+	if($redirect == ''){
+		echo "HEADER_REDIRECT:".$_SESSION["s"]["module"]["startpage"];
+	} else {
+		//* If we click on a search result, load that one instead of the module's start page
+		echo "HEADER_REDIRECT:".$redirect;
+	}
 } else {
 	$app->error($app->lng(302));
 }
-?>
\ No newline at end of file
+?>

--
Gitblit v1.9.1