diff --git a/administerusersbyrole.module b/administerusersbyrole.module index b8b9397..7668ad7 100644 --- a/administerusersbyrole.module +++ b/administerusersbyrole.module @@ -5,7 +5,7 @@ * Provides fine-grained permissions for creating, editing, and deleting users. * * This module allows site builders to set up fine-grained permissions for - * allowing users to edit and cancel other users Ñ more specific than + * allowing users to edit and cancel other users Ñ more specific than * Drupal Core's all-or-nothing 'administer users' permission. It also * provides and enforces a 'create users' permission. */ @@ -43,6 +43,7 @@ function administerusersbyrole_menu_alter(&$items) { $items['user/%user/edit']['access arguments'] = array(1); $items['user/%user/cancel']['access callback'] = '_administerusersbyrole_can_cancel_user'; $items['user/%user/cancel']['access arguments'] = array(1); + $items['admin/people/create']['page callback'] = '_administerusersbyrole_user_admin'; $items['admin/people/create']['access arguments'] = array('create users'); } @@ -105,6 +106,24 @@ function _administerusersbyrole_can_cancel_user($account) { } /** + * Replacement admin page callback file for the user module. + */ +function _administerusersbyrole_user_admin($callback_arg = '') { + $op = isset($_POST['op']) ? $_POST['op'] : $callback_arg; + + switch ($op) { + case t('Create new account'): + case 'create': + $admin = user_access('create users'); + $build['user_register'] = drupal_get_form('user_register_form', $admin); + break; + default: + $build = user_admin($callback_arg); + } + return $build; +} + +/** * Implements hook_form_FORM_ID_alter(). */ function administerusersbyrole_form_user_multiple_cancel_confirm_alter(&$form, &$form_state) {