Use object cache for spamfilter IP and word list

This commit is contained in:
Kijin Sung 2019-07-27 23:43:56 +09:00
parent 1bf488e367
commit 606e53122e
3 changed files with 23 additions and 5 deletions

View file

@ -66,7 +66,6 @@ class spamfilterAdminController extends spamfilter
$this->setMessage(lang('success_registed').$message_fail);
}
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispSpamfilterAdminDeniedIPList');
$this->setRedirectUrl($returnUrl);
}
@ -126,7 +125,10 @@ class spamfilterAdminController extends spamfilter
$args = new stdClass;
$args->ipaddress = $ipaddress;
return executeQuery('spamfilter.deleteDeniedIP', $args);
$output = executeQuery('spamfilter.deleteDeniedIP', $args);
Rhymix\Framework\Cache::delete('spamfilter:denied_ip_list');
return $output;
}
/**
@ -167,6 +169,8 @@ class spamfilterAdminController extends spamfilter
{
$output->add('fail_list', $fail_list);
}
Rhymix\Framework\Cache::delete('spamfilter:denied_word_list');
return $output;
}
@ -179,7 +183,10 @@ class spamfilterAdminController extends spamfilter
if(!$word) return;
$args = new stdClass;
$args->word = $word;
return executeQuery('spamfilter.deleteDeniedWord', $args);
$output = executeQuery('spamfilter.deleteDeniedWord', $args);
Rhymix\Framework\Cache::delete('spamfilter:denied_word_list');
return $output;
}
}
/* End of file spamfilter.admin.controller.php */

View file

@ -195,6 +195,7 @@ class spamfilterController extends spamfilter
$output->add('fail_list', $fail_list);
}
Rhymix\Framework\Cache::delete('spamfilter:denied_ip_list');
return $output;
}

View file

@ -42,7 +42,12 @@ class spamfilterModel extends spamfilter
*/
function isDeniedIP()
{
$ip_list = $this->getDeniedIPList();
$ip_list = Rhymix\Framework\Cache::get('spamfilter:denied_ip_list');
if ($ip_list === null)
{
$ip_list = $this->getDeniedIPList();
Rhymix\Framework\Cache::set('spamfilter:denied_ip_list', $ip_list);
}
if(!count($ip_list)) return new BaseObject();
$ip_ranges = array();
@ -77,7 +82,12 @@ class spamfilterModel extends spamfilter
*/
function isDeniedWord($text)
{
$word_list = $this->getDeniedWordList();
$word_list = Rhymix\Framework\Cache::get('spamfilter:denied_word_list');
if ($word_list === null)
{
$word_list = $this->getDeniedWordList();
Rhymix\Framework\Cache::set('spamfilter:denied_word_list', $ip_list);
}
if(!count($word_list)) return new BaseObject();
$text = strtolower(utf8_trim(utf8_normalize_spaces(htmlspecialchars_decode(strip_tags($text, '<a><img>')))));