You are here

function role_delegation_form_user_admin_role_submit in Role Delegation 7

Same name and namespace in other branches
  1. 6 role_delegation.module \role_delegation_form_user_admin_role_submit()

Submit function for the user_admin_role form: When a role is renamed, renames the "assign role" permission for that role. We can't use hook_user_role_update() for this, because it doesn't have access to the old role name.

1 string reference to 'role_delegation_form_user_admin_role_submit'
role_delegation_form_user_admin_role_alter in ./role_delegation.module
Implements hook_form_FORM_ID_alter() for user_admin_role().

File

./role_delegation.module, line 212
This module allows site administrators to grant some roles the authority to change roles assigned to users, without them needing the 'administer access control' permission.

Code

function role_delegation_form_user_admin_role_submit($form, $form_state) {
  $op = $form_state['values']['op'];
  if ($op != t('Save role')) {
    return;
  }
  $oldrole = $form_state['build_info']['args'][0]->name;
  $newrole = $form_state['values']['name'];
  if ($oldrole == $newrole) {
    return;
  }
  db_update('role_permission')
    ->condition('permission', "assign {$oldrole} role")
    ->fields(array(
    'permission' => "assign {$newrole} role",
  ))
    ->execute();
}