--- roleassign.module Tue Apr 21 14:22:43 2009 +++ roleassign.module Sat Jan 22 14:01:06 2011 @@ -101,6 +101,14 @@ '#default_value' => variable_get('roleassign_roles', array()), '#description' => t('Select roles that should be available for assignment.') ); + $form['roleassign_checked'] = array + ( + '#type' => 'checkboxes', + '#title' => t('Roles checked by default'), + '#options' => $roles, + '#default_value' => variable_get('roleassign_checked', array()), + '#description' => t('Select roles that should be checked as assigned by default. Only those roles that are available from above will be checked.') + ); } else { $form['roleassign_roles'] = array @@ -142,10 +150,16 @@ // Get roles that are available for assignment. $assignable_roles = _roleassign_assignable_roles($roles); + // Get roles that are default checked. + $default_roles = array_intersect_key($roles, array_filter(variable_get('roleassign_checked', array()))); + // Get roles already assigned to the user. // The use of the superfluous $user variable is required by PHP4. $user = user_load(array('uid' => arg(1))); $assigned_roles = $user->roles; + if ( $user->uid == 0 ) { + $assigned_roles += $default_roles; + } // A user might already have a role that isn't avaiable for assignment // through this module. Such a role is called "sticky".