From 91624b8a2d8bad8a729e1f5da852829d664d27ab Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Fri, 10 Sep 2010 07:58:47 -0400
Subject: [PATCH] Added the configuration variable $conf['demo_mode'] in the config.inc.php file. It disables the newly introduced demo mode which limits certain actions in the interface part of ispconfig: the demo mode can be used to run the ispconfig interface part as online demo.
---
interface/web/admin/remote_user_edit.php | 3 +
interface/web/admin/server_config_del.php | 1
interface/web/admin/users_del.php | 1
install/tpl/config.inc.php.master | 9 ++++
interface/web/admin/language_add.php | 1
interface/web/designer/module_edit.php | 1
interface/web/admin/software_repo_edit.php | 1
interface/web/designer/module_nav_flip.php | 1
interface/web/admin/language_edit.php | 1
interface/web/client/client_edit.php | 6 +-
interface/web/admin/language_complete.php | 1
interface/web/designer/module_nav_edit.php | 1
interface/web/admin/server_config_edit.php | 16 ++++---
interface/web/admin/software_repo_del.php | 1
interface/web/client/reseller_del.php | 2 +
interface/web/admin/language_export.php | 1
interface/web/client/client_del.php | 1
interface/web/client/reseller_edit.php | 6 +-
interface/web/admin/server_del.php | 1
interface/web/admin/users_edit.php | 2 +
interface/web/admin/language_import.php | 1
interface/web/designer/module_nav_item_del.php | 1
interface/web/designer/module_nav_item_flip.php | 1
interface/lib/config.inc.php | 9 ++++
interface/web/designer/module_nav_item_edit.php | 1
interface/web/remote/index.php | 2 +
interface/web/admin/system_config_edit.php | 4 +-
interface/web/designer/form_edit.php | 1
interface/web/designer/module_nav_del.php | 1
interface/web/tools/user_settings.php | 2 +
30 files changed, 65 insertions(+), 15 deletions(-)
diff --git a/install/tpl/config.inc.php.master b/install/tpl/config.inc.php.master
index 4c8e03b..1bcdcad 100644
--- a/install/tpl/config.inc.php.master
+++ b/install/tpl/config.inc.php.master
@@ -117,6 +117,15 @@
//** Interface
$conf['interface_modules_enabled'] = 'dashboard,mail,sites,dns,tools';
+//** Demo mode
+/* The demo mode is an option to restrict certain actions in the interface like
+* changing the password of users with sys_userid < 3 etc. to be
+* able to run the ISPConfig interface as online demo. It does not
+* affect the server part. The demo mode should be always set to false
+* on every normal installation
+*/
+$conf['demo_mode'] = false;
+
//** Logging
$conf["log_file"] = $conf["logpath"].$conf["fs_div"]."ispconfig.log";
diff --git a/interface/lib/config.inc.php b/interface/lib/config.inc.php
index 26cfd03..0cb07a4 100644
--- a/interface/lib/config.inc.php
+++ b/interface/lib/config.inc.php
@@ -103,6 +103,15 @@
//** Interface
$conf['interface_modules_enabled'] = 'dashboard,mail,sites,dns,tools';
+//** Demo mode
+/* The demo mode is an option to restrict certain actions in the interface like
+* changing the password of users with sys_userid < 3 etc. to be
+* able to run the ISPConfig interface as online demo. It does not
+* affect the server part. The demo mode should be always set to false
+* on every normal installation
+*/
+$conf['demo_mode'] = false;
+
//** Logging
$conf["log_file"] = '/var/log/ispconfig/ispconfig.log';
diff --git a/interface/web/admin/language_add.php b/interface/web/admin/language_add.php
index f3fd93f..a296171 100644
--- a/interface/web/admin/language_add.php
+++ b/interface/web/admin/language_add.php
@@ -35,6 +35,7 @@
//* This is only allowed for administrators
if(!$app->auth->is_admin()) die('only allowed for administrators.');
+if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.');
$app->uses('tpl');
diff --git a/interface/web/admin/language_complete.php b/interface/web/admin/language_complete.php
index 7ae926f..1ac6988 100644
--- a/interface/web/admin/language_complete.php
+++ b/interface/web/admin/language_complete.php
@@ -32,6 +32,7 @@
//* Check permissions for module
$app->auth->check_module_permissions('admin');
+if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.');
//* This is only allowed for administrators
if(!$app->auth->is_admin()) die('only allowed for administrators.');
diff --git a/interface/web/admin/language_edit.php b/interface/web/admin/language_edit.php
index e4a9dc3..f16ea68 100644
--- a/interface/web/admin/language_edit.php
+++ b/interface/web/admin/language_edit.php
@@ -35,6 +35,7 @@
//* This is only allowed for administrators
if(!$app->auth->is_admin()) die('only allowed for administrators.');
+if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.');
$app->uses('tpl');
diff --git a/interface/web/admin/language_export.php b/interface/web/admin/language_export.php
index d252073..5c192c3 100644
--- a/interface/web/admin/language_export.php
+++ b/interface/web/admin/language_export.php
@@ -35,6 +35,7 @@
//* This is only allowed for administrators
if(!$app->auth->is_admin()) die('only allowed for administrators.');
+if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.');
$app->uses('tpl');
diff --git a/interface/web/admin/language_import.php b/interface/web/admin/language_import.php
index 10c128e..0ca1111 100644
--- a/interface/web/admin/language_import.php
+++ b/interface/web/admin/language_import.php
@@ -35,6 +35,7 @@
//* This is only allowed for administrators
if(!$app->auth->is_admin()) die('only allowed for administrators.');
+if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.');
$app->uses('tpl');
diff --git a/interface/web/admin/remote_user_edit.php b/interface/web/admin/remote_user_edit.php
index cadee47..a99e983 100644
--- a/interface/web/admin/remote_user_edit.php
+++ b/interface/web/admin/remote_user_edit.php
@@ -13,6 +13,9 @@
die;
}
+// Disable this function in demo mode
+if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.');
+
// Load the templating and form classes
$app->uses('tpl,tform,tform_actions');
$app->load('tform_actions');
diff --git a/interface/web/admin/server_config_del.php b/interface/web/admin/server_config_del.php
index 67c0096..7b30ea3 100644
--- a/interface/web/admin/server_config_del.php
+++ b/interface/web/admin/server_config_del.php
@@ -44,6 +44,7 @@
//* Check permissions for module
$app->auth->check_module_permissions('admin');
+if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.');
$app->uses("tform_actions");
$app->tform_actions->onDelete();
diff --git a/interface/web/admin/server_config_edit.php b/interface/web/admin/server_config_edit.php
index 1f71ef7..c034da1 100644
--- a/interface/web/admin/server_config_edit.php
+++ b/interface/web/admin/server_config_edit.php
@@ -71,19 +71,21 @@
}
function onUpdateSave($sql) {
- global $app;
+ global $app,$conf;
if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges');
$app->uses('ini_parser,getconf');
- $section = $app->tform->getCurrentTab();
- $server_id = $this->id;
+ if($conf['demo_mode'] != true) {
+ $section = $app->tform->getCurrentTab();
+ $server_id = $this->id;
- $server_config_array = $app->getconf->get_server_config($server_id);
- $server_config_array[$section] = $app->tform->encode($this->dataRecord,$section);
- $server_config_str = $app->ini_parser->get_ini_string($server_config_array);
+ $server_config_array = $app->getconf->get_server_config($server_id);
+ $server_config_array[$section] = $app->tform->encode($this->dataRecord,$section);
+ $server_config_str = $app->ini_parser->get_ini_string($server_config_array);
- $app->db->datalogUpdate('server', "config = '".$app->db->quote($server_config_str)."'", 'server_id', $server_id);
+ $app->db->datalogUpdate('server', "config = '".$app->db->quote($server_config_str)."'", 'server_id', $server_id);
+ }
}
}
diff --git a/interface/web/admin/server_del.php b/interface/web/admin/server_del.php
index 78a0785..d5b3b96 100644
--- a/interface/web/admin/server_del.php
+++ b/interface/web/admin/server_del.php
@@ -44,6 +44,7 @@
//* Check permissions for module
$app->auth->check_module_permissions('admin');
+if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.');
$app->uses("tform_actions");
$app->tform_actions->onDelete();
diff --git a/interface/web/admin/software_repo_del.php b/interface/web/admin/software_repo_del.php
index 8da40c9..a6522fa 100644
--- a/interface/web/admin/software_repo_del.php
+++ b/interface/web/admin/software_repo_del.php
@@ -44,6 +44,7 @@
//* Check permissions for module
$app->auth->check_module_permissions('admin');
+if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.');
$app->uses("tform_actions");
$app->tform_actions->onDelete();
diff --git a/interface/web/admin/software_repo_edit.php b/interface/web/admin/software_repo_edit.php
index bd0c875..17902f1 100644
--- a/interface/web/admin/software_repo_edit.php
+++ b/interface/web/admin/software_repo_edit.php
@@ -43,6 +43,7 @@
//* Check permissions for module
$app->auth->check_module_permissions('admin');
+if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.');
// Loading classes
$app->uses('tpl,tform,tform_actions');
diff --git a/interface/web/admin/system_config_edit.php b/interface/web/admin/system_config_edit.php
index 70f26be..2270209 100644
--- a/interface/web/admin/system_config_edit.php
+++ b/interface/web/admin/system_config_edit.php
@@ -78,7 +78,7 @@
}
function onUpdateSave($sql) {
- global $app;
+ global $app,$conf;
if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges');
$app->uses('ini_parser,getconf');
@@ -90,7 +90,7 @@
$server_config_str = $app->ini_parser->get_ini_string($server_config_array);
$sql = "UPDATE sys_ini SET config = '".$app->db->quote($server_config_str)."' WHERE sysini_id = 1";
- $app->db->query($sql);
+ if($conf['demo_mode'] != true) $app->db->query($sql);
/*
* If we should use the domain-module, we have to insert all existing domains into the table
diff --git a/interface/web/admin/users_del.php b/interface/web/admin/users_del.php
index b4f3e72..dfea889 100644
--- a/interface/web/admin/users_del.php
+++ b/interface/web/admin/users_del.php
@@ -44,6 +44,7 @@
//* Check permissions for module
$app->auth->check_module_permissions('admin');
+if($conf['demo_mode'] == true && $_REQUEST['id'] <= 3) $app->error('This function is disabled in demo mode.');
$app->uses("tform_actions");
$app->tform_actions->onDelete();
diff --git a/interface/web/admin/users_edit.php b/interface/web/admin/users_edit.php
index 2bf4dcc..ae22986 100644
--- a/interface/web/admin/users_edit.php
+++ b/interface/web/admin/users_edit.php
@@ -61,6 +61,8 @@
function onBeforeUpdate() {
global $app, $conf;
+ if($conf['demo_mode'] == true && $_REQUEST['id'] <= 3) $app->error('This function is disabled in demo mode.');
+
if(@is_array($this->dataRecord['modules']) && !in_array($this->dataRecord['startmodule'],$this->dataRecord['modules'])) {
$app->tform->errorMessage .= $app->tform->wordbook['startmodule_err'];
}
diff --git a/interface/web/client/client_del.php b/interface/web/client/client_del.php
index 11cfdb7..184b8f2 100644
--- a/interface/web/client/client_del.php
+++ b/interface/web/client/client_del.php
@@ -44,6 +44,7 @@
//* Check permissions for module
$app->auth->check_module_permissions('client');
+if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.');
$app->uses('tpl,tform');
$app->load('tform_actions');
diff --git a/interface/web/client/client_edit.php b/interface/web/client/client_edit.php
index 5714220..5da7110 100644
--- a/interface/web/client/client_edit.php
+++ b/interface/web/client/client_edit.php
@@ -178,7 +178,7 @@
global $app;
// username changed
- if(isset($this->dataRecord['username']) && $this->dataRecord['username'] != '' && $this->oldDataRecord['username'] != $this->dataRecord['username']) {
+ if($conf['demo_mode'] != true && isset($this->dataRecord['username']) && $this->dataRecord['username'] != '' && $this->oldDataRecord['username'] != $this->dataRecord['username']) {
$username = $app->db->quote($this->dataRecord["username"]);
$client_id = $this->id;
$sql = "UPDATE sys_user SET username = '$username' WHERE client_id = $client_id";
@@ -190,7 +190,7 @@
}
// password changed
- if(isset($this->dataRecord["password"]) && $this->dataRecord["password"] != '') {
+ if($conf['demo_mode'] != true && isset($this->dataRecord["password"]) && $this->dataRecord["password"] != '') {
$password = $app->db->quote($this->dataRecord["password"]);
$client_id = $this->id;
$sql = "UPDATE sys_user SET passwort = md5('$password') WHERE client_id = $client_id";
@@ -198,7 +198,7 @@
}
// language changed
- if(isset($this->dataRecord['language']) && $this->dataRecord['language'] != '' && $this->oldDataRecord['language'] != $this->dataRecord['language']) {
+ if($conf['demo_mode'] != true && isset($this->dataRecord['language']) && $this->dataRecord['language'] != '' && $this->oldDataRecord['language'] != $this->dataRecord['language']) {
$language = $app->db->quote($this->dataRecord["language"]);
$client_id = $this->id;
$sql = "UPDATE sys_user SET language = '$language' WHERE client_id = $client_id";
diff --git a/interface/web/client/reseller_del.php b/interface/web/client/reseller_del.php
index f75ecea..fefd370 100644
--- a/interface/web/client/reseller_del.php
+++ b/interface/web/client/reseller_del.php
@@ -55,6 +55,8 @@
function onBeforeDelete() {
global $app, $conf;
+ if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.');
+
$client_id = intval($this->dataRecord['client_id']);
$tmp = $app->db->queryOneRecord("SELECT count(client_id) as number FROM client WHERE parent_client_id = ".$client_id);
diff --git a/interface/web/client/reseller_edit.php b/interface/web/client/reseller_edit.php
index b58ba8f..44c65be 100644
--- a/interface/web/client/reseller_edit.php
+++ b/interface/web/client/reseller_edit.php
@@ -173,7 +173,7 @@
global $app, $conf;
// username changed
- if(isset($this->dataRecord['username']) && $this->dataRecord['username'] != '' && $this->oldDataRecord['username'] != $this->dataRecord['username']) {
+ if($conf['demo_mode'] != true && isset($this->dataRecord['username']) && $this->dataRecord['username'] != '' && $this->oldDataRecord['username'] != $this->dataRecord['username']) {
$username = $app->db->quote($this->dataRecord["username"]);
$client_id = $this->id;
$sql = "UPDATE sys_user SET username = '$username' WHERE client_id = $client_id";
@@ -185,7 +185,7 @@
}
// password changed
- if(isset($this->dataRecord["password"]) && $this->dataRecord["password"] != '') {
+ if($conf['demo_mode'] != true && isset($this->dataRecord["password"]) && $this->dataRecord["password"] != '') {
$password = $app->db->quote($this->dataRecord["password"]);
$client_id = $this->id;
$sql = "UPDATE sys_user SET passwort = md5('$password') WHERE client_id = $client_id";
@@ -193,7 +193,7 @@
}
// language changed
- if(isset($this->dataRecord['language']) && $this->dataRecord['language'] != '' && $this->oldDataRecord['language'] != $this->dataRecord['language']) {
+ if($conf['demo_mode'] != true && isset($this->dataRecord['language']) && $this->dataRecord['language'] != '' && $this->oldDataRecord['language'] != $this->dataRecord['language']) {
$language = $app->db->quote($this->dataRecord["language"]);
$client_id = $this->id;
$sql = "UPDATE sys_user SET language = '$language' WHERE client_id = $client_id";
diff --git a/interface/web/designer/form_edit.php b/interface/web/designer/form_edit.php
index 4ea74c2..90acd2e 100644
--- a/interface/web/designer/form_edit.php
+++ b/interface/web/designer/form_edit.php
@@ -31,6 +31,7 @@
require_once('../../lib/app.inc.php');
if($_SESSION["s"]["user"]["typ"] != "admin") die("Admin permissions required.");
+if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.');
//* Check permissions for module
$app->auth->check_module_permissions('designer');
diff --git a/interface/web/designer/module_edit.php b/interface/web/designer/module_edit.php
index 9a8df30..26e229a 100644
--- a/interface/web/designer/module_edit.php
+++ b/interface/web/designer/module_edit.php
@@ -31,6 +31,7 @@
require_once('../../lib/app.inc.php');
if($_SESSION["s"]["user"]["typ"] != "admin") die("Admin permissions required.");
+if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.');
//* Check permissions for module
$app->auth->check_module_permissions('designer');
diff --git a/interface/web/designer/module_nav_del.php b/interface/web/designer/module_nav_del.php
index 18c5bf4..b0fd55a 100644
--- a/interface/web/designer/module_nav_del.php
+++ b/interface/web/designer/module_nav_del.php
@@ -34,6 +34,7 @@
//* Check permissions for module
$app->auth->check_module_permissions('designer');
+if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.');
// Lade Template
$app->uses('tpl');
diff --git a/interface/web/designer/module_nav_edit.php b/interface/web/designer/module_nav_edit.php
index 73c010e..a7acf40 100644
--- a/interface/web/designer/module_nav_edit.php
+++ b/interface/web/designer/module_nav_edit.php
@@ -34,6 +34,7 @@
if($_SESSION['s']['user']['typ'] != 'admin'){
die('Admin permissions required.');
}
+if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.');
//* Check permissions for module
$app->auth->check_module_permissions('designer');
diff --git a/interface/web/designer/module_nav_flip.php b/interface/web/designer/module_nav_flip.php
index f3fc164..6599a5f 100644
--- a/interface/web/designer/module_nav_flip.php
+++ b/interface/web/designer/module_nav_flip.php
@@ -34,6 +34,7 @@
//* Check permissions for module
$app->auth->check_module_permissions('designer');
+if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.');
// Lade Template
$app->uses('tpl');
diff --git a/interface/web/designer/module_nav_item_del.php b/interface/web/designer/module_nav_item_del.php
index cd458cd..6360c46 100644
--- a/interface/web/designer/module_nav_item_del.php
+++ b/interface/web/designer/module_nav_item_del.php
@@ -31,6 +31,7 @@
require_once('../../lib/app.inc.php');
if($_SESSION["s"]["user"]["typ"] != "admin") die("Admin permissions required.");
+if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.');
//* Check permissions for module
$app->auth->check_module_permissions('designer');
diff --git a/interface/web/designer/module_nav_item_edit.php b/interface/web/designer/module_nav_item_edit.php
index 5948aba..21e1e35 100644
--- a/interface/web/designer/module_nav_item_edit.php
+++ b/interface/web/designer/module_nav_item_edit.php
@@ -31,6 +31,7 @@
require_once('../../lib/app.inc.php');
if($_SESSION["s"]["user"]["typ"] != "admin") die("Admin permissions required.");
+if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.');
//* Check permissions for module
$app->auth->check_module_permissions('designer');
diff --git a/interface/web/designer/module_nav_item_flip.php b/interface/web/designer/module_nav_item_flip.php
index 2ec0566..1aec179 100644
--- a/interface/web/designer/module_nav_item_flip.php
+++ b/interface/web/designer/module_nav_item_flip.php
@@ -31,6 +31,7 @@
require_once('../../lib/app.inc.php');
if($_SESSION["s"]["user"]["typ"] != "admin") die("Admin permissions required.");
+if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.');
//* Check permissions for module
$app->auth->check_module_permissions('designer');
diff --git a/interface/web/remote/index.php b/interface/web/remote/index.php
index 78e8d01..1fa5e60 100644
--- a/interface/web/remote/index.php
+++ b/interface/web/remote/index.php
@@ -4,6 +4,8 @@
$conf['start_session'] = false;
require_once('../../lib/app.inc.php');
+if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.');
+
$app->load('remoting');
$server = new SoapServer(null, array('uri' => $_SERVER['REQUEST_URI']));
diff --git a/interface/web/tools/user_settings.php b/interface/web/tools/user_settings.php
index d663814..b67a1ab 100644
--- a/interface/web/tools/user_settings.php
+++ b/interface/web/tools/user_settings.php
@@ -81,6 +81,8 @@
function onBeforeUpdate() {
global $app, $conf;
+ if($conf['demo_mode'] == true && $this->id <= 3) $app->tform->errorMessage .= 'This function is disabled in demo mode.';
+
if($_POST['passwort'] != $_POST['passwort2']) {
$app->tform->errorMessage = $app->tform->lng('password_mismatch');
}
--
Gitblit v1.9.1