MDL-15244, add ability to block ip addresses for HEAD.

This commit is contained in:
dongsheng
2008-07-14 08:14:31 +00:00
parent fb94cd4848
commit ab99c8f014
4 changed files with 60 additions and 0 deletions
+44
View File
@@ -0,0 +1,44 @@
<?php // $Id$
require('../config.php');
require_once($CFG->libdir.'/adminlib.php');
$iplist = optional_param('list', '', PARAM_CLEAN);
admin_externalpage_setup('ipblocker');
if ($form = data_submitted()) {
if (confirm_sesskey()) {
$ips = explode("\n", $iplist);
$result = array();
foreach($ips as $ip) {
if(preg_match('#^(\d{1,3})(\.\d{1,3}){0,3}$#', $ip, $match) ||
preg_match('#^(\d{1,3})(\.\d{1,3}){0,3}(\/\d{1,2})$#', $ip, $match) ||
preg_match('#^(\d{1,3})(\.\d{1,3}){3}(-\d{1,3})$#', $ip, $match)) {
$result[] = $ip;
}
}
set_config('blockedip', serialize($result));
}
}
admin_externalpage_print_header();
$iplist = unserialize(get_config(null, 'blockedip'));
if(empty($iplist)) {
$iplist = array();
}
$str = '';
foreach($iplist as $ip){
$str .= $ip."\n";
}
echo '<div style="text-align:center;">';
echo '<form method="post">';
echo '<h1>'.get_string('blockediplist', 'admin').'</h1>';
print_textarea(false, 20, 50, 600, 400, "list", $str);
echo '<p><input type="hidden" name="sesskey" value="'.sesskey().'" />';
echo '<input type="submit" value="'.get_string('submit').'" />';
echo helpbutton('blockip', 'Help');
echo '</p>';
echo '</form>';
echo '</div>';
admin_externalpage_print_footer();
?>
+2
View File
@@ -161,6 +161,8 @@ $ADMIN->add('server', $temp);
$ADMIN->add('server', new admin_externalpage('maintenancemode', get_string('sitemaintenancemode', 'admin'), "$CFG->wwwroot/$CFG->admin/maintenance.php"));
$ADMIN->add('server', new admin_externalpage('ipblocker', get_string('ipblocker', 'admin'), "$CFG->wwwroot/$CFG->admin/ipblocker.php"));
$temp = new admin_settingpage('cleanup', get_string('cleanup', 'admin'));
$temp->add(new admin_setting_configselect('longtimenosee', get_string('longtimenosee', 'admin'), get_string('configlongtimenosee', 'admin'), 120, array(0 => get_string('never'),