+ })));
+ }
+
+ @SuppressWarnings("unchecked")
+ public Set<ArgeoUser> listUsersInRole(String role) {
+ return (Set<ArgeoUser>) ldapTemplate.lookup(
+ buildGroupDn(convertRoleToGroup(role)), new ContextMapper() {
+ public Object mapFromContext(Object ctxArg) {
+ DirContextAdapter ctx = (DirContextAdapter) ctxArg;
+ String[] userDns = ctx
+ .getStringAttributes(groupMemberAttributeName);
+ TreeSet<ArgeoUser> set = new TreeSet<ArgeoUser>();
+ for (String userDn : userDns) {
+ DistinguishedName dn = new DistinguishedName(userDn);
+ String username = dn
+ .getValue(usernameAttributeName);
+ set.add(createSimpleArgeoUser(getDetails(username)));
+ }
+ return Collections.unmodifiableSortedSet(set);
+ }