--- 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".
