Commit 0e1c9a8d authored by Marius Burkard's avatar Marius Burkard

Merge branch '5543-changing-tag-method-in-policy-is-not-applied-to-spamfilter-users' into 'develop'

Resolve "Changing tag method in policy is not applied to spamfilter users"

Closes #5902 and #5543

See merge request !1322
parents edf105af efca2797
Pipeline #6441 passed with stage
in 13 seconds
......@@ -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');
......
......@@ -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 {
}
}
}
}
}
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment