interface/web/dns/dns_soa_del.php | ●●●●● patch | view | raw | blame | history | |
interface/web/mail/mail_user_filter_edit.php | ●●●●● patch | view | raw | blame | history | |
interface/web/sites/web_domain_del.php | ●●●●● patch | view | raw | blame | history | |
server/conf/autoresponder.master | ●●●●● patch | view | raw | blame | history | |
server/plugins-available/maildrop_plugin.inc.php | ●●●●● patch | view | raw | blame | history |
interface/web/dns/dns_soa_del.php
@@ -45,7 +45,25 @@ //* Check permissions for module $app->auth->check_module_permissions('dns'); $app->uses("tform_actions"); $app->tform_actions->onDelete(); $app->uses('tpl,tform,tform_actions'); $app->load('tform_actions'); class page_action extends tform_actions { function onBeforeDelete() { global $app; $conf; if($app->tform->checkPerm($this->id,'d') == false) $app->error($app->lng('error_no_delete_permission')); // Delete all records that belog to this zone. $records = $app->db->queryAllRecords("SELECT id FROM dns_rr WHERE zone = '".intval($this->id)."'"); foreach($records as $rec) { $app->db->datalogDelete('dns_rr','id',$rec['id']); } } } $page = new page_action; $page->onDelete(); ?> interface/web/mail/mail_user_filter_edit.php
@@ -114,11 +114,12 @@ if($this->dataRecord["action"] == 'move') { $content .= " `test -e ".'$DEFAULT/'.$this->dataRecord["target"]."` `test -e ".'$DEFAULT/.'.$this->dataRecord["target"]."` if ( ".'$RETURNCODE'." != 0 ) { `maildirmake -f ".$this->dataRecord["target"].' $DEFAULT'."` `chmod -R 0700 ".'$DEFAULT/'.$this->dataRecord["target"]."` `echo INBOX.".$this->dataRecord["target"]." >> ".'$MAILDIR'."/courierimapsubscribed` } "; } @@ -139,7 +140,7 @@ $content .= "exception {\n"; if($this->dataRecord["action"] == 'move') { $content .= 'to $DEFAULT/'.$this->dataRecord["target"]."/\n"; $content .= 'to $DEFAULT/.'.$this->dataRecord["target"]."/\n"; } else { $content .= "to /dev/null\n"; } interface/web/sites/web_domain_del.php
@@ -45,7 +45,37 @@ //* Check permissions for module $app->auth->check_module_permissions('sites'); $app->uses("tform_actions"); $app->tform_actions->onDelete(); $app->uses('tpl,tform,tform_actions'); $app->load('tform_actions'); class page_action extends tform_actions { function onBeforeDelete() { global $app; $conf; if($app->tform->checkPerm($this->id,'d') == false) $app->error($app->lng('error_no_delete_permission')); // Delete all records that belog to this zone. $records = $app->db->queryAllRecords("SELECT domain_id FROM web_domain WHERE parent_domain_id = '".intval($this->id)."' AND type != 'vhost'"); foreach($records as $rec) { $app->db->datalogDelete('web_domain','domain_id',$rec['domain_id']); } // Delete all records that belog to this zone. $records = $app->db->queryAllRecords("SELECT ftp_user_id FROM ftp_user WHERE parent_domain_id = '".intval($this->id)."'"); foreach($records as $rec) { $app->db->datalogDelete('ftp_user','ftp_user_id',$rec['ftp_user_id']); } // Delete all records that belog to this zone. $records = $app->db->queryAllRecords("SELECT shell_user_id FROM shell_user WHERE parent_domain_id = '".intval($this->id)."'"); foreach($records as $rec) { $app->db->datalogDelete('shell_user','shell_user_id',$rec['shell_user_id']); } } } $page = new page_action; $page->onDelete(); ?> server/conf/autoresponder.master
@@ -1,8 +1,8 @@ cc $DEFAULT # cc $DEFAULT xfilter "reformail -r -t -I 'From: $LOGNAME'" /^To:.*/ getaddr{$MATCH}=~ /^.*/; MATH=tolower${MATCH} MATCH=tolower${MATCH} flock "{vmail_mailbox_base}/mailfilters/$HOST/$USER/.vacation.lock" { `fgrep -iqx "$MATCH" {vmail_mailbox_base}/mailfilters/$HOST/$USER/.vacation.lst 2>/dev/null || { \ echo "$MATCH" >> {vmail_mailbox_base}/mailfilters/$HOST/$USER/.vacation.lst ; \ @@ -11,4 +11,4 @@ } if ( $RETURNCODE == 0 ) exit to "| (cat - ; echo ''; cat {vmail_mailbox_base}/mailfilters/$HOST/$USER/.vacation.msg) | $SENDMAIL -t" cc "| (cat - ; echo ''; cat {vmail_mailbox_base}/mailfilters/$HOST/$USER/.vacation.msg) | $SENDMAIL -t" server/plugins-available/maildrop_plugin.inc.php
@@ -67,8 +67,31 @@ // Check if the config directory exists. if(!is_dir($this->mailfilter_config_dir)) { $app->log("Mailfilter config directory '".$this->mailfilter_config_dir."' does not exist.",LOGLEVEL_ERROR); $app->log("Mailfilter config directory '".$this->mailfilter_config_dir."' does not exist. Creating it now.",LOGLEVEL_WARN); mkdir($this->mailfilter_config_dir); exec("chown vmail ".$this->mailfilter_config_dir); exec("chmod 770 ".$this->mailfilter_config_dir); } if(isset($data["new"]["email"])) { $email_parts = explode("@",$data["new"]["email"]); } else { $email_parts = explode("@",$data["old"]["email"]); } // make sure that the config directories exist if(!is_dir($this->mailfilter_config_dir.'/'.$email_parts[1])) { mkdir($this->mailfilter_config_dir.'/'.$email_parts[1]); exec("chown vmail ".$this->mailfilter_config_dir.'/'.$email_parts[1]); exec("chmod 770 ".$this->mailfilter_config_dir.'/'.$email_parts[1]); } if(!is_dir($this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0])) { mkdir($this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0]); exec("chown vmail ".$this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0]); exec("chmod 770 ".$this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0]); } // Check if something has been changed regarding the autoresponders if($data["old"]["autoresponder_text"] != $data["new"]["autoresponder_text"] or $data["old"]["autoresponder"] != $data["new"]["autoresponder"] @@ -93,18 +116,6 @@ $email_parts = explode("@",$data["old"]["email"]); } // make sure that the config directories exist if(!is_dir($this->mailfilter_config_dir.'/'.$email_parts[1])) { mkdir($this->mailfilter_config_dir.'/'.$email_parts[1]); exec("chown vmail ".$this->mailfilter_config_dir.'/'.$email_parts[1]); exec("chmod 400 ".$this->mailfilter_config_dir.'/'.$email_parts[1]); } if(!is_dir($this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0])) { mkdir($this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0]); exec("chown vmail ".$this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0]); exec("chmod 400 ".$this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0]); } // Load the master template $tpl = file_get_contents($conf["rootpath"].'/conf/autoresponder.master'); $tpl = str_replace('{vmail_mailbox_base}',$mail_config["homedir_path"],$tpl); @@ -112,7 +123,7 @@ $config_file_path = $this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0].'/.autoresponder'; file_put_contents($config_file_path,$tpl); $app->log("Writing Autoresponder mailfilter file: $config_file_path",LOGLEVEL_DEBUG); exec("chmod 400 $config_file_path"); exec("chmod 770 $config_file_path"); exec("chown vmail $config_file_path"); unset($tpl); unset($config_file_path); @@ -120,14 +131,17 @@ // Write the autoresponder message file $config_file_path = $this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0].'/.vacation.msg'; file_put_contents($config_file_path,$data["new"]["autoresponder_text"]); exec("chmod 400 $config_file_path"); exec("chmod 770 $config_file_path"); exec("chown vmail $config_file_path"); $app->log("Writing Autoresponder message file: $config_file_path",LOGLEVEL_DEBUG); } } $app->log("HERE",LOGLEVEL_DEBUG); // Write the custom mailfilter script, if mailfilter recipe has changed if($data["old"]["custom_mailfilter"] != $data["new"]["custom_mailfilter"]) { $app->log("Mailfilter config has been changed",LOGLEVEL_DEBUG); if(trim($data["new"]["custom_mailfilter"]) != '') { // Delete the old filter recipe $email_parts = explode("@",$data["old"]["email"]); @@ -142,7 +156,8 @@ } $config_file_path = $this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0].'/.mailfilter'; file_put_contents($config_file_path,$data["new"]["custom_mailfilter"]); exec("chmod 400 $config_file_path"); $app->log("Writing new custom Mailfiter".$config_file_path,LOGLEVEL_DEBUG); exec("chmod 770 $config_file_path"); exec("chown vmail $config_file_path"); unset($config_file_path); } else { @@ -150,8 +165,9 @@ $email_parts = explode("@",$data["old"]["email"]); $file = $this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0].'/.mailfilter'; if(is_file($file)) unlink($file) or $app->log("Unable to delete file: $file",LOGLEVEL_WARN); $app->log("Deleting custom Mailfiter".$file,LOGLEVEL_DEBUG); } } //} } }