commit | author | age
|
532ae5
|
1 |
<?php |
L |
2 |
|
|
3 |
/* |
|
4 |
Copyright (c) 2007, Till Brehm, projektfarm Gmbh |
|
5 |
All rights reserved. |
|
6 |
|
|
7 |
Redistribution and use in source and binary forms, with or without modification, |
|
8 |
are permitted provided that the following conditions are met: |
|
9 |
|
|
10 |
* Redistributions of source code must retain the above copyright notice, |
|
11 |
this list of conditions and the following disclaimer. |
|
12 |
* Redistributions in binary form must reproduce the above copyright notice, |
|
13 |
this list of conditions and the following disclaimer in the documentation |
|
14 |
and/or other materials provided with the distribution. |
|
15 |
* Neither the name of ISPConfig nor the names of its contributors |
|
16 |
may be used to endorse or promote products derived from this software without |
|
17 |
specific prior written permission. |
|
18 |
|
|
19 |
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND |
|
20 |
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
|
21 |
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
|
22 |
IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, |
|
23 |
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
|
24 |
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
|
25 |
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY |
|
26 |
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
|
27 |
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, |
|
28 |
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|
29 |
*/ |
|
30 |
|
7fe908
|
31 |
require_once '../lib/config.inc.php'; |
MC |
32 |
require_once '../lib/app.inc.php'; |
532ae5
|
33 |
|
552714
|
34 |
//* Import module variable |
532ae5
|
35 |
$mod = $_REQUEST["mod"]; |
4c28d9
|
36 |
//* If we click on a search result, load that one instead of the module's start page |
F |
37 |
$redirect = (isset($_REQUEST["redirect"]) ? $_REQUEST["redirect"] : ''); |
532ae5
|
38 |
|
552714
|
39 |
//* Check if user is logged in |
532ae5
|
40 |
if($_SESSION["s"]["user"]['active'] != 1) { |
bf7d95
|
41 |
die("URL_REDIRECT: /index.php"); |
F |
42 |
//die(); |
532ae5
|
43 |
} |
4c28d9
|
44 |
|
F |
45 |
if(!preg_match("/^[a-z]{2,20}$/i", $mod)) die('module name contains unallowed chars.'); |
a6f6b6
|
46 |
if($redirect != '' && !preg_match("/^[a-z0-9]+\/[a-z0-9_\.\-]+\?id=[0-9]{1,9}$/i", $redirect)) die('redirect contains unallowed chars.'); |
532ae5
|
47 |
|
552714
|
48 |
//* Check if user may use the module. |
7fe908
|
49 |
$user_modules = explode(",", $_SESSION["s"]["user"]["modules"]); |
532ae5
|
50 |
|
7fe908
|
51 |
if(!in_array($mod, $user_modules)) $app->error($app->lng(301)); |
532ae5
|
52 |
|
552714
|
53 |
//* Load module configuration into the session. |
532ae5
|
54 |
if(is_file($mod."/lib/module.conf.php")) { |
7fe908
|
55 |
include_once $mod."/lib/module.conf.php"; |
f699a2
|
56 |
|
7fe908
|
57 |
$menu_dir = ISPC_WEB_PATH.'/' . $mod . '/lib/menu.d'; |
MC |
58 |
|
|
59 |
if (is_dir($menu_dir)) { |
|
60 |
if ($dh = opendir($menu_dir)) { |
|
61 |
//** Go through all files in the menu dir |
|
62 |
while (($file = readdir($dh)) !== false) { |
|
63 |
if ($file != '.' && $file != '..' && substr($file, -9, 9) == '.menu.php' && $file != 'dns_resync.menu.php') { |
|
64 |
include_once $menu_dir . '/' . $file; |
|
65 |
} |
|
66 |
} |
|
67 |
} |
|
68 |
} |
|
69 |
|
|
70 |
$_SESSION["s"]["module"] = $module; |
db646d
|
71 |
session_write_close(); |
4c28d9
|
72 |
if($redirect == ''){ |
F |
73 |
echo "HEADER_REDIRECT:".$_SESSION["s"]["module"]["startpage"]; |
|
74 |
} else { |
|
75 |
//* If we click on a search result, load that one instead of the module's start page |
|
76 |
echo "HEADER_REDIRECT:".$redirect; |
|
77 |
} |
532ae5
|
78 |
} else { |
L |
79 |
$app->error($app->lng(302)); |
|
80 |
} |
7fe908
|
81 |
?> |