Allow automatically blocking a range of IPs when spam is detected

This commit is contained in:
Kijin Sung 2016-12-13 22:32:38 +09:00
parent 5cab16418e
commit aef7f01ed9
4 changed files with 93 additions and 30 deletions

View file

@ -5,32 +5,64 @@
<li><a href="{getUrl('','module','admin','act','dispSpamfilterAdminDeniedWordList')}">{$lang->cmd_denied_word}</a></li>
<li class="x_active"><a href="{getUrl('','module','admin','act','dispSpamfilterAdminConfigBlock')}">{$lang->cmd_config_block}</a></li>
</ul>
<form action="./" method="post" id="spamfilterConfig">
<form action="./" method="post" id="spamfilterConfig" class="x_form-horizontal">
<input type="hidden" name="act" value="procSpamfilterAdminInsertConfig" />
<input type="hidden" name="module" value="spamfilter" />
<input type="hidden" name="ruleset" value="insertConfig" />
<input type="hidden" name="xe_validator_id" value="modules/spamfilter/tpl/1" />
<div class="x_control-group">
<p><strong>{$lang->cmd_interval}</strong></p>
<label for="spamCond1_yes" class="x_inline">
<input type="radio" name="limits" id="spamCond1_yes" value="Y" checked="checked"|cond="$config->limits=='Y' || $config->limits ==''" />
{$lang->cmd_yes}
</label>
<label for="spamCond1_no" class="x_inline">
<input type="radio" name="limits" id="spamCond1_no" value="N" checked="checked"|cond="$config->limits!='Y' && $config->limits !=''" />
{$lang->cmd_no}
</label>
<label class="x_control-label">{$lang->cmd_interval}</label>
<div class="x_controls">
<label for="spamCond1_yes" class="x_inline">
<input type="radio" name="limits" id="spamCond1_yes" value="Y" checked="checked"|cond="$config->limits=='Y' || $config->limits ==''" />
{$lang->cmd_yes}
</label>
<label for="spamCond1_no" class="x_inline">
<input type="radio" name="limits" id="spamCond1_no" value="N" checked="checked"|cond="$config->limits!='Y' && $config->limits !=''" />
{$lang->cmd_no}
</label>
<p class="x_help-block">{$lang->cmd_interval_help}</p>
</div>
</div>
<div class="x_control-group">
<p><strong>{$lang->cmd_check_trackback}</strong></p>
<label for="spamCond2_yes" class="x_inline">
<input type="radio" name="check_trackback" id="spamCond2_yes" value="Y" checked="checked"|cond="$config->check_trackback=='Y' || $config->check_trackback==''" />
{$lang->cmd_yes}
</label>
<label for="spamCond2_no" class="x_inline">
<input type="radio" name="check_trackback" id="spamCond2_no" value="N" checked="checked"|cond="$config->check_trackback!='Y' && $config->check_trackback!=''" / >
{$lang->cmd_no}
</label>
<label class="x_control-label">{$lang->cmd_check_trackback}</label>
<div class="x_controls">
<label for="spamCond2_yes" class="x_inline">
<input type="radio" name="check_trackback" id="spamCond2_yes" value="Y" checked="checked"|cond="$config->check_trackback=='Y' || $config->check_trackback==''" />
{$lang->cmd_yes}
</label>
<label for="spamCond2_no" class="x_inline">
<input type="radio" name="check_trackback" id="spamCond2_no" value="N" checked="checked"|cond="$config->check_trackback!='Y' && $config->check_trackback!=''" / >
{$lang->cmd_no}
</label>
<p class="x_help-block">{$lang->cmd_check_trackback_help}</p>
</div>
</div>
<div class="x_control-group">
<label for="ipv4_block_range" class="x_control-label">{$lang->cmd_ipv4_block_range}</label>
<div class="x_controls">
<select name="ipv4_block_range" id="ipv4_block_range">
<option value="/32" selected="selected"|cond="!$config->ipv4_block_range">/32 ({$lang->cmd_block_range_self})</option>
{$suffixes = range(28, 16, -4)}
<option loop="$suffixes => $suffix" value="/{$suffix}" selected="selected"|cond="$config->ipv4_block_range == ('/' . $suffix)">/{$suffix}
<block cond="$suffix % 8 == 0">({sprintf($lang->cmd_block_range, (32 - $suffix) / 8)})</block>
</option>
</select>
<p class="x_help-block">{$lang->cmd_block_range_help}</p>
</div>
</div>
<div class="x_control-group">
<label for="ipv6_block_range" class="x_control-label">{$lang->cmd_ipv6_block_range}</label>
<div class="x_controls">
<select name="ipv6_block_range" id="ipv6_block_range">
<option value="/32" selected="selected"|cond="!$config->ipv6_block_range">/128 ({$lang->cmd_block_range_self})</option>
{$suffixes = range(120, 64, -8)}
<option loop="$suffixes => $suffix" value="/{$suffix}" selected="selected"|cond="$config->ipv6_block_range == ('/' . $suffix)">/{$suffix}
<block cond="$suffix % 16 == 0">({sprintf($lang->cmd_block_range, (128 - $suffix) / 16)})</block>
</option>
</select>
<p class="x_help-block">{$lang->cmd_block_range_help}</p>
</div>
</div>
<div class="x_clearfix btnArea">
<div class="x_pull-right">