API Reference
=============

Request Handler
---------------

.. autoclass:: ldapserver.BaseLDAPRequestHandler
  :members:

.. autoclass:: ldapserver.SimpleLDAPRequestHandler
  :members:

Directory Objects
-----------------

.. autoclass:: ldapserver.directory.BaseDirectory
  :members:

.. autoclass:: ldapserver.directory.FilterMixin
  :members:

Authentication Utilties
-----------------------

.. autofunction:: ldapserver.sasl.external.get_peercred

.. autofunction:: ldapserver.sasl.digest_md5.credential_digest

LDAP Protocol
-------------

.. autoclass:: ldapserver.ldap.SearchScope
	:members:
	:undoc-members:

.. autoclass:: ldapserver.ldap.Filter
.. autoclass:: ldapserver.ldap.FilterAnd
.. autoclass:: ldapserver.ldap.FilterOr
.. autoclass:: ldapserver.ldap.FilterNot
.. autoclass:: ldapserver.ldap.FilterEqual
.. autoclass:: ldapserver.ldap.FilterPresent

LDAP Errors
-----------

LDAP response messages carry a result code and an optional diagnostic message.
The subclasses of :any:`ldapserver.LDAPError` represent the possible (non-success) result codes.

Raising a :any:`ldapserver.LDAPError` instance in a handler method of
:any:`ldapserver.BaseLDAPRequestHandler` cases the appropriate response message to be
sent with the corresponding result code and diagnostic message.

.. autoexception:: ldapserver.LDAPError
.. autoexception:: ldapserver.LDAPOperationsError
.. autoexception:: ldapserver.LDAPProtocolError
.. autoexception:: ldapserver.LDAPTimeLimitExceeded
.. autoexception:: ldapserver.LDAPSizeLimitExceeded
.. autoexception:: ldapserver.LDAPAuthMethodNotSupported
.. autoexception:: ldapserver.LDAPStrongerAuthRequired
.. autoexception:: ldapserver.LDAPAdminLimitExceeded
.. autoexception:: ldapserver.LDAPUnavailableCriticalExtension
.. autoexception:: ldapserver.LDAPConfidentialityRequired
.. autoexception:: ldapserver.LDAPNoSuchAttribute
.. autoexception:: ldapserver.LDAPUndefinedAttributeType
.. autoexception:: ldapserver.LDAPInappropriateMatching
.. autoexception:: ldapserver.LDAPConstraintViolation
.. autoexception:: ldapserver.LDAPAttributeOrValueExists
.. autoexception:: ldapserver.LDAPInvalidAttributeSyntax
.. autoexception:: ldapserver.LDAPNoSuchObject
.. autoexception:: ldapserver.LDAPAliasProblem
.. autoexception:: ldapserver.LDAPInvalidDNSyntax
.. autoexception:: ldapserver.LDAPAliasDereferencingProblem
.. autoexception:: ldapserver.LDAPInappropriateAuthentication
.. autoexception:: ldapserver.LDAPInvalidCredentials
.. autoexception:: ldapserver.LDAPInsufficientAccessRights
.. autoexception:: ldapserver.LDAPBusy
.. autoexception:: ldapserver.LDAPUnavailable
.. autoexception:: ldapserver.LDAPUnwillingToPerform
.. autoexception:: ldapserver.LDAPLoopDetect
.. autoexception:: ldapserver.LDAPNamingViolation
.. autoexception:: ldapserver.LDAPObjectClassViolation
.. autoexception:: ldapserver.LDAPNotAllowedOnNonLeaf
.. autoexception:: ldapserver.LDAPNotAllowedOnRDN
.. autoexception:: ldapserver.LDAPEntryAlreadyExists
.. autoexception:: ldapserver.LDAPObjectClassModsProhibited
.. autoexception:: ldapserver.LDAPAffectsMultipleDSAs
.. autoexception:: ldapserver.LDAPOther

Indices and tables
------------------

* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

.. _RFC 4513: https://tools.ietf.org/html/rfc4513
.. _RFC 4513 5.1.1.: https://tools.ietf.org/html/rfc4513#section-5.1.1
.. _RFC 4513 5.1.2.: https://tools.ietf.org/html/rfc4513#section-5.1.2
.. _RFC 4513 5.1.3.: https://tools.ietf.org/html/rfc4513#section-5.1.3