Index: administerusersbyrole.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/administerusersbyrole/administerusersbyrole.module,v retrieving revision 1.1.2.4 diff -u -r1.1.2.4 administerusersbyrole.module --- administerusersbyrole.module 28 Jan 2009 03:44:27 -0000 1.1.2.4 +++ administerusersbyrole.module 29 Apr 2009 22:12:11 -0000 @@ -17,40 +17,14 @@ return $perms; } -function administerusersbyrole_init() { - $items = array(); - if (arg(0)==='admin' && arg(1)==='user' && arg(2)==='user' && arg(3)==='create') { - if (!user_access('create users')) { - drupal_set_message(t('You do not have permission to create users.'), 'error'); - drupal_goto(""); - } - } - else if (arg(0)==='user') { - switch (arg(2)) { - case 'edit': - $uid = arg(1); - $account = user_load( array('uid' => $uid) ); - - if (!_administerusersbyrole_can_edit_user($account)) { - drupal_set_message(t('You do not have permission to edit %user.', array('%user' => $account->name)), 'error'); - drupal_goto('user/'. $account->uid); - } - - break; +function administerusersbyrole_menu_alter(&$callbacks) { + $callbacks['admin/user/user/create']['access arguments'] = array('create users'); - case 'delete': - $uid = arg(1); - $account = user_load( array('uid' => $uid) ); + $callbacks['user/%user/delete']['access callback'] = '_administerusersbyrole_can_delete_user'; + $callbacks['user/%user/delete']['access arguments'] = array(1); - if (!_administerusersbyrole_can_delete_user($account)) { - drupal_set_message(t('You do not have permission to delete %user.', array('%user' => $account->name)), 'error'); - drupal_goto('user/'. $account->uid); - } - - break; - } - } - return $items; + $callbacks['user/%user_category/edit']['access callback'] = '_administerusersbyrole_can_edit_user'; + $callbacks['user/%user_category/edit']['access arguments'] = array(1); } function _administerusersbyrole_can_edit_user($account) {