Skip to content
Snippets Groups Projects
Commit bf140b2a authored by Jon Reese's avatar Jon Reese
Browse files

Merge branch 'develop' into 5885-fix-cron-not-found-on-install

parents cfd412ee b7d0b674
No related branches found
No related tags found
No related merge requests found
Pipeline #6467 passed
Showing
with 53 additions and 41 deletions
......@@ -28,7 +28,7 @@ proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virt
smtpd_helo_required = yes
smtpd_helo_restrictions = reject_invalid_helo_hostname, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, permit_sasl_authenticated, reject_non_fqdn_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo, {reject_unknown_helo_hostname}, permit
smtpd_sender_restrictions = {reject_aslm} check_sender_access regexp:{config_dir}/tag_as_originating.re, permit_mynetworks{reject_slm}, permit_sasl_authenticated, reject_non_fqdn_sender, check_sender_access regexp:{config_dir}/tag_as_foreign.re, check_sender_access proxy:mysql:{config_dir}/mysql-virtual_sender.cf
smtpd_client_restrictions = check_client_access proxy:mysql:{config_dir}/mysql-virtual_client.cf, permit_inet_interfaces, permit_mynetworks{rbl_list}, permit_sasl_authenticated, reject_unauth_pipelining {reject_unknown_client_hostname}, permit
smtpd_client_restrictions = check_client_access proxy:mysql:{config_dir}/mysql-virtual_client.cf, permit_inet_interfaces, permit_mynetworks, permit_sasl_authenticated{rbl_list}, reject_unauth_pipelining {reject_unknown_client_hostname}, permit
smtpd_etrn_restrictions = permit_mynetworks, reject
smtpd_data_restrictions = permit_mynetworks, reject_unauth_pipelining, reject_multi_recipient_bounce, permit
smtpd_client_message_rate_limit = 100
......
......@@ -24,7 +24,7 @@ proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virt
smtpd_helo_required = yes
smtpd_helo_restrictions = reject_invalid_helo_hostname, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, permit_sasl_authenticated, reject_non_fqdn_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo, {reject_unknown_helo_hostname}, permit
smtpd_sender_restrictions = {reject_aslm} check_sender_access regexp:{config_dir}/tag_as_originating.re, permit_mynetworks{reject_slm}, permit_sasl_authenticated, reject_non_fqdn_sender, check_sender_access regexp:{config_dir}/tag_as_foreign.re, check_sender_access proxy:mysql:{config_dir}/mysql-virtual_sender.cf
smtpd_client_restrictions = check_client_access proxy:mysql:{config_dir}/mysql-virtual_client.cf, permit_inet_interfaces, permit_mynetworks{rbl_list}, permit_sasl_authenticated, reject_unauth_pipelining {reject_unknown_client_hostname}, permit
smtpd_client_restrictions = check_client_access proxy:mysql:{config_dir}/mysql-virtual_client.cf, permit_inet_interfaces, permit_mynetworks, permit_sasl_authenticated{rbl_list}, reject_unauth_pipelining {reject_unknown_client_hostname}, permit
smtpd_etrn_restrictions = permit_mynetworks, reject
smtpd_data_restrictions = permit_mynetworks, reject_unauth_pipelining, reject_multi_recipient_bounce, permit
smtpd_client_message_rate_limit = 100
......
......@@ -23,7 +23,7 @@ proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virt
smtpd_helo_required = yes
smtpd_helo_restrictions = reject_invalid_helo_hostname, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, permit_sasl_authenticated, reject_non_fqdn_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo, {reject_unknown_helo_hostname}, permit
smtpd_sender_restrictions = {reject_aslm} check_sender_access regexp:{config_dir}/tag_as_originating.re, permit_mynetworks{reject_slm}, permit_sasl_authenticated, reject_non_fqdn_sender, check_sender_access regexp:{config_dir}/tag_as_foreign.re, check_sender_access proxy:mysql:{config_dir}/mysql-virtual_sender.cf
smtpd_client_restrictions = check_client_access proxy:mysql:{config_dir}/mysql-virtual_client.cf, permit_inet_interfaces, permit_mynetworks{rbl_list}, permit_sasl_authenticated, reject_unauth_pipelining {reject_unknown_client_hostname}, permit
smtpd_client_restrictions = check_client_access proxy:mysql:{config_dir}/mysql-virtual_client.cf, permit_inet_interfaces, permit_mynetworks, permit_sasl_authenticated{rbl_list}, reject_unauth_pipelining {reject_unknown_client_hostname}, permit
smtpd_etrn_restrictions = permit_mynetworks, reject
smtpd_data_restrictions = permit_mynetworks, reject_unauth_pipelining, reject_multi_recipient_bounce, permit
smtpd_client_message_rate_limit = 100
......
......@@ -26,7 +26,7 @@ proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virt
smtpd_helo_required = yes
smtpd_helo_restrictions = reject_invalid_helo_hostname, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, permit_sasl_authenticated, reject_non_fqdn_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo, {reject_unknown_helo_hostname}, permit
smtpd_sender_restrictions = {reject_aslm} check_sender_access regexp:{config_dir}/tag_as_originating.re, permit_mynetworks{reject_slm}, permit_sasl_authenticated, reject_non_fqdn_sender, check_sender_access regexp:{config_dir}/tag_as_foreign.re, check_sender_access proxy:mysql:{config_dir}/mysql-virtual_sender.cf
smtpd_client_restrictions = check_client_access proxy:mysql:{config_dir}/mysql-virtual_client.cf, permit_inet_interfaces, permit_mynetworks{rbl_list}, permit_sasl_authenticated, reject_unauth_pipelining {reject_unknown_client_hostname}, permit
smtpd_client_restrictions = check_client_access proxy:mysql:{config_dir}/mysql-virtual_client.cf, permit_inet_interfaces, permit_mynetworks, permit_sasl_authenticated{rbl_list}, reject_unauth_pipelining {reject_unknown_client_hostname}, permit
smtpd_etrn_restrictions = permit_mynetworks, reject
smtpd_data_restrictions = permit_mynetworks, reject_unauth_pipelining, reject_multi_recipient_bounce, permit
smtpd_client_message_rate_limit = 100
......
......@@ -141,6 +141,8 @@ class tform_actions {
$app->tform->datalogSave('UPDATE', $this->id, $this->oldDataRecord, $new_data_record);
unset($new_data_record);
unset($old_data_record);
$this->onAfterDatalogSave();
}
if($_REQUEST["next_tab"] == '') {
......@@ -222,6 +224,7 @@ class tform_actions {
$new_data_record = $app->tform->getDataRecord($this->id);
$app->tform->datalogSave('INSERT', $this->id, array(), $new_data_record);
unset($new_data_record);
$this->onAfterDatalogSave(true);
}
......@@ -264,21 +267,19 @@ class tform_actions {
}
function onBeforeUpdate() {
global $app, $conf;
}
function onBeforeInsert() {
global $app, $conf;
}
function onAfterUpdate() {
global $app, $conf;
}
function onAfterInsert() {
global $app, $conf;
}
function onAfterDatalogSave($insert = false) {
}
/**
* Function called on data insert or update error
......@@ -297,7 +298,7 @@ class tform_actions {
*/
function onDelete() {
global $app, $conf, $list_def_file, $tform_def_file;
// Check CSRF Token
$app->auth->csrf_token_check('GET');
......
......@@ -74,10 +74,6 @@ $wb['session_allow_endless_txt'] = '"Eingeloggt bleiben" aktivieren';
$wb['No'] = 'Nein';
$wb['min_password_length_txt'] = 'Minimale Passwortlänge';
$wb['min_password_strength_txt'] = 'Minimale Passwortstärke';
$wb['ssh_authentication_txt'] = 'Allowed SSH authentication';
$wb['ssh_authentication_password_key'] = 'Password & Key';
$wb['ssh_authentication_password'] = 'Password';
$wb['ssh_authentication_key'] = 'Key';
$wb['ssh_authentication_txt'] = 'Erlaubte SSH Authentifizierung';
$wb['ssh_authentication_password_key'] = 'Passwort & Schlüssel';
$wb['ssh_authentication_password'] = 'Passwort';
......
<tmpl_if name="config_error_msg">
<div class="alert alert-danger">
<p>
<tmpl_var name="configuration_error_txt">
<div>
<div style="float:left;width:150px;">{tmpl_var name='config_error_tstamp'} :&nbsp;</div>
<div style="padding-left:150px;">{tmpl_var name='config_error_msg'}</div>
</div>
</p>
</div>
</tmpl_if>
<div class="pnl_toolsarea">
<tmpl_if name='datalog_changes_count' op='>' value='0'>
<div class="systemmonitor-state state-info">
......
<tmpl_if name="config_error_msg">
<!--<div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;">
<p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p>
<div>
<div style="float:left;width:150px;">{tmpl_var name='config_error_tstamp'} :&nbsp;</div>
<div style="padding-left:150px;">{tmpl_var name='config_error_msg'}</div>
</div>
</div>-->
<div class="alert alert-danger">
<p>
<tmpl_var name="configuration_error_txt">
......
......@@ -49,7 +49,9 @@ $app->uses('tpl,tform,tform_actions');
$app->load('tform_actions');
class page_action extends tform_actions {
private $record_has_changed = false;
function onShowNew() {
global $app;
......@@ -87,30 +89,32 @@ class page_action extends tform_actions {
parent::onSubmit();
}
function onAfterUpdate() {
global $app;
$record_has_changed = false;
$this->record_has_changed = false;
foreach($this->dataRecord as $key => $val) {
if(isset($this->oldDataRecord[$key]) && @$this->oldDataRecord[$key] != $val) {
// Record has changed
$record_has_changed = true;
$this->record_has_changed = true;
}
}
}
if($record_has_changed){
function onAfterDatalogSave($insert = false) {
global $app;
if(!$insert && $this->record_has_changed){
$spamfilter_users = $app->db->queryAllRecords("SELECT * FROM spamfilter_users WHERE policy_id = ?", intval($this->id));
if(is_array($spamfilter_users) && !empty($spamfilter_users)){
foreach($spamfilter_users as $spamfilter_user){
$app->db->datalogUpdate('spamfilter_users', $spamfilter_user, 'id', $spamfilter_user["id"], true);
// check if this is an email domain
if(substr($spamfilter_user['email'],0,1) == '@') {
$domain = substr($spamfilter_user['email'],1);
$forwardings = $app->db->queryAllRecords("SELECT * FROM mail_forwarding WHERE source LIKE ? OR destination LIKE ?", "%@" . $domain, "%@" . $domain);
// Force-update aliases and forwards
if(is_array($forwardings)) {
foreach($forwardings as $rec) {
......@@ -118,7 +122,7 @@ class page_action extends tform_actions {
}
}
}
}
}
}
......
......@@ -74,6 +74,7 @@ class cronjob_jailkit_maintenance extends cronjob {
foreach($records as $rec) {
if (!is_dir($rec['document_root']) || !is_dir($rec['document_root'].'/etc/jailkit')) {
$app->db->query("UPDATE `web_domain` SET `last_jailkit_update` = NOW() WHERE `document_root` = ?", $rec['document_root']);
continue;
}
......
......@@ -824,8 +824,7 @@ class ispcmail {
else $rec_string .= $recip;
}
$to = $this->_encodeHeader($rec_string, $this->mail_charset);
//$result = mail($to, $subject, $this->body, implode($this->_crlf, $headers));
$result = mail($to, $enc_subject, $this->body, implode($this->_crlf, $headers));
$result = mail($to, $enc_subject, $this->body, implode($this->_crlf, $headers), "-f $this->_mail_sender");
}
// Reset the subject in case mail is resent
......
......@@ -812,7 +812,7 @@ class monitor_tools {
}
public function send_notification_email($template, $placeholders, $recipients) {
global $conf;
global $app, $conf;
if(!is_array($recipients) || count($recipients) < 1) return false;
if(!is_array($placeholders)) $placeholders = array();
......@@ -829,6 +829,7 @@ class monitor_tools {
//* get mail headers, subject and body
$mailHeaders = '';
$mailFrom = '';
$mailBody = '';
$mailSubject = '';
$inHeader = true;
......@@ -844,6 +845,16 @@ class monitor_tools {
$mailSubject = trim($parts[1]);
continue;
}
if(strtolower($parts[0]) == 'From') {
$mailFrom = trim($parts[1]);
continue;
}
if(strtolower($parts[0]) == 'Cc') {
if (! in_array(trim($parts[1]), $recipients)) {
$recipients[] = trim($parts[1]);
}
continue;
}
unset($parts);
$mailHeaders .= trim($lines[$l]) . "\n";
} else {
......@@ -854,18 +865,14 @@ class monitor_tools {
//* Replace placeholders
$mailHeaders = strtr($mailHeaders, $placeholders);
$mailFrom = strtr($mailFrom, $placeholders);
$mailSubject = strtr($mailSubject, $placeholders);
$mailBody = strtr($mailBody, $placeholders);
for($r = 0; $r < count($recipients); $r++) {
$app->functions->mail($recipients[$r], $mailSubject, $mailBody, $mailHeaders);
$app->functions->mail($recipients[$r], $mailSubject, $mailBody, $mailFrom);
}
unset($mailSubject);
unset($mailHeaders);
unset($mailBody);
unset($lines);
return true;
}
......
......@@ -193,7 +193,7 @@ class postfix_server_plugin {
}
}
if ($i == count($new_options)) {
$new_options[] = array('reject_unknown_client_hostname');
$new_options[] = 'reject_unknown_client_hostname';
}
$app->system->exec_safe("postconf -e ?", 'smtpd_client_restrictions = '.implode(", ", $new_options));
......@@ -231,7 +231,7 @@ class postfix_server_plugin {
}
}
if ($i == count($new_options)) {
$new_options[] = array('reject_unknown_helo_hostname');
$new_options[] = 'reject_unknown_helo_hostname';
}
$app->system->exec_safe("postconf -e ?", 'smtpd_helo_restrictions = '.implode(", ", $new_options));
......
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