function httpbl_admin_settings in http:BL 7
Same name and namespace in other branches
- 5 httpbl.module \httpbl_admin_settings()
- 6.2 httpbl.module \httpbl_admin_settings()
- 6 httpbl.module \httpbl_admin_settings()
Implementation of hook_admin_settings()
** Configuration settings for httpBL
1 string reference to 'httpbl_admin_settings'
- httpbl_menu in ./
httpbl.module - Implementation of hook_menu().
File
- ./
httpbl.admin.inc, line 14 - Admin functions for httpbl.
Code
function httpbl_admin_settings($form, &$form_state) {
if (!$_POST && (!variable_get('httpbl_accesskey', NULL) || !variable_get('httpbl_check', HTTPBL_CHECK_NONE))) {
drupal_set_message(t('Blacklist lookups are currently disabled; enter your access key below and enable checks to enable blacklist lookups.'), 'error');
}
$form['core'] = array(
'#type' => 'fieldset',
'#title' => t('Http:BL'),
'#description' => t('Http:BL implements a malicious traffic blocker using http:BL by Project Honey Pot.<br />To use this capability you will need an http:BL access key, received from Project Honey Pot. For more information about http:BL, see the <a href="http://www.projecthoneypot.org/httpbl.php">http:BL homepage at projecthoneypot.org</a>.'),
'#collapsible' => TRUE,
);
$form['core']['httpbl_accesskey'] = array(
'#type' => 'textfield',
'#title' => t('http:BL Access Key'),
'#default_value' => variable_get('httpbl_accesskey', NULL),
'#description' => t('Your http:BL <a href="http://www.projecthoneypot.org/faq.php#g">Access Key</a>.'),
'#size' => 20,
'#maxlength' => 12,
);
$form['core']['httpbl_check'] = array(
'#type' => 'radios',
'#title' => t('Http:BL checks'),
'#default_value' => variable_get('httpbl_check', HTTPBL_CHECK_NONE),
'#options' => array(
t('Disabled'),
t('Only on comment submissions (Any blocked comments will remain unpublished, regardless of comment moderation permissions.)'),
t('On all page requests'),
),
'#description' => t('Determines when host/ip blacklist checking should occur.'),
);
$form['honeypot'] = array(
'#type' => 'fieldset',
'#title' => t('Honeypot'),
'#description' => t('Your Honeypot (spam trap) settings. For more information, see the <a href="http://www.projecthoneypot.org/">Project Honey Pot homepage</a>.'),
'#collapsible' => TRUE,
);
$form['honeypot']['httpbl_footer'] = array(
'#type' => 'checkbox',
'#title' => t('Add link to footer'),
'#default_value' => variable_get('httpbl_footer', FALSE),
'#description' => t('Whether to add your honeypot link to the footer of every page.'),
);
$form['honeypot']['httpbl_link'] = array(
'#type' => 'textfield',
'#title' => t('Honeypot link'),
'#default_value' => variable_get('httpbl_link', NULL),
'#description' => t('Your Honeypot (spam trap) link. This can be one of your <a href="http://www.projecthoneypot.org/manage_honey_pots.php">own Honey Pots</a> or a <a href="http://www.projecthoneypot.org/manage_quicklink.php">QuickLink</a>.'),
);
$form['honeypot']['httpbl_word'] = array(
'#type' => 'textfield',
'#title' => t('Link word'),
'#default_value' => variable_get('httpbl_word', 'randomness'),
'#description' => t('A random word which will be used as a link.'),
);
$form['advanced'] = array(
'#type' => 'fieldset',
'#title' => t('Logs, Stats, Threshold and Cache Settings'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$form['advanced']['httpbl_log'] = array(
'#type' => 'radios',
'#title' => t('Http:BL logging'),
'#default_value' => variable_get('httpbl_log', HTTPBL_LOG_MIN),
'#options' => array(
t('Off - (some errors only)'),
t('Log all positive lookups in the watchdog.'),
t('Verbose logging (useful for testing and learning how this works).'),
),
'#description' => t('Whether to enable logging and how much (verbose logging not recommended when checking all request.'),
);
$form['advanced']['httpbl_stats'] = array(
'#type' => 'checkbox',
'#title' => t('Enable statistics'),
'#default_value' => variable_get('httpbl_stats', TRUE),
'#description' => t('Whether to enable counting of positive lookups. Statistics are show on the Drupal <a href="@statusreport">Status report page</a>.', array(
'@statusreport' => url('admin/reports/status'),
)),
);
$form['advanced']['httpbl_cache'] = array(
'#type' => 'radios',
'#title' => t('Results Caching'),
'#default_value' => variable_get('httpbl_cache', HTTPBL_CACHE_DB),
'#options' => array(
t('Off'),
t('Http:BL cache'),
t('Http:BL cache and Drupal blocked_ips table'),
),
'#description' => t('Whether to enable database-based caching. Note that when this is disabled, IPs that fail the session whitelist test cannot be automatically banned. The Drupal Blocked_ips table allows visitors to be banned in the early stages of the bootstrap.'),
);
$blacklist_threshold_options = drupal_map_assoc(array(
50,
55,
60,
65,
70,
75,
80,
85,
90,
95,
100,
200,
255,
));
$form['advanced']['httpbl_black_threshold'] = array(
'#type' => 'select',
'#title' => t('Blacklisting Threshhold'),
'#default_value' => variable_get('httpbl_black_threshold', HTTPBL_THRESHOLD_BLACK),
'#options' => $blacklist_threshold_options,
'#description' => t('Threshold above which a user is blacklisted. Use this to fine-tune the Honeypot threat-levels for Black-listing. Note that threat levels at 100 or more effectively turns off Blacklisting (they are extremely rare). If you want to stop blacklisting altogether, set this to 255.'),
);
$form['advanced']['httpbl_message_black'] = array(
'#type' => 'textarea',
'#title' => t('Blacklist message'),
'#default_value' => variable_get('httpbl_message_black', 'Sorry, your IP address (%ip) has been blacklisted by <a href="%ipurl">http:BL</a>.%honeypot'),
'#description' => t("The message visitors will see when their IP is blacklisted. <em>%ip</em> will be replaced with the visitor's IP, <em>%ipurl</em> with a link to the Project Honeypot information page for that IP, <em>%honeypot</em> with your Honeypot link."),
);
$greylist_threshold_options = drupal_map_assoc(array(
1,
2,
3,
4,
5,
10,
15,
20,
25,
30,
35,
40,
45,
));
$form['advanced']['httpbl_grey_threshold'] = array(
'#type' => 'select',
'#title' => t('Greylisting Threat Level Threshhold'),
'#default_value' => variable_get('httpbl_grey_threshold', HTTPBL_THRESHOLD_GREY),
'#options' => $greylist_threshold_options,
'#description' => t('Threshold at which a user is allowed, above which a user is greylisted. Use this to fine-tune the Honeypot threat-levels that you are willing to permit for access to your site.'),
);
$form['advanced']['httpbl_message_grey'] = array(
'#type' => 'textarea',
'#title' => t('Greylist message'),
'#default_value' => variable_get('httpbl_message_grey', '<p>We\'re sorry!<br /> We <strong>cannot</strong> let you access our website at this time.</p> <p>Your IP address (%ip) has been identified as a <em>possible</em> source of suspicious, robotic traffic and has been greylisted by <a href="%ipurl">Project Honeypot</a>.</p><p>If you are an actual human visitor who can read simple instructions,<br />you may try getting whitelisted on <a href="%whitelisturl">%whitelisturl</a>.</p>%honeypot'),
'#description' => t("The message visitors will see when their IP is greylisted. <em>%ip</em> will be replaced with the visitor's IP, <em>%ipurl</em> with a link to the Project Honeypot information page for that IP, <em>%honeypot</em> with your Honeypot link, <em>%whitelisturl</em> with the internal whitelist request URL."),
);
$cache_period = drupal_map_assoc(array(
10800,
21600,
32400,
43200,
86400,
172800,
259200,
604800,
1209600,
2419200,
), 'format_interval');
$form['advanced']['httpbl_safe_offset'] = array(
'#type' => 'select',
'#title' => t('Safe Visitor Cache Expires in...'),
'#default_value' => variable_get('httpbl_safe_offset', 10800),
'#options' => $cache_period,
'#description' => t('How long to keep safe or white-listed IPs in cache.'),
);
$cache_period2 = drupal_map_assoc(array(
43200,
86400,
172800,
259200,
604800,
1209600,
1814400,
2419200,
), 'format_interval');
$form['advanced']['httpbl_greylist_offset'] = array(
'#type' => 'select',
'#title' => t('Grey Listed Visitor Cache Expires in...'),
'#default_value' => variable_get('httpbl_greylist_offset', 86400),
'#options' => $cache_period2,
'#description' => t('How long to keep grey-listed IPs in cache.'),
);
$cache_period3 = drupal_map_assoc(array(
604800,
1209600,
1814400,
2419200,
7257600,
15724800,
31536000,
63072000,
94608000,
), 'format_interval');
$form['advanced']['httpbl_blacklist_offset'] = array(
'#type' => 'select',
'#title' => t('Black Listed Visitor Cache Expires in...'),
'#default_value' => variable_get('httpbl_blacklist_offset', 31536000),
'#options' => $cache_period3,
'#description' => t('How long to keep black-listed IPs in cache (and also blocked in Drupal Blocked_ips table, when applicable).'),
);
return system_settings_form($form);
}