X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Fdirectory%2Fldap%2FLdapDirectoryDao.java;fp=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Fdirectory%2Fldap%2FLdapDirectoryDao.java;h=03b03ea1174b95118f926a4f6793cffdca2201a8;hb=54df376a9c2dd458a82eaa09bfbb718fe699dd0d;hp=0000000000000000000000000000000000000000;hpb=3c1cdc594d954520b14646102b366290bdad58c7;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapDirectoryDao.java b/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapDirectoryDao.java new file mode 100644 index 000000000..03b03ea11 --- /dev/null +++ b/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapDirectoryDao.java @@ -0,0 +1,37 @@ +package org.argeo.cms.directory.ldap; + +import java.util.List; + +import javax.naming.NameNotFoundException; +import javax.naming.directory.Attributes; +import javax.naming.ldap.LdapName; + +import org.argeo.api.cms.directory.HierarchyUnit; +import org.argeo.api.cms.transaction.WorkingCopyProcessor; + +/** Low-level access to an LDAP/LDIF directory. */ +public interface LdapDirectoryDao extends WorkingCopyProcessor { + boolean checkConnection(); + + boolean entryExists(LdapName dn); + + LdapEntry doGetEntry(LdapName name) throws NameNotFoundException; + + Attributes doGetAttributes(LdapName name); + + List doGetEntries(LdapName searchBase, String filter, boolean deep); + + List getDirectGroups(LdapName dn); + + Iterable doGetDirectHierarchyUnits(LdapName searchBase, boolean functionalOnly); + + HierarchyUnit doGetHierarchyUnit(LdapName dn); + + LdapEntry newUser(LdapName name); + + LdapEntry newGroup(LdapName name); + + void init(); + + void destroy(); +}