This module extends the existing user_restrictions module by providing a mechanism for the bulk import of prohibited words in the screen name during user registration. This is useful to ensure that on a community site no users attempt to create accounts with offensive names. Without this module, any admin wishing to add a few hundred words to the user_restrictions list would face quite an onerous chore to type them all in. With the module, they can be cut and pasted from an existing source into a textarea in one go. The textarea allows for carriage return / linefeeds and will also remove commas between words.
The module was very easy to put together, so I don't believe there is anything requiring further expansion. If you disagree, drop me a line and I'll answer your questions. :)
user_resitrictions_batch.module
user_resitrictions_batch.info
<?php
/*
* File : user_restrictions_batch.module
* Title : Batch add of user restrictions
* Sponsor : Hangar Seven Digital
* Author : Badzilla www.badzilla.co.uk @badzillacouk
*
* This work is copyright Badzilla under the GPL licence terms and conditions
*
*/
/**
* Implements hook_menu().
*/
function user_restrictions_batch_menu() {
$edit_restrictions = array('edit user restriction rules');
$items = array();
$items['admin/config/people/user-restrictions/batch-input'] = array(
'title' => 'Batch input ',
'page callback' => 'drupal_get_form',
'page arguments' => array('user_restrictions_batch_input_form', 4),
'access arguments' => $edit_restrictions,
'type' => MENU_LOCAL_ACTION,
);
return $items;
}
function user_restrictions_batch_input_form($form, &$form_state) {
$form = array();
$form['banned'] = array(
'#type' => 'textarea',
'#title' => t('Enter prohibited words'),
'#required' => TRUE,
'#weight' => 0
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Save rule'),
);
return $form;
}
function user_restrictions_batch_input_form_submit($form, &$form_state) {
$lines = explode("\r\n", $form_state['values']['banned']);
if (count($lines))
foreach($lines as $line) {
$phrases = explode(",", $line);
if (count($phrases))
foreach($phrases as $phrase)
if ($phrase = trim($phrase))
db_insert('user_restrictions')
->fields(array('urid' => NULL, 'mask' => $phrase, 'type' => 'name', 'subtype' => '', 'status' => 0, 'expire' => 0))
->execute();
}
}
?>name = User restrictions_batch description = Brute force batch insertion of restricted words. core = 7.x project = "user_restrictions"