--- LDAPAuthenticateUser.php 2007-08-30 04:20:00.000000000 +0200 +++ a 2007-09-20 14:52:36.000000000 +0200 @@ -96,8 +96,22 @@ // Authentication succeeded, get info from LDAP directory $attrs = array_keys($GLOBALS['ldapConfig']['users']['fields']); $base_dn = $GLOBALS['ldap_config']->settings['ldap_base_dn']; - $name_filter = "(" . $GLOBALS['ldap_config']->settings['ldap_login_attr']. "=" . $name . ")"; + + //check group membership + $result = @ldap_search($ldapconn, "cn=SugarCRM,ou=Groups,$base_dn", "(memberUid=$name)", $attrs); + $info=@ldap_get_entries($ldapconn, $result); + if (strtolower($name)=="administrator" || $info[0]) + { + $GLOBALS['log']->debug("ldapauth: Group membership OK"); + } + else + { + $GLOBALS['log']->debug("ldapauth: FAILED, $name not member of SugarCRM group!"); + return ''; + } + + $name_filter = "(" . $GLOBALS['ldap_config']->settings['ldap_login_attr']. "=" . $name . ")"; $GLOBALS['log']->debug("ldapauth: Fetching user info from Directory."); $result = @ldap_search($ldapconn, $base_dn, $name_filter, $attrs); if($this->loginError($error)){