Skip to content

Commit 0ba7fb6

Browse files
author
redray
committed
fixed dns serial format
1 parent 249541a commit 0ba7fb6

19 files changed

+2016
-1996
lines changed

interface/web/dns/dns_a_edit.php

Lines changed: 134 additions & 133 deletions
Original file line numberDiff line numberDiff line change
@@ -1,134 +1,135 @@
1-
<?php
2-
/*
3-
Copyright (c) 2007, Till Brehm, projektfarm Gmbh
4-
All rights reserved.
5-
6-
Redistribution and use in source and binary forms, with or without modification,
7-
are permitted provided that the following conditions are met:
8-
9-
* Redistributions of source code must retain the above copyright notice,
10-
this list of conditions and the following disclaimer.
11-
* Redistributions in binary form must reproduce the above copyright notice,
12-
this list of conditions and the following disclaimer in the documentation
13-
and/or other materials provided with the distribution.
14-
* Neither the name of ISPConfig nor the names of its contributors
15-
may be used to endorse or promote products derived from this software without
16-
specific prior written permission.
17-
18-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
19-
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20-
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21-
IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
22-
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
23-
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24-
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
25-
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
26-
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
27-
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28-
*/
29-
30-
31-
/******************************************
32-
* Begin Form configuration
33-
******************************************/
34-
35-
$tform_def_file = "form/dns_a.tform.php";
36-
37-
/******************************************
38-
* End Form configuration
39-
******************************************/
40-
41-
require_once('../../lib/config.inc.php');
42-
require_once('../../lib/app.inc.php');
43-
44-
//* Check permissions for module
45-
$app->auth->check_module_permissions('dns');
46-
47-
// Loading classes
48-
$app->uses('tpl,tform,tform_actions');
49-
$app->load('tform_actions');
50-
51-
class page_action extends tform_actions {
52-
53-
function onShowNew() {
54-
global $app, $conf;
55-
56-
// we will check only users, not admins
57-
if($_SESSION["s"]["user"]["typ"] == 'user') {
58-
59-
// Get the limits of the client
60-
$client_group_id = $_SESSION["s"]["user"]["default_group"];
61-
$client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id");
62-
63-
// Check if the user may add another mailbox.
64-
if($client["limit_dns_record"] >= 0) {
65-
$tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = $client_group_id");
66-
if($tmp["number"] >= $client["limit_dns_record"]) {
67-
$app->error($app->tform->wordbook["limit_dns_record_txt"]);
68-
}
69-
}
70-
}
71-
72-
parent::onShowNew();
73-
}
74-
75-
function onSubmit() {
76-
global $app, $conf;
77-
78-
// Get the parent soa record of the domain
79-
$soa = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = '".intval($_POST["zone"])."' AND ".$app->tform->getAuthSQL('r'));
80-
81-
// Check if Domain belongs to user
82-
if($soa["id"] != $_POST["zone"]) $app->tform->errorMessage .= $app->tform->wordbook["no_zone_perm"];
83-
84-
// Check the client limits, if user is not the admin
85-
if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin
86-
// Get the limits of the client
87-
$client_group_id = $_SESSION["s"]["user"]["default_group"];
88-
$client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id");
89-
90-
// Check if the user may add another mailbox.
91-
if($this->id == 0 && $client["limit_dns_record"] >= 0) {
92-
$tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = $client_group_id");
93-
if($tmp["number"] >= $client["limit_dns_record"]) {
94-
$app->error($app->tform->wordbook["limit_dns_record_txt"]);
95-
}
96-
}
97-
} // end if user is not admin
98-
99-
100-
// Set the server ID of the rr record to the same server ID as the parent record.
101-
$this->dataRecord["server_id"] = $soa["server_id"];
102-
103-
parent::onSubmit();
104-
}
105-
106-
function onAfterInsert() {
107-
global $app, $conf;
108-
109-
// Update the serial number of the SOA record
110-
$soa_id = intval($_POST["zone"]);
111-
$serial = time();
112-
$app->db->query("UPDATE dns_soa SET serial = $serial WHERE id = $soa_id");
113-
114-
// Set the sys_groupid of the rr record to be the same then the sys_groupid of the soa record
115-
$soa = $app->db->queryOneRecord("SELECT sys_groupid FROM dns_soa WHERE id = '".intval($this->dataRecord["zone"])."' AND ".$app->tform->getAuthSQL('r'));
116-
$app->db->query("UPDATE dns_rr SET sys_groupid = ".$soa['sys_groupid']." WHERE id = ".$this->id);
117-
118-
}
119-
120-
function onAfterUpdate() {
121-
global $app, $conf;
122-
123-
// Update the serial number of the SOA record
124-
$soa_id = intval($_POST["zone"]);
125-
$serial = time();
126-
$app->db->query("UPDATE dns_soa SET serial = $serial WHERE id = $soa_id");
127-
}
128-
129-
}
130-
131-
$page = new page_action;
132-
$page->onLoad();
133-
1+
<?php
2+
3+
/*
4+
Copyright (c) 2007, Till Brehm, projektfarm Gmbh
5+
All rights reserved.
6+
7+
Redistribution and use in source and binary forms, with or without modification,
8+
are permitted provided that the following conditions are met:
9+
10+
* Redistributions of source code must retain the above copyright notice,
11+
this list of conditions and the following disclaimer.
12+
* Redistributions in binary form must reproduce the above copyright notice,
13+
this list of conditions and the following disclaimer in the documentation
14+
and/or other materials provided with the distribution.
15+
* Neither the name of ISPConfig nor the names of its contributors
16+
may be used to endorse or promote products derived from this software without
17+
specific prior written permission.
18+
19+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22+
IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
23+
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24+
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
26+
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
28+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29+
*/
30+
31+
/******************************************
32+
* Begin Form configuration
33+
******************************************/
34+
35+
$tform_def_file = "form/dns_a.tform.php";
36+
37+
/******************************************
38+
* End Form configuration
39+
******************************************/
40+
41+
require_once('../../lib/config.inc.php');
42+
require_once('../../lib/app.inc.php');
43+
44+
//* Check permissions for module
45+
$app->auth->check_module_permissions('dns');
46+
47+
// Loading classes
48+
$app->uses('tpl,tform,tform_actions,validate_dns');
49+
$app->load('tform_actions');
50+
51+
class page_action extends tform_actions {
52+
53+
function onShowNew() {
54+
global $app, $conf;
55+
56+
// we will check only users, not admins
57+
if($_SESSION["s"]["user"]["typ"] == 'user') {
58+
59+
// Get the limits of the client
60+
$client_group_id = $_SESSION["s"]["user"]["default_group"];
61+
$client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id");
62+
63+
// Check if the user may add another mailbox.
64+
if($client["limit_dns_record"] >= 0) {
65+
$tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = $client_group_id");
66+
if($tmp["number"] >= $client["limit_dns_record"]) {
67+
$app->error($app->tform->wordbook["limit_dns_record_txt"]);
68+
}
69+
}
70+
}
71+
72+
parent::onShowNew();
73+
}
74+
75+
function onSubmit() {
76+
global $app, $conf;
77+
78+
// Get the parent soa record of the domain
79+
$soa = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = '".intval($_POST["zone"])."' AND ".$app->tform->getAuthSQL('r'));
80+
81+
// Check if Domain belongs to user
82+
if($soa["id"] != $_POST["zone"]) $app->tform->errorMessage .= $app->tform->wordbook["no_zone_perm"];
83+
84+
// Check the client limits, if user is not the admin
85+
if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin
86+
// Get the limits of the client
87+
$client_group_id = $_SESSION["s"]["user"]["default_group"];
88+
$client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id");
89+
90+
// Check if the user may add another mailbox.
91+
if($this->id == 0 && $client["limit_dns_record"] >= 0) {
92+
$tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = $client_group_id");
93+
if($tmp["number"] >= $client["limit_dns_record"]) {
94+
$app->error($app->tform->wordbook["limit_dns_record_txt"]);
95+
}
96+
}
97+
} // end if user is not admin
98+
99+
100+
// Set the server ID of the rr record to the same server ID as the parent record.
101+
$this->dataRecord["server_id"] = $soa["server_id"];
102+
103+
parent::onSubmit();
104+
}
105+
106+
function onAfterInsert() {
107+
global $app, $conf;
108+
109+
// Set the sys_groupid of the rr record to be the same then the sys_groupid of the soa record
110+
$soa = $app->db->queryOneRecord("SELECT sys_groupid FROM dns_soa WHERE id = '".intval($this->dataRecord["zone"])."' AND ".$app->tform->getAuthSQL('r'));
111+
$app->db->query("UPDATE dns_rr SET sys_groupid = ".$soa['sys_groupid']." WHERE id = ".$this->id);
112+
113+
// Update the serial number of the SOA record
114+
$soa_id = intval($_POST["zone"]);
115+
$serial = $app->validate_dns->increase_serial($soa["serial"]);
116+
$app->db->query("UPDATE dns_soa SET serial = $serial WHERE id = $soa_id");
117+
118+
}
119+
120+
function onAfterUpdate() {
121+
global $app, $conf;
122+
123+
// Update the serial number of the SOA record
124+
$soa = $app->db->queryOneRecord("SELECT serial FROM dns_soa WHERE id = '".intval($this->dataRecord["zone"])."' AND ".$app->tform->getAuthSQL('r'));
125+
$soa_id = intval($_POST["zone"]);
126+
$serial = $app->validate_dns->increase_serial($soa["serial"]);
127+
$app->db->query("UPDATE dns_soa SET serial = $serial WHERE id = $soa_id");
128+
}
129+
130+
}
131+
132+
$page = new page_action;
133+
$page->onLoad();
134+
134135
?>

interface/web/dns/dns_a_list.php

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
1-
<?php
2-
require_once('../../lib/config.inc.php');
3-
require_once('../../lib/app.inc.php');
4-
5-
/******************************************
6-
* Begin Form configuration
7-
******************************************/
8-
9-
$list_def_file = "list/dns_a.list.php";
10-
11-
/******************************************
12-
* End Form configuration
13-
******************************************/
14-
15-
//* Check permissions for module
16-
$app->auth->check_module_permissions('dns');
17-
18-
$app->uses('listform_actions');
19-
$app->listform_actions->SQLExtWhere = "type = 'A'";
20-
21-
$app->listform_actions->onLoad();
22-
23-
1+
<?php
2+
require_once('../../lib/config.inc.php');
3+
require_once('../../lib/app.inc.php');
4+
5+
/******************************************
6+
* Begin Form configuration
7+
******************************************/
8+
9+
$list_def_file = "list/dns_a.list.php";
10+
11+
/******************************************
12+
* End Form configuration
13+
******************************************/
14+
15+
//* Check permissions for module
16+
$app->auth->check_module_permissions('dns');
17+
18+
$app->uses('listform_actions');
19+
$app->listform_actions->SQLExtWhere = "type = 'A'";
20+
21+
$app->listform_actions->onLoad();
22+
23+
2424
?>

0 commit comments

Comments
 (0)