1- <?php
2-
3- /*
4- Copyright (c) 2005, 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- $ list_def_file = "list/mail_domain.list.php " ;
36- $ tform_def_file = "form/mail_domain.tform.php " ;
37-
38- /******************************************
39- * End Form configuration
40- ******************************************/
41-
42- require_once ('../../lib/config.inc.php ' );
43- require_once ('../../lib/app.inc.php ' );
44-
45- // Checke Berechtigungen für Modul
46- if (!stristr ($ _SESSION ["s " ]["user " ]["modules " ],$ _SESSION ["s " ]["module " ]["name " ])) {
47- header ("Location: ../index.php " );
48- exit ;
49- }
50-
51- $ app ->uses ("tform_actions " );
52- $ app ->tform_actions ->onDelete ();
53-
1+ <?php
2+
3+ /*
4+ Copyright (c) 2005, 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+ $ list_def_file = "list/mail_domain.list.php " ;
36+ $ tform_def_file = "form/mail_domain.tform.php " ;
37+
38+ /******************************************
39+ * End Form configuration
40+ ******************************************/
41+
42+ require_once ('../../lib/config.inc.php ' );
43+ require_once ('../../lib/app.inc.php ' );
44+
45+ // Checke Berechtigungen für Modul
46+ if (!stristr ($ _SESSION ["s " ]["user " ]["modules " ],$ _SESSION ["s " ]["module " ]["name " ])) {
47+ header ("Location: ../index.php " );
48+ exit ;
49+ }
50+
51+ // Loading classes
52+ $ app ->uses ('tpl,tform,tform_actions ' );
53+ $ app ->load ('tform_actions ' );
54+
55+ class page_action extends tform_actions {
56+
57+ function onBeforeDelete () {
58+ global $ app ; $ conf ;
59+
60+ $ domain = $ this ->dataRecord ['domain ' ];
61+
62+ // Before we delete the email domain,
63+ // we will delete all depending records.
64+
65+ // Delete all forwardings where the osurce or destination belongs to this domain
66+ $ records = $ app ->db ->queryAllRecords ("SELECT forwarding_id as id FROM mail_forwarding WHERE source like '%@ " .$ app ->db ->quote ($ domain )."' OR destination like '%@ " .$ app ->db ->quote ($ domain )."' " );
67+ foreach ($ records as $ rec ) {
68+ $ app ->db ->datalogDelete ('mail_forwarding ' ,'forwarding_id ' ,$ rec ['id ' ]);
69+ }
70+
71+ // Delete all fetchmail accounts where destination belongs to this domain
72+ $ records = $ app ->db ->queryAllRecords ("SELECT mailget_id as id FROM mail_get WHERE destination like '%@ " .$ app ->db ->quote ($ domain )."' " );
73+ foreach ($ records as $ rec ) {
74+ $ app ->db ->datalogDelete ('mail_get ' ,'mailget_id ' ,$ rec ['id ' ]);
75+ }
76+
77+ // Delete all mailboxes where destination belongs to this domain
78+ $ records = $ app ->db ->queryAllRecords ("SELECT mailuser_id as id FROM mail_user WHERE email like '%@ " .$ app ->db ->quote ($ domain )."' " );
79+ foreach ($ records as $ rec ) {
80+ $ app ->db ->datalogDelete ('mail_user ' ,'mailuser_id ' ,$ rec ['id ' ]);
81+ }
82+
83+
84+
85+ }
86+ }
87+
88+ $ page = new page_action ;
89+ $ page ->onDelete ();
90+
5491?>
0 commit comments