From dbf29d9979fe779e8801685c0132dbee681e15cf Mon Sep 17 00:00:00 2001
From: Marius Cramer <m.cramer@pixcept.de>
Date: Tue, 01 Jul 2014 12:39:22 -0400
Subject: [PATCH] Merge branch 'master' of http://git.ispconfig.org/Cambra/ispconfig3 into Cambra/ispconfig3-master
---
interface/web/client/templates/domain_list.htm | 10 ++++++++++
interface/lib/classes/auth.inc.php | 2 +-
interface/web/client/templates/domain_edit.htm | 8 +-------
interface/lib/lang/en.lng | 1 +
interface/web/client/domain_list.php | 5 +++++
interface/lib/lang/es.lng | 1 +
interface/web/client/domain_edit.php | 30 ++++++++++++++++++++++++++----
7 files changed, 45 insertions(+), 12 deletions(-)
diff --git a/interface/lib/classes/auth.inc.php b/interface/lib/classes/auth.inc.php
index 706dd04..070662f 100644
--- a/interface/lib/classes/auth.inc.php
+++ b/interface/lib/classes/auth.inc.php
@@ -50,7 +50,7 @@
$userid = $app->functions->intval($userid);
$client = $app->db->queryOneRecord("SELECT client.limit_client FROM sys_user, client WHERE sys_user.userid = $userid AND sys_user.client_id = client.client_id");
- if($client['limit_client'] > 0) {
+ if($client['limit_client'] != 0) {
return true;
} else {
return false;
diff --git a/interface/lib/lang/en.lng b/interface/lib/lang/en.lng
index ec309d9..1d47aeb 100644
--- a/interface/lib/lang/en.lng
+++ b/interface/lib/lang/en.lng
@@ -149,5 +149,6 @@
$wb['strength_5'] = 'Very Strong';
$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of "{strength}".';
$wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.';
+$wb['domain_owner_changed'] = 'You have changed the owner of domain {domain}, please change website and mail domain owner for this domain accordingly.';
?>
diff --git a/interface/lib/lang/es.lng b/interface/lib/lang/es.lng
index 38f6103..e576357 100644
--- a/interface/lib/lang/es.lng
+++ b/interface/lib/lang/es.lng
@@ -148,4 +148,5 @@
$wb['weak_password_txt'] = 'La contraseña elegida no cumple las directrices de seguridad. Debe tener al menos {chars} caracteres y una fortaleza \"{strength}\".';
$wb['weak_password_length_txt'] = 'La contraseña elegida no cumple las directrices de seguridad. Debe tener al menos {chars} caracteres.';
$wb['Firewall'] = 'Cortafuegos';
+$wb['domain_owner_changed'] = 'Has cambiado el propietario del dominio {domain}, por favor cambia también el propietario del sitio web y dominio de correo de este dominio.';
?>
diff --git a/interface/web/client/domain_edit.php b/interface/web/client/domain_edit.php
index cca5c2d..a79ba85 100644
--- a/interface/web/client/domain_edit.php
+++ b/interface/web/client/domain_edit.php
@@ -147,9 +147,10 @@
}
else {
/*
- * We edit a existing one, but there is nothing to edit
+ * We edit a existing one, but domain name can't be changed
*/
- $this->dataRecord = $app->tform->getDataRecord($this->id);
+ $oldData = $app->tform->getDataRecord($this->id);
+ $this->dataRecord["domain"] = $oldData["domain"];
}
} elseif ($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) {
if ($this->id == 0) {
@@ -165,9 +166,10 @@
}
else {
/*
- * We edit a existing one, but there is nothing to edit
+ * We edit a existing one, but domain name can't be changed
*/
- $this->dataRecord = $app->tform->getDataRecord($this->id);
+ $oldData = $app->tform->getDataRecord($this->id);
+ $this->dataRecord["domain"] = $oldData["domain"];
}
} else {
if($this->id > 0) {
@@ -199,6 +201,26 @@
}
}
+ function onAfterUpdate() {
+ global $app, $conf;
+
+ if($_SESSION["s"]["user"]["typ"] != 'admin' && isset($this->dataRecord["client_group_id"])) {
+ $client_group_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]);
+ $client = $app->db->queryOneRecord("SELECT client.client_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id");
+ $group = $app->db->queryOneRecord("SELECT sys_group.groupid FROM sys_group, client WHERE sys_group.client_id = client.client_id AND client.parent_client_id = ".$client['client_id']." AND sys_group.groupid = ".$this->dataRecord["client_group_id"]." ORDER BY client.company_name, client.contact_name, sys_group.name";
+ $this->dataRecord["client_group_id"] = $group["groupid"];
+ }
+
+ // make sure that the record belongs to the client group and not the admin group when admin inserts it
+ // also make sure that the user can not delete domain created by a admin
+ if(isset($this->dataRecord["client_group_id"])) {
+ $client_group_id = $app->functions->intval($this->dataRecord["client_group_id"]);
+ $app->db->query("UPDATE domain SET sys_groupid = $client_group_id, sys_perm_group = 'ru' WHERE domain_id = ".$this->id);
+ $lng_text = $app->lng("domain_owner_changed");
+ $_SESSION['show_warning_msg'] = str_replace("{domain}", $this->dataRecord["domain"], $lng_text);
+ }
+ }
+
}
$page = new page_action;
diff --git a/interface/web/client/domain_list.php b/interface/web/client/domain_list.php
index 622e52a..4c6bdf9 100644
--- a/interface/web/client/domain_list.php
+++ b/interface/web/client/domain_list.php
@@ -46,6 +46,11 @@
$app->uses('listform_actions');
+if(isset($_SESSION['show_warning_msg'])) {
+ $app->tpl->setVar('warning_msg', $_SESSION['show_warning_msg']);
+ unset($_SESSION['show_warning_msg']);
+}
+
$app->listform_actions->SQLOrderBy = 'ORDER BY domain.domain';
$app->listform_actions->onLoad();
diff --git a/interface/web/client/templates/domain_edit.htm b/interface/web/client/templates/domain_edit.htm
index aaafa6e..551dbbe 100644
--- a/interface/web/client/templates/domain_edit.htm
+++ b/interface/web/client/templates/domain_edit.htm
@@ -7,22 +7,16 @@
<div class="ctrlHolder">
<label for="domain">{tmpl_var name='domain_txt'}</label>
<tmpl_if name="edit_disabled">
- <input name="domain" id="domain" value="{tmpl_var name='domain'}" size="30" maxlength="255" type="text" class="textInput" disabled="disabled" />
+ <input name="domain" id="domain" value="{tmpl_var name='domain'}" size="30" maxlength="255" type="text" class="textInput" readonly="readonly" />
<tmpl_else>
<input name="domain" id="domain" value="{tmpl_var name='domain'}" size="30" maxlength="255" type="text" class="textInput" />
</tmpl_if>
</div>
<div class="ctrlHolder">
<label for="client_group_id">{tmpl_var name='client_txt'}</label>
- <tmpl_if name="edit_disabled">
- <select name="client_group_id" id="client_group_id" class="selectInput" disabled="disabled">
- {tmpl_var name='client_group_id'}
- </select>
- <tmpl_else>
<select name="client_group_id" id="client_group_id" class="selectInput">
{tmpl_var name='client_group_id'}
</select>
- </tmpl_if>
</div>
</fieldset>
diff --git a/interface/web/client/templates/domain_list.htm b/interface/web/client/templates/domain_list.htm
index 3100660..4bbb09a 100644
--- a/interface/web/client/templates/domain_list.htm
+++ b/interface/web/client/templates/domain_list.htm
@@ -4,6 +4,16 @@
<div class="panel panel_list_domain">
<div class="pnl_toolsarea">
+ <div>
+ <tmpl_if name='warning_msg'>
+ <div class="systemmonitor-state state-warning">
+ <div class="status"></div>
+ <div class="statusMsg">
+ {tmpl_var name='warning_msg'}
+ </div>
+ </div>
+ </tmpl_if>
+ </div>
<fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend>
<div class="buttons">
<button class="button iconstxt icoAdd" type="button" onclick="loadContent('client/domain_edit.php');">
--
Gitblit v1.9.1