Index: og_user_roles.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/og_user_roles/og_user_roles.module,v
retrieving revision 1.42
diff -u -p -r1.42 og_user_roles.module
--- og_user_roles.module	14 Aug 2009 15:55:38 -0000	1.42
+++ og_user_roles.module	25 Oct 2009 13:54:55 -0000
@@ -346,6 +346,24 @@ function og_user_roles_grant_roles(&$acc
       // afterwards.
       $account->roles[$role->rid] = $role->name;
     }
+
+    // adhoc role assignment
+    // Add default role for new group members, if configured.
+    if ($default_role = variable_get('og_user_roles_default_role', 0)
+      && !isset($account->roles[$default_role])) {
+      $default_role_name = db_fetch_array(db_query('SELECT name FROM {role} WHERE rid = %d', $default_role));
+      $account->roles[$default_role] = $default_role_name;
+    }
+    // Add default role for new group admins, if configured.
+    if ($default_admin_role = variable_get('og_user_roles_default_admin_role', 0)
+      && !isset($account->roles[$default_admin_role])) {
+      if(og_is_group_admin($group_node, $account)
+        && $default_admin_role != $default_role) {
+        $default_admin_role_name = db_fetch_array(db_query('SELECT name FROM {role} WHERE rid = %d', $default_admin_role));
+        $account->roles[$default_admin_role] = $default_admin_role_name;
+      }
+    }
+
     $roles = $account->roles;
   }
   else {
