X-Git-Url: http://git.argeo.org/?p=lgpl%2Fargeo-commons.git;a=blobdiff_plain;f=org.argeo.enterprise%2Fsrc%2Forg%2Fargeo%2Fosgi%2Fuseradmin%2FAggregatingUserAdmin.java;h=66d46d4e94c2acfe3cdb1807bea2ac0b00e018fd;hp=f3e51804a78e12760f0ee3720f5ad76aa3e2a0e3;hb=9ec85110269f8be5c83ea26e283359bb451a67b7;hpb=3577df2ca5eee54db1ac39a7bd5ed7bdc8824a67 diff --git a/org.argeo.enterprise/src/org/argeo/osgi/useradmin/AggregatingUserAdmin.java b/org.argeo.enterprise/src/org/argeo/osgi/useradmin/AggregatingUserAdmin.java index f3e51804a..66d46d4e9 100644 --- a/org.argeo.enterprise/src/org/argeo/osgi/useradmin/AggregatingUserAdmin.java +++ b/org.argeo.enterprise/src/org/argeo/osgi/useradmin/AggregatingUserAdmin.java @@ -110,8 +110,8 @@ public class AggregatingUserAdmin implements UserAdmin { Set sysRoles = new HashSet(); for (String role : rawAuthorization.getRoles()) { Authorization auth = systemRoles.getAuthorization((User) userAdmin.getRole(role)); - systemRoles:for(String systemRole:auth.getRoles()) { - if(role.equals(systemRole)) + systemRoles: for (String systemRole : auth.getRoles()) { + if (role.equals(systemRole)) continue systemRoles; sysRoles.add(systemRole); } @@ -169,23 +169,23 @@ public class AggregatingUserAdmin implements UserAdmin { return systemRoles; if (tokensBaseDn != null && name.startsWith(tokensBaseDn)) return tokens; - List res = new ArrayList(1); - for (LdapName baseDn : businessRoles.keySet()) { - AbstractUserDirectory ud = businessRoles.get(baseDn); + List res = new ArrayList<>(1); + userDirectories: for (LdapName baseDn : businessRoles.keySet()) { + AbstractUserDirectory userDirectory = businessRoles.get(baseDn); if (name.startsWith(baseDn)) { - if (!ud.isDisabled()) - res.add(ud); - } -// Object principal = ud.getProperties().get(Context.SECURITY_PRINCIPAL); -// if (principal != null) { -// try { -// LdapName principalLdapName = new LdapName(principal.toString()); -// if (principalLdapName.equals(name)) -// res.add(ud); -// } catch (InvalidNameException e) { -// // silent + if (userDirectory.isDisabled()) + continue userDirectories; +// if (res.isEmpty()) { + res.add(userDirectory); +// } else { +// for (AbstractUserDirectory ud : res) { +// LdapName bd = ud.getBaseDn(); +// if (userDirectory.getBaseDn().startsWith(bd)) { +// // child user directory +// } +// } // } -// } + } } if (res.size() == 0) throw new UserDirectoryException("Cannot find user admin for " + name);