From f28f40f7a62b9a6fe939c05b10366b0d66c9ec1e Mon Sep 17 00:00:00 2001 From: tbrehm <t.brehm@ispconfig.org> Date: Fri, 27 Feb 2009 12:50:34 -0500 Subject: [PATCH] Fixed amavisd socket path. --- interface/web/dns/dns_soa_edit.php | 52 +++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 37 insertions(+), 15 deletions(-) diff --git a/interface/web/dns/dns_soa_edit.php b/interface/web/dns/dns_soa_edit.php index de3cb6d..24ff164 100644 --- a/interface/web/dns/dns_soa_edit.php +++ b/interface/web/dns/dns_soa_edit.php @@ -1,4 +1,5 @@ <?php + /* Copyright (c) 2007, Till Brehm, projektfarm Gmbh All rights reserved. @@ -27,7 +28,6 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - /****************************************** * Begin Form configuration ******************************************/ @@ -41,14 +41,11 @@ require_once('../../lib/config.inc.php'); require_once('../../lib/app.inc.php'); -// Checking module permissions -if(!stristr($_SESSION["s"]["user"]["modules"],'dns')) { - header("Location: ../index.php"); - exit; -} +//* Check permissions for module +$app->auth->check_module_permissions('dns'); // Loading classes -$app->uses('tpl,tform,tform_actions'); +$app->uses('tpl,tform,tform_actions,validate_dns'); $app->load('tform_actions'); class page_action extends tform_actions { @@ -79,14 +76,15 @@ global $app, $conf; // If user is admin, we will allow him to select to whom this record belongs - if($_SESSION["s"]["user"]["typ"] == 'admin') { + if($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { // Getting Domains of the user $sql = "SELECT groupid, name FROM sys_group WHERE client_id > 0"; $clients = $app->db->queryAllRecords($sql); - $client_select = "<option value='0'></option>"; + $client_select = ''; + if($_SESSION["s"]["user"]["typ"] == 'admin') $client_select .= "<option value='0'></option>"; if(is_array($clients)) { foreach( $clients as $client) { - $selected = ($client["groupid"] == $this->dataRecord["sys_groupid"])?'SELECTED':''; + $selected = ($client["groupid"] == @$this->dataRecord["sys_groupid"])?'SELECTED':''; $client_select .= "<option value='$client[groupid]' $selected>$client[name]</option>\r\n"; } } @@ -112,7 +110,7 @@ unset($tmp); // When the record is inserted } else { - // set the server ID to the default mailserver of the client + // set the server ID to the default dnsserver of the client $this->dataRecord["server_id"] = $client["default_dnsserver"]; // Check if the user may add another maildomain. @@ -125,17 +123,35 @@ } } - // Set the serial - $this->dataRecord["serial"] = time(); + // Update the serial number of the SOA record + $soa = $app->db->queryOneRecord("SELECT serial FROM dns_soa WHERE id = ".$this->id); + $this->dataRecord["serial"] = $app->validate_dns->increase_serial($soa["serial"]); + //* Check if soa, ns and mbox have a dot at the end + if(substr($this->dataRecord["origin"],-1,1) != '.') $this->dataRecord["origin"] .= '.'; + if(substr($this->dataRecord["ns"],-1,1) != '.') $this->dataRecord["ns"] .= '.'; + if(substr($this->dataRecord["mbox"],-1,1) != '.') $this->dataRecord["mbox"] .= '.'; + + //* Replace @ in mbox + if(stristr($this->dataRecord["mbox"],'@')) { + $this->dataRecord["mbox"] = str_replace('@','.',$this->dataRecord["mbox"]); + } + + parent::onSubmit(); } function onAfterInsert() { global $app, $conf; - // make sure that the record belongs to the clinet group and not the admin group when a dmin inserts it + // make sure that the record belongs to the client group and not the admin group when a dmin inserts it if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { + $client_group_id = intval($this->dataRecord["client_group_id"]); + $app->db->query("UPDATE dns_soa SET sys_groupid = $client_group_id WHERE id = ".$this->id); + // And we want to update all rr records too, that belong to this record + $app->db->query("UPDATE dns_rr SET sys_groupid = $client_group_id WHERE zone = ".$this->id); + } + if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($this->dataRecord["client_group_id"])) { $client_group_id = intval($this->dataRecord["client_group_id"]); $app->db->query("UPDATE dns_soa SET sys_groupid = $client_group_id WHERE id = ".$this->id); // And we want to update all rr records too, that belong to this record @@ -146,13 +162,19 @@ function onAfterUpdate() { global $app, $conf; - // make sure that the record belongs to the clinet group and not the admin group when a dmin inserts it + // make sure that the record belongs to the client group and not the admin group when a dmin inserts it if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { $client_group_id = intval($this->dataRecord["client_group_id"]); $app->db->query("UPDATE dns_soa SET sys_groupid = $client_group_id WHERE id = ".$this->id); // And we want to update all rr records too, that belong to this record $app->db->query("UPDATE dns_rr SET sys_groupid = $client_group_id WHERE zone = ".$this->id); } + if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($this->dataRecord["client_group_id"])) { + $client_group_id = intval($this->dataRecord["client_group_id"]); + $app->db->query("UPDATE dns_soa SET sys_groupid = $client_group_id WHERE id = ".$this->id); + // And we want to update all rr records too, that belong to this record + $app->db->query("UPDATE dns_rr SET sys_groupid = $client_group_id WHERE zone = ".$this->id); + } } } -- Gitblit v1.9.1