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-
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 ->datalogUpdate ('dns_rr ' , "sys_groupid = " .$ soa ['sys_groupid ' ], '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 ->datalogUpdate ('dns_soa ' , "serial = $ serial " , 'id ' , $ soa_id );
117+ }
118+
119+ function onAfterUpdate () {
120+ global $ app , $ conf ;
121+
122+ //* Update the serial number of the SOA record
123+ $ soa = $ app ->db ->queryOneRecord ("SELECT serial FROM dns_soa WHERE id = ' " .intval ($ this ->dataRecord ["zone " ])."' AND " .$ app ->tform ->getAuthSQL ('r ' ));
124+ $ soa_id = intval ($ _POST ["zone " ]);
125+ $ serial = $ app ->validate_dns ->increase_serial ($ soa ["serial " ]);
126+ $ app ->db ->datalogUpdate ('dns_soa ' , "serial = $ serial " , 'id ' , $ soa_id );
127+ }
128+
129+ }
130+
131+ $ page = new page_action ;
132+ $ page ->onLoad ();
133+
135134?>
0 commit comments