function administerusersbyrole_update_7200 in Administer Users by Role 7.2
Update permissions to match the new values used in version 2.
File
- ./
administerusersbyrole.install, line 23 - Update migration code for administerusersbyrole.
Code
function administerusersbyrole_update_7200() {
$roles = user_roles(TRUE);
foreach ($roles as $rid => $role) {
// Rename permissions from old value to new.
foreach (array(
'edit',
'cancel',
) as $op) {
$new_name = _administerusersbyrole_build_perm_string($rid, $op);
if ($rid === DRUPAL_AUTHENTICATED_RID) {
$old_name = "{$op} users with no custom roles";
}
else {
$old_name = _administerusersbyrole_old_perm_string($role, $op);
}
$old_name_extra = _administerusersbyrole_old_perm_string($rid, $op, TRUE);
// Perform the database updates.
db_update('role_permission')
->fields(array(
'permission' => $new_name,
))
->condition(db_or()
->condition('permission', $old_name), db_or()
->condition('permission', $old_name_extra))
->condition('module', 'administerusersbyrole')
->execute();
}
// Degrade 'administer users' permission to 'access users overview' for non-admins.
// We have to make a guess as to what counts as an admin.
$perms = user_role_permissions(array(
$rid => $role,
));
if ($perms[$rid]['administer users'] && !$perms[$rid]['administer permissions']) {
user_role_change_permissions($rid, array(
'administer users' => FALSE,
'access users overview' => TRUE,
));
}
}
return t('Role permissions updated for upgrade to Administer Users by Role version 2. Please check the new permissions are correct, in particular for "administer users".');
}