diff --git a/interface/web/sites/database_edit.php b/interface/web/sites/database_edit.php
index 18ace217ebf84551c015b19ad82cfa74f789d4af..514726510cf9edfbdb05b0c19f7e3ddc4f2827a7 100644
--- a/interface/web/sites/database_edit.php
+++ b/interface/web/sites/database_edit.php
@@ -150,10 +150,14 @@ class page_action extends tform_actions {
}
/*
- * If the names are restricted -> remove the client, so that the
+ * If the names are restricted -> remove the restriction, so that the
* data can be edited
*/
if ($interfaceConf['restrict_names'] == true){
+ /* get the restriction */
+ $restriction = '[CLIENTNAME]_';
+ if (isset($interfaceConf['restrict_dbname'])) $restriction = $interfaceConf['restrict_dbname'];
+ $tmpRestriction = $restriction;
/* Get the group-id */
if($_SESSION["s"]["user"]["typ"] != 'admin') {
// Get the group-id of the user
@@ -168,18 +172,19 @@ class page_action extends tform_actions {
$clientName = $tmp['name'];
if ($clientName == "") $clientName = 'default';
$clientName = convertClientName($clientName);
+ $restriction = str_replace('[CLIENTNAME]', $clientName, $restriction);
if ($this->dataRecord['database_name'] != ""){
/* REMOVE the restriction */
- $app->tpl->setVar("database_name", str_replace($clientName . '_' , '', $this->dataRecord['database_name']));
- $app->tpl->setVar("database_user", str_replace($clientName . '_' , '', $this->dataRecord['database_user']));
+ $app->tpl->setVar("database_name", str_replace($restriction , '', $this->dataRecord['database_name']));
+ $app->tpl->setVar("database_user", str_replace($restriction , '', $this->dataRecord['database_user']));
}
if($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) {
- $app->tpl->setVar("database_name_prefix", '{client}_');
- $app->tpl->setVar("database_user_prefix", '{client}_');
+ $app->tpl->setVar("database_name_prefix", $tmpRestriction);
+ $app->tpl->setVar("database_user_prefix", $tmpRestriction);
}
else {
- $app->tpl->setVar("database_name_prefix", $clientName . '_');
- $app->tpl->setVar("database_user_prefix", $clientName . '_');
+ $app->tpl->setVar("database_name_prefix", $restriction);
+ $app->tpl->setVar("database_user_prefix", $restriction);
}
}
@@ -231,6 +236,10 @@ class page_action extends tform_actions {
* If the names should be restricted -> do it!
*/
if ($interfaceConf['restrict_names'] == true){
+ /* get the restriction */
+ $restriction = '[CLIENTNAME]_';
+ if (isset($interfaceConf['restrict_dbname'])) $restriction = $interfaceConf['restrict_dbname'];
+
/* Get the group-id */
if($_SESSION["s"]["user"]["typ"] != 'admin') {
// Get the group-id of the user
@@ -245,17 +254,17 @@ class page_action extends tform_actions {
$clientName = $tmp['name'];
if ($clientName == "") $clientName = 'default';
$clientName = convertClientName($clientName);
- $nameSuffix = $clientName . '_';
+ $restriction = str_replace('[CLIENTNAME]', $clientName, $restriction);
}
else {
- $nameSuffix = '';
+ $restriction = '';
}
$error = false;
//* Prevent that the database name and charset is changed
$old_record = $app->tform->getDataRecord($this->id);
- if($old_record["database_name"] != $nameSuffix . $this->dataRecord["database_name"]) {
+ if($old_record["database_name"] != $restriction . $this->dataRecord["database_name"]) {
$app->tform->errorMessage .= $app->tform->wordbook["database_name_change_txt"].'
';
$error = true;
}
@@ -278,8 +287,8 @@ class page_action extends tform_actions {
if ($error == false){
/* restrict the names if there is no error */
- $this->dataRecord['database_name'] = $nameSuffix . $this->dataRecord['database_name'];
- $this->dataRecord['database_user'] = $nameSuffix . $this->dataRecord['database_user'];
+ $this->dataRecord['database_name'] = $restriction . $this->dataRecord['database_name'];
+ $this->dataRecord['database_user'] = $restriction . $this->dataRecord['database_user'];
}
parent::onBeforeUpdate();
@@ -287,12 +296,15 @@ class page_action extends tform_actions {
function onBeforeInsert() {
global $app, $conf, $interfaceConf;
- global $interfaceConf;
/*
* If the names should be restricted -> do it!
*/
if ($interfaceConf['restrict_names'] == true){
+ /* get the restriction */
+ $restriction = '[CLIENTNAME]_';
+ if (isset($interfaceConf['restrict_dbname'])) $restriction = $interfaceConf['restrict_dbname'];
+
/* Get the group-id */
if($_SESSION["s"]["user"]["typ"] != 'admin') {
// Get the group-id of the user
@@ -307,9 +319,11 @@ class page_action extends tform_actions {
$clientName = $tmp['name'];
if ($clientName == "") $clientName = 'default';
$clientName = convertClientName($clientName);
+ $restriction = str_replace('[CLIENTNAME]', $clientName, $restriction);
+
/* restrict the names */
- $this->dataRecord['database_name'] = $clientName . '_' . $this->dataRecord['database_name'];
- $this->dataRecord['database_user'] = $clientName . '_' . $this->dataRecord['database_user'];
+ $this->dataRecord['database_name'] = $restriction . $this->dataRecord['database_name'];
+ $this->dataRecord['database_user'] = $restriction . $this->dataRecord['database_user'];
}
parent::onBeforeInsert();
}
diff --git a/interface/web/sites/ftp_user_edit.php b/interface/web/sites/ftp_user_edit.php
index 3452935b782a8290fb3c6a8262caf20f4e69173a..980e00f8524364fed2669ef51681eea98641f8bc 100644
--- a/interface/web/sites/ftp_user_edit.php
+++ b/interface/web/sites/ftp_user_edit.php
@@ -40,6 +40,7 @@ $tform_def_file = "form/ftp_user.tform.php";
require_once('../../lib/config.inc.php');
require_once('../../lib/app.inc.php');
+require_once('tools.inc.php');
//* Check permissions for module
$app->auth->check_module_permissions('sites');
@@ -71,6 +72,49 @@ class page_action extends tform_actions {
parent::onShowNew();
}
+
+ function onShowEnd() {
+ global $app, $conf, $interfaceConf;
+ /*
+ * If the names are restricted -> remove the restriction, so that the
+ * data can be edited
+ */
+ if ($interfaceConf['restrict_names'] == true){
+ /* get the restriction */
+ $restriction = '[CLIENTNAME]_';
+ if (isset($interfaceConf['restrict_ftpuser'])) $restriction = $interfaceConf['restrict_ftpuser'];
+ $tmplRestriction = $restriction;
+ /* Get the group-id */
+ if($_SESSION["s"]["user"]["typ"] != 'admin') {
+ // Get the group-id of the user
+ $client_group_id = $_SESSION["s"]["user"]["default_group"];
+ }
+ else {
+ // Get the group-id from the data itself
+ $web = $app->db->queryOneRecord("SELECT sys_groupid FROM web_domain WHERE domain_id = ".intval($this->dataRecord["parent_domain_id"]));
+ $client_group_id = $web['sys_groupid'];
+ }
+ /* get the name of the client */
+ $tmp = $app->db->queryOneRecord("SELECT name FROM sys_group WHERE groupid = " . $client_group_id);
+ $clientName = $tmp['name'];
+ if ($clientName == "") $clientName = 'default';
+ $clientName = convertClientName($clientName);
+ $restriction = str_replace('[CLIENTNAME]', $clientName, $restriction);
+ if ($this->dataRecord['username'] != ""){
+ /* REMOVE the restriction */
+ $app->tpl->setVar("username", str_replace($restriction , '', $this->dataRecord['username']));
+ $app->tpl->setVar("username", str_replace($restriction , '', $this->dataRecord['username']));
+ }
+ if($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) {
+ $app->tpl->setVar("username_prefix", $tmplRestriction);
+ }
+ else {
+ $app->tpl->setVar("username_prefix", $restriction);
+ }
+ }
+
+ parent::onShowEnd();
+ }
function onSubmit() {
global $app, $conf;
@@ -84,7 +128,45 @@ class page_action extends tform_actions {
parent::onSubmit();
}
- function onAfterInsert() {
+ function onBeforeInsert() {
+ global $app, $conf, $interfaceConf;
+
+ $error = false;
+
+ /*
+ * If the names should be restricted -> do it!
+ */
+ if ($error == false){
+ if ($interfaceConf['restrict_names'] == true){
+ /* get the restriction */
+ $restriction = '[CLIENTNAME]_';
+ if (isset($interfaceConf['restrict_ftpuser'])) $restriction = $interfaceConf['restrict_ftpuser'];
+
+ /* Get the group-id */
+ if($_SESSION["s"]["user"]["typ"] != 'admin') {
+ // Get the group-id of the user
+ $client_group_id = $_SESSION["s"]["user"]["default_group"];
+ }
+ else {
+ // Get the group-id from the data itself
+ $web = $app->db->queryOneRecord("SELECT sys_groupid FROM web_domain WHERE domain_id = ".intval($this->dataRecord["parent_domain_id"]));
+ $client_group_id = $web['sys_groupid'];
+ }
+ /* get the name of the client */
+ $tmp = $app->db->queryOneRecord("SELECT name FROM sys_group WHERE groupid = " . $client_group_id);
+ $clientName = $tmp['name'];
+ if ($clientName == "") $clientName = 'default';
+ $clientName = convertClientName($clientName);
+ $restriction = str_replace('[CLIENTNAME]', $clientName, $restriction);
+
+ /* restrict the names */
+ $this->dataRecord['username'] = $restriction . $this->dataRecord['username'];
+ }
+ }
+ parent::onBeforeInsert();
+ }
+
+ function onAfterInsert() {
global $app, $conf;
$web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".intval($this->dataRecord["parent_domain_id"]));
@@ -101,6 +183,45 @@ class page_action extends tform_actions {
}
+
+ function onBeforeUpdate() {
+ global $app, $conf, $interfaceConf;
+
+ $error = false;
+
+ /*
+ * If the names should be restricted -> do it!
+ */
+ if ($error == false){
+ /*
+ * If the names should be restricted -> do it!
+ */
+ if ($interfaceConf['restrict_names'] == true){
+ /* get the restriction */
+ $restriction = '[CLIENTNAME]_';
+ if (isset($interfaceConf['restrict_dbname'])) $restriction = $interfaceConf['restrict_dbname'];
+
+ /* Get the group-id */
+ if($_SESSION["s"]["user"]["typ"] != 'admin') {
+ // Get the group-id of the user
+ $client_group_id = $_SESSION["s"]["user"]["default_group"];
+ }
+ else {
+ // Get the group-id from the data itself
+ $web = $app->db->queryOneRecord("SELECT sys_groupid FROM web_domain WHERE domain_id = ".intval($this->dataRecord["parent_domain_id"]));
+ $client_group_id = $web['sys_groupid'];
+ }
+ /* get the name of the client */
+ $tmp = $app->db->queryOneRecord("SELECT name FROM sys_group WHERE groupid = " . $client_group_id);
+ $clientName = $tmp['name'];
+ if ($clientName == "") $clientName = 'default';
+ $clientName = convertClientName($clientName);
+ $restriction = str_replace('[CLIENTNAME]', $clientName, $restriction);
+ /* restrict the names */
+ $this->dataRecord['username'] = $restriction . $this->dataRecord['username'];
+ }
+ }
+ }
function onAfterUpdate() {
global $app, $conf;
diff --git a/interface/web/sites/shell_user_edit.php b/interface/web/sites/shell_user_edit.php
index 17e55a9922e33ad92156386d1c984ba25ab9eb6e..d45413ae67492fd5aeccf69af07f0a84cfdc72ec 100644
--- a/interface/web/sites/shell_user_edit.php
+++ b/interface/web/sites/shell_user_edit.php
@@ -40,6 +40,7 @@ $tform_def_file = "form/shell_user.tform.php";
require_once('../../lib/config.inc.php');
require_once('../../lib/app.inc.php');
+require_once('tools.inc.php');
//* Check permissions for module
$app->auth->check_module_permissions('sites');
@@ -71,6 +72,49 @@ class page_action extends tform_actions {
parent::onShowNew();
}
+
+ function onShowEnd() {
+ global $app, $conf, $interfaceConf;
+ /*
+ * If the names are restricted -> remove the restriction, so that the
+ * data can be edited
+ */
+ if ($interfaceConf['restrict_names'] == true){
+ /* get the restriction */
+ $restriction = '[CLIENTNAME]_';
+ if (isset($interfaceConf['restrict_shelluser'])) $restriction = $interfaceConf['restrict_shelluser'];
+ $tmplRestriction = $restriction;
+ /* Get the group-id */
+ if($_SESSION["s"]["user"]["typ"] != 'admin') {
+ // Get the group-id of the user
+ $client_group_id = $_SESSION["s"]["user"]["default_group"];
+ }
+ else {
+ // Get the group-id from the data itself
+ $web = $app->db->queryOneRecord("SELECT sys_groupid FROM web_domain WHERE domain_id = ".intval($this->dataRecord["parent_domain_id"]));
+ $client_group_id = $web['sys_groupid'];
+ }
+ /* get the name of the client */
+ $tmp = $app->db->queryOneRecord("SELECT name FROM sys_group WHERE groupid = " . $client_group_id);
+ $clientName = $tmp['name'];
+ if ($clientName == "") $clientName = 'default';
+ $clientName = convertClientName($clientName);
+ $restriction = str_replace('[CLIENTNAME]', $clientName, $restriction);
+ if ($this->dataRecord['username'] != ""){
+ /* REMOVE the restriction */
+ $app->tpl->setVar("username", str_replace($restriction , '', $this->dataRecord['username']));
+ $app->tpl->setVar("username", str_replace($restriction , '', $this->dataRecord['username']));
+ }
+ if($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) {
+ $app->tpl->setVar("username_prefix", $tmplRestriction);
+ }
+ else {
+ $app->tpl->setVar("username_prefix", $restriction);
+ }
+ }
+
+ parent::onShowEnd();
+ }
function onSubmit() {
global $app, $conf;
@@ -85,14 +129,50 @@ class page_action extends tform_actions {
}
function onBeforeInsert() {
- global $app, $conf;
-
+ global $app, $conf, $interfaceConf;
+
+ $error = false;
// check if the username is not blacklisted
$blacklist = file(ISPC_LIB_PATH.'/shelluser_blacklist');
foreach($blacklist as $line) {
- if(strtolower(trim($line)) == strtolower(trim($this->dataRecord['username']))) $app->tform->errorMessage .= 'The username is not allowed.';
+ if(strtolower(trim($line)) == strtolower(trim($this->dataRecord['username']))){
+ $app->tform->errorMessage .= 'The username is not allowed.';
+ $error = true;
+ }
}
unset($blacklist);
+
+ /*
+ * If the names should be restricted -> do it!
+ */
+ if ($error == false){
+ if ($interfaceConf['restrict_names'] == true){
+ /* get the restriction */
+ $restriction = '[CLIENTNAME]_';
+ if (isset($interfaceConf['restrict_shelluser'])) $restriction = $interfaceConf['restrict_shelluser'];
+
+ /* Get the group-id */
+ if($_SESSION["s"]["user"]["typ"] != 'admin') {
+ // Get the group-id of the user
+ $client_group_id = $_SESSION["s"]["user"]["default_group"];
+ }
+ else {
+ // Get the group-id from the data itself
+ $web = $app->db->queryOneRecord("SELECT sys_groupid FROM web_domain WHERE domain_id = ".intval($this->dataRecord["parent_domain_id"]));
+ $client_group_id = $web['sys_groupid'];
+ }
+ /* get the name of the client */
+ $tmp = $app->db->queryOneRecord("SELECT name FROM sys_group WHERE groupid = " . $client_group_id);
+ $clientName = $tmp['name'];
+ if ($clientName == "") $clientName = 'default';
+ $clientName = convertClientName($clientName);
+ $restriction = str_replace('[CLIENTNAME]', $clientName, $restriction);
+
+ /* restrict the names */
+ $this->dataRecord['username'] = $restriction . $this->dataRecord['username'];
+ }
+ }
+ parent::onBeforeInsert();
}
function onAfterInsert() {
@@ -113,14 +193,51 @@ class page_action extends tform_actions {
}
function onBeforeUpdate() {
- global $app, $conf;
+ global $app, $conf, $interfaceConf;
+ $error = false;
// check if the username is not blacklisted
$blacklist = file(ISPC_LIB_PATH.'/shelluser_blacklist');
foreach($blacklist as $line) {
- if(strtolower(trim($line)) == strtolower(trim($this->dataRecord['username']))) $app->tform->errorMessage .= 'The username is not allowed.';
+ if(strtolower(trim($line)) == strtolower(trim($this->dataRecord['username']))){
+ $app->tform->errorMessage .= 'The username is not allowed.';
+ $error = true;
+ }
}
unset($blacklist);
+
+ /*
+ * If the names should be restricted -> do it!
+ */
+ if ($error == false){
+ /*
+ * If the names should be restricted -> do it!
+ */
+ if ($interfaceConf['restrict_names'] == true){
+ /* get the restriction */
+ $restriction = '[CLIENTNAME]_';
+ if (isset($interfaceConf['restrict_dbname'])) $restriction = $interfaceConf['restrict_dbname'];
+
+ /* Get the group-id */
+ if($_SESSION["s"]["user"]["typ"] != 'admin') {
+ // Get the group-id of the user
+ $client_group_id = $_SESSION["s"]["user"]["default_group"];
+ }
+ else {
+ // Get the group-id from the data itself
+ $web = $app->db->queryOneRecord("SELECT sys_groupid FROM web_domain WHERE domain_id = ".intval($this->dataRecord["parent_domain_id"]));
+ $client_group_id = $web['sys_groupid'];
+ }
+ /* get the name of the client */
+ $tmp = $app->db->queryOneRecord("SELECT name FROM sys_group WHERE groupid = " . $client_group_id);
+ $clientName = $tmp['name'];
+ if ($clientName == "") $clientName = 'default';
+ $clientName = convertClientName($clientName);
+ $restriction = str_replace('[CLIENTNAME]', $clientName, $restriction);
+ /* restrict the names */
+ $this->dataRecord['username'] = $restriction . $this->dataRecord['username'];
+ }
+ }
}
function onAfterUpdate() {
diff --git a/interface/web/sites/templates/ftp_user_edit.htm b/interface/web/sites/templates/ftp_user_edit.htm
index 0b61bb4c5cc9b8d2b7265e1b907e135df1ae04e6..f2e3d870bb0c94e0f2bc31b37ad14d0620b24e3f 100644
--- a/interface/web/sites/templates/ftp_user_edit.htm
+++ b/interface/web/sites/templates/ftp_user_edit.htm
@@ -10,6 +10,7 @@
+ {tmpl_var name='username_prefix'}
diff --git a/interface/web/sites/templates/shell_user_edit.htm b/interface/web/sites/templates/shell_user_edit.htm
index bcca605be38e57b16554d04104aa172a3cf173c1..0425c7c52c6225957d18d5caafd4b46b644dccb2 100644
--- a/interface/web/sites/templates/shell_user_edit.htm
+++ b/interface/web/sites/templates/shell_user_edit.htm
@@ -10,6 +10,7 @@
+ {tmpl_var name='username_prefix'}