Skip to content
Snippets Groups Projects
Commit a67681db authored by Sergio's avatar Sergio
Browse files

disable onSubmit when dns' records tab is submitted

parent 3e94c8b7
No related branches found
No related tags found
No related merge requests found
...@@ -199,78 +199,79 @@ class page_action extends tform_actions { ...@@ -199,78 +199,79 @@ class page_action extends tform_actions {
function onSubmit() { function onSubmit() {
global $app, $conf; global $app, $conf;
/* check if the domain module is used - and check if the selected domain can be used! */ if ($app->tform->getCurrentTab() == 'dns_soa') {
$app->uses('ini_parser,getconf'); /* check if the domain module is used - and check if the selected domain can be used! */
$settings = $app->getconf->get_global_config('domains'); $app->uses('ini_parser,getconf');
if ($settings['use_domain_module'] == 'y') { $settings = $app->getconf->get_global_config('domains');
if ($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { if ($settings['use_domain_module'] == 'y') {
$this->dataRecord['client_group_id'] = $app->tools_sites->getClientIdForDomain($this->dataRecord['origin']); if ($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) {
} $this->dataRecord['client_group_id'] = $app->tools_sites->getClientIdForDomain($this->dataRecord['origin']);
$domain_check = $app->tools_sites->checkDomainModuleDomain($this->dataRecord['origin']); }
if(!$domain_check) { $domain_check = $app->tools_sites->checkDomainModuleDomain($this->dataRecord['origin']);
// invalid domain selected if(!$domain_check) {
$app->tform->errorMessage .= $app->tform->lng("origin_error_empty")."<br />"; // invalid domain selected
} else { $app->tform->errorMessage .= $app->tform->lng("origin_error_empty")."<br />";
$this->dataRecord['origin'] = $domain_check.'.'; } else {
$this->dataRecord['origin'] = $domain_check.'.';
}
} }
}
if($_SESSION["s"]["user"]["typ"] != 'admin') { if($_SESSION["s"]["user"]["typ"] != 'admin') {
// Get the limits of the client // Get the limits of the client
$client_group_id = $_SESSION["s"]["user"]["default_group"]; $client_group_id = $_SESSION["s"]["user"]["default_group"];
$client = $app->db->queryOneRecord("SELECT limit_dns_zone, dns_servers FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); $client = $app->db->queryOneRecord("SELECT limit_dns_zone, dns_servers FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id");
$client['dns_servers_ids'] = explode(',', $client['dns_servers']); $client['dns_servers_ids'] = explode(',', $client['dns_servers']);
// Check if chosen server is in authorized servers for this client // Check if chosen server is in authorized servers for this client
if (!(is_array($client['dns_servers_ids']) && in_array($this->dataRecord["server_id"], $client['dns_servers_ids'])) && $_SESSION["s"]["user"]["typ"] != 'admin') { if (!(is_array($client['dns_servers_ids']) && in_array($this->dataRecord["server_id"], $client['dns_servers_ids'])) && $_SESSION["s"]["user"]["typ"] != 'admin') {
$app->error($app->tform->wordbook['error_not_allowed_server_id']); $app->error($app->tform->wordbook['error_not_allowed_server_id']);
} }
// When the record is updated // When the record is updated
if($this->id > 0) { if($this->id > 0) {
// restore the server ID if the user is not admin and record is edited // restore the server ID if the user is not admin and record is edited
$tmp = $app->db->queryOneRecord("SELECT server_id FROM dns_soa WHERE id = ".$app->functions->intval($this->id)); $tmp = $app->db->queryOneRecord("SELECT server_id FROM dns_soa WHERE id = ".$app->functions->intval($this->id));
$this->dataRecord["server_id"] = $tmp["server_id"]; $this->dataRecord["server_id"] = $tmp["server_id"];
unset($tmp); unset($tmp);
// When the record is inserted // When the record is inserted
} else { } else {
// Check if the user may add another maildomain. // Check if the user may add another maildomain.
if($client["limit_dns_zone"] >= 0) { if($client["limit_dns_zone"] >= 0) {
$tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_soa WHERE sys_groupid = $client_group_id"); $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_soa WHERE sys_groupid = $client_group_id");
if($tmp["number"] >= $client["limit_dns_zone"]) { if($tmp["number"] >= $client["limit_dns_zone"]) {
$app->error($app->tform->wordbook["limit_dns_zone_txt"]); $app->error($app->tform->wordbook["limit_dns_zone_txt"]);
}
} }
} }
} }
}
/* /*
// Update the serial number of the SOA record // Update the serial number of the SOA record
$soa = $app->db->queryOneRecord("SELECT serial FROM dns_soa WHERE id = ".$this->id); $soa = $app->db->queryOneRecord("SELECT serial FROM dns_soa WHERE id = ".$this->id);
$this->dataRecord["serial"] = $app->validate_dns->increase_serial($soa["serial"]); $this->dataRecord["serial"] = $app->validate_dns->increase_serial($soa["serial"]);
*/ */
//* Check if soa, ns and mbox have a dot at the end //* Check if soa, ns and mbox have a dot at the end
if(strlen($this->dataRecord["origin"]) > 0 && substr($this->dataRecord["origin"], -1, 1) != '.') $this->dataRecord["origin"] .= '.'; if(strlen($this->dataRecord["origin"]) > 0 && substr($this->dataRecord["origin"], -1, 1) != '.') $this->dataRecord["origin"] .= '.';
if(strlen($this->dataRecord["ns"]) > 0 && substr($this->dataRecord["ns"], -1, 1) != '.') $this->dataRecord["ns"] .= '.'; if(strlen($this->dataRecord["ns"]) > 0 && substr($this->dataRecord["ns"], -1, 1) != '.') $this->dataRecord["ns"] .= '.';
if(strlen($this->dataRecord["mbox"]) > 0 && substr($this->dataRecord["mbox"], -1, 1) != '.') $this->dataRecord["mbox"] .= '.'; if(strlen($this->dataRecord["mbox"]) > 0 && substr($this->dataRecord["mbox"], -1, 1) != '.') $this->dataRecord["mbox"] .= '.';
//* Replace @ in mbox //* Replace @ in mbox
if(stristr($this->dataRecord["mbox"], '@')) { if(stristr($this->dataRecord["mbox"], '@')) {
$this->dataRecord["mbox"] = str_replace('@', '.', $this->dataRecord["mbox"]); $this->dataRecord["mbox"] = str_replace('@', '.', $this->dataRecord["mbox"]);
} }
$this->dataRecord["xfer"] = preg_replace('/\s+/', '', $this->dataRecord["xfer"]); $this->dataRecord["xfer"] = preg_replace('/\s+/', '', $this->dataRecord["xfer"]);
$this->dataRecord["also_notify"] = preg_replace('/\s+/', '', $this->dataRecord["also_notify"]); $this->dataRecord["also_notify"] = preg_replace('/\s+/', '', $this->dataRecord["also_notify"]);
//* Check if a secondary zone with the same name already exists //* Check if a secondary zone with the same name already exists
$tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_slave WHERE origin = ? AND server_id = ?", $this->dataRecord["origin"], $this->dataRecord["server_id"]); $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_slave WHERE origin = ? AND server_id = ?", $this->dataRecord["origin"], $this->dataRecord["server_id"]);
if($tmp["number"] > 0) { if($tmp["number"] > 0) {
$app->error($app->tform->wordbook["origin_error_unique"]); $app->error($app->tform->wordbook["origin_error_unique"]);
}
} }
parent::onSubmit(); parent::onSubmit();
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment