X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Fdirectory%2Fldap%2FLdapHierarchyUnit.java;h=b60ee0c68935cc3e08248f1a69902b8d6aebe393;hb=d2fc7fa541b15f81c9372813f6ea5ba58c700271;hp=0e005133a10aec011b39316ba21567c85475ec3f;hpb=382fc65f3707295c281ef5a764c6227b48fa5919;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 0e005133a..b60ee0c68 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 @@ -39,6 +39,17 @@ public class LdapHierarchyUnit extends DefaultLdapEntry implements HierarchyUnit return getDirectoryDao().doGetDirectHierarchyUnits(getDn(), functionalOnly); } + @Override + public HierarchyUnit getDirectChild(Type type) { + return switch (type) { + case ROLES -> + getDirectoryDao().doGetHierarchyUnit((LdapName) getDn().add(getDirectory().getSystemRoleBaseRdn())); + case PEOPLE -> getDirectoryDao().doGetHierarchyUnit((LdapName) getDn().add(getDirectory().getUserBaseRdn())); + case GROUPS -> getDirectoryDao().doGetHierarchyUnit((LdapName) getDn().add(getDirectory().getGroupBaseRdn())); + case FUNCTIONAL -> throw new IllegalArgumentException("Type must be a technical type"); + }; + } + @Override public boolean isType(Type type) { return this.type.equals(type);