function _administerusersbyrole_can_edit_user in Administer Users by Role 7
Same name and namespace in other branches
- 5 administerusersbyrole.module \_administerusersbyrole_can_edit_user()
- 6 administerusersbyrole.module \_administerusersbyrole_can_edit_user()
2 calls to _administerusersbyrole_can_edit_user()
1 string reference to '_administerusersbyrole_can_edit_user'
- administerusersbyrole_menu_alter in ./
administerusersbyrole.module - Implements hook_menu_alter().
File
- ./
administerusersbyrole.module, line 49 - Provides fine-grained permissions for creating, editing, and deleting users.
Code
function _administerusersbyrole_can_edit_user($account) {
global $user;
if ($account->uid == $user->uid) {
return TRUE;
}
// allow only uid1 to edit uid1
if ($account->uid == 1) {
return FALSE;
}
// We mave been passed a mock account object. If so, load the user to ensure
// that we have roles to check against.
if (!isset($account->roles)) {
$account = user_load($account->uid);
}
if ($account->roles === array(
DRUPAL_AUTHENTICATED_RID => 'authenticated user',
)) {
if (!user_access('edit users with no custom roles')) {
return FALSE;
}
}
$allow = TRUE;
foreach ($account->roles as $rid => $role) {
if ($rid === DRUPAL_AUTHENTICATED_RID) {
continue;
}
if (user_access(_administerusersbyrole_build_perm_string($role, 'edit', TRUE))) {
return TRUE;
}
if (!user_access(_administerusersbyrole_build_perm_string($role, 'edit', FALSE))) {
$allow = FALSE;
}
}
return $allow;
}