- if (directMembers != null)
- return directMembers.toArray(new Role[directMembers.size()]);
- else
- throw new ArgeoUserAdminException("Members have not been loaded.");
+ List<Role> directMembers = new ArrayList<Role>();
+ for (LdapName ldapName : getMemberNames()) {
+ Role role = userAdmin.getRole(ldapName.toString());
+ if (role == null && userAdmin instanceof AbstractLdapUserAdmin) {
+ AbstractLdapUserAdmin ua = (AbstractLdapUserAdmin) userAdmin;
+ if (ua.getExternalRoles() != null)
+ role = ua.getExternalRoles().getRole(ldapName.toString());
+ }
+ if (role == null)
+ throw new ArgeoUserAdminException("No role found for "
+ + ldapName);
+
+ // role.directMemberOf.add(group);
+ // if (!directMemberOf.containsKey(role.getDn()))
+ // directMemberOf.put(role.getDn(), new ArrayList<LdifGroup>());
+ // directMemberOf.get(role.getDn()).add(group);
+ directMembers.add(role);
+ }
+ return directMembers.toArray(new Role[directMembers.size()]);
+ // if (directMembers != null)
+ // return directMembers.toArray(new Role[directMembers.size()]);
+ // else
+ // throw new ArgeoUserAdminException("Members have not been loaded.");