-// Attributes attrs = user.getAttributes();
-// // TODO centralize attribute name
-// Attribute memberOf = attrs.get(LdapAttrs.memberOf.name());
-// // if user belongs to this directory, we only check memberOf
-// if (memberOf != null && user.getDn().startsWith(getBaseDn())) {
-// try {
-// NamingEnumeration<?> values = memberOf.getAll();
-// while (values.hasMore()) {
-// Object value = values.next();
-// LdapName groupDn = new LdapName(value.toString());
-// DirectoryUser group = doGetRole(groupDn);
-// if (group != null)
-// allRoles.add(group);
-// }
-// } catch (NamingException e) {
-// throw new IllegalStateException("Cannot get memberOf groups for " + user, e);
-// }
-// } else {
-// for (LdapName groupDn : getDirectoryDao().getDirectGroups(user.getDn())) {
-// // TODO check for loops
-// DirectoryUser group = doGetRole(groupDn);
-// if (group != null) {
-// allRoles.add(group);
-// collectRoles(group, allRoles);
-// }
-// }
-// }