diff -upr ldap_integration-1.3/ldapauth.module ldap_integration/ldapauth.module --- ldap_integration-1.3/ldapauth.module 2007-08-22 19:55:21.000000000 -0400 +++ ldap_integration/ldapauth.module 2008-01-29 15:41:30.000000000 -0500 @@ -959,7 +959,8 @@ function _ldapauth_save_user($login_stri $config_name = $ldapauth_ldap->getOption('name'); $userinfo = array('mail' => $mail, 'ldap_dn' => $dn, 'ldap_config' => $config_name); - user_save($user, $userinfo); + $user = user_save($user, $userinfo); + menu_rebuild(); // obtain the DN for this user in this specific LDAP repository $_SESSION['ldap_login']['dn'] = $dn; diff -upr ldap_integration-1.3/ldapgroups.module ldap_integration/ldapgroups.module --- ldap_integration-1.3/ldapgroups.module 2007-07-22 16:04:25.000000000 -0400 +++ ldap_integration/ldapgroups.module 2008-01-29 15:41:29.000000000 -0500 @@ -242,6 +242,9 @@ function ldapgroups_user_login(&$user) { $user->ldap_drupal_roles = isset($user->ldap_drupal_roles) ? $user->ldap_drupal_roles : array(); foreach ($user->ldap_drupal_roles as $role) { + if (preg_match('/^[^=]*=([^,]*),.*$/', $role, $matches)) { + $role = $matches[1]; + } _ldapgroups_deny_role($user, $role); } @@ -284,7 +287,7 @@ function ldapgroups_user_login(&$user) { // Store roles in the user object so we know which ones // were granted here - user_save($user, array('ldap_drupal_roles' => $roles)); + $user = user_save($user, array('ldap_drupal_roles' => $roles)); }