X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.enterprise%2Fsrc%2Forg%2Fargeo%2Fosgi%2Fuseradmin%2FAggregatingUserAdmin.java;h=f3e51804a78e12760f0ee3720f5ad76aa3e2a0e3;hb=c38430e4dc4d8104162d7306675bc2f087d45a54;hp=6f353f155c5c620e9c0e24de4e260fb24165c797;hpb=2b6597a096ac21375aa83f86d1f750061b20387c;p=lgpl%2Fargeo-commons.git 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 6f353f155..f3e51804a 100644 --- a/org.argeo.enterprise/src/org/argeo/osgi/useradmin/AggregatingUserAdmin.java +++ b/org.argeo.enterprise/src/org/argeo/osgi/useradmin/AggregatingUserAdmin.java @@ -110,7 +110,12 @@ public class AggregatingUserAdmin implements UserAdmin { Set sysRoles = new HashSet(); for (String role : rawAuthorization.getRoles()) { Authorization auth = systemRoles.getAuthorization((User) userAdmin.getRole(role)); - sysRoles.addAll(Arrays.asList(auth.getRoles())); + systemRoles:for(String systemRole:auth.getRoles()) { + if(role.equals(systemRole)) + continue systemRoles; + sysRoles.add(systemRole); + } +// sysRoles.addAll(Arrays.asList(auth.getRoles())); } addAbstractSystemRoles(rawAuthorization, sysRoles); Authorization authorization = new AggregatingAuthorization(usernameToUse, displayNameToUse, sysRoles, @@ -166,11 +171,21 @@ public class AggregatingUserAdmin implements UserAdmin { return tokens; List res = new ArrayList(1); for (LdapName baseDn : businessRoles.keySet()) { + AbstractUserDirectory ud = businessRoles.get(baseDn); if (name.startsWith(baseDn)) { - AbstractUserDirectory ud = businessRoles.get(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 (res.size() == 0) throw new UserDirectoryException("Cannot find user admin for " + name);