X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Fdirectory%2Fldap%2FLdapHierarchyUnit.java;h=0e005133a10aec011b39316ba21567c85475ec3f;hb=e023e9027edc0d734d11cb759259eaebb6d68bc9;hp=7abf0988534a9aceb58d76598e39b71028aa5384;hpb=1894ef7613f658b8b0d8104a108d92b756c0cdb3;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapHierarchyUnit.java b/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapHierarchyUnit.java index 7abf09885..0e005133a 100644 --- a/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapHierarchyUnit.java +++ b/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapHierarchyUnit.java @@ -9,14 +9,24 @@ import org.argeo.api.cms.directory.HierarchyUnit; /** LDIF/LDAP based implementation of {@link HierarchyUnit}. */ public class LdapHierarchyUnit extends DefaultLdapEntry implements HierarchyUnit { - private final boolean functional; +// private final boolean functional; + + private final Type type; public LdapHierarchyUnit(AbstractLdapDirectory directory, LdapName dn) { super(directory, dn); Rdn rdn = LdapNameUtils.getLastRdn(dn); - functional = !(directory.getUserBaseRdn().equals(rdn) || directory.getGroupBaseRdn().equals(rdn) - || directory.getSystemRoleBaseRdn().equals(rdn)); + if (directory.getUserBaseRdn().equals(rdn)) + type = Type.PEOPLE; + else if (directory.getGroupBaseRdn().equals(rdn)) + type = Type.GROUPS; + else if (directory.getSystemRoleBaseRdn().equals(rdn)) + type = Type.ROLES; + else + type = Type.FUNCTIONAL; +// functional = !(directory.getUserBaseRdn().equals(rdn) || directory.getGroupBaseRdn().equals(rdn) +// || directory.getSystemRoleBaseRdn().equals(rdn)); } @Override @@ -30,8 +40,8 @@ public class LdapHierarchyUnit extends DefaultLdapEntry implements HierarchyUnit } @Override - public boolean isFunctional() { - return functional; + public boolean isType(Type type) { + return this.type.equals(type); } @Override