Skip to main content

LDAP convenience library

Project description

LDAP convenience library with caching support
=============================================

This Package provides objects for LDAP communication.

You can work with the LDAPSession object:

>>> from bda.ldap.base import ONELEVEL
>>> from bda.ldap.session import LDAPSession
>>> from bda.ldap.properties import LDAPServerProperties

>>> props = LDAPServerProperties('localhost',
... 389,
... 'cn=user,dc=example,dc=com',
... 'secret')
>>> session = LDAPSession(props)
>>> res = session.search('(uid=*)', ONELEVEL)


LDAP Queries are cached by default. You can disable this via ``cache`` kw arg
when instanciating the properties obeject:

>>> props = LDAPServerProperties('localhost',
... 389,
... 'cn=user,dc=example,dc=com',
... 'secret',
... cache=False)

Since version 1.3 there exists an LDAPNode object, which behaves mostly like a
dictionary and is the prefered method to access and modify the tree.

The root Node expects the base DN and the server properties to initialize:

>>> root = LDAPNode('dc=my-domain,dc=com', props=props)
>>> root.keys()
['ou=customers']


You can create and add new LDAP entries:

>>> person = LDAPNode()
>>> person.attributes['objectClass'] = ['top', 'person']
>>> person.attributes['sn'] = 'Mustermann'
>>> person.attributes['cn'] = 'Max'
>>> person.attributes['description'] = 'Description'
>>> customers['cn=max'] = person
>>> customers.keys()
['cn=max']

On ``__call__`` the modifications of the tree are written to the directory:

>>> customers()


Modification of entry attributes:

>>> person.attributes['description'] = 'Another description'
>>> person()

>>> del person.attributes['description']
>>> person()


Deleting of entries:

>>> del customers['cn=max']
>>> customers()

For more details see the corresponding source and test files.

Dependencies
------------

* python-ldap
* bda.cache


Notes on python-ldap
--------------------

Although python-ldap is available via pypi, we excluded it from
``install_requires`` due to different compile issues on different platforms.

So you have to make sure that ``pyhon-ldap`` is available on your system in
any way.

TODO
----

* TLS/SSL Support. in LDAPConnector
* Improve retry logic in LDAPSession
* Extend LDAPSession object to handle Fallback server(s)
* Modification bug if cache is enabled


Changes
-------

* 1.3.1 (rnix, 2009-05-07, 2009-05-08)
* add ``cache`` property to ``LDAPProperties``.
* modify session to fit this new cache property.
* add ``queryNode`` function.
* add ``get`` function to node, this failed due LDAP read logic

* 1.3 (rnix, 2009-04-16)
* support ``attrlist`` and ``attrsonly`` for search functions
* add LDAPEntry object
* add search base to cache key

* 1.2.3 (rnix, 2009-02-11)
* bugfix in ``LDAPSession``. Pass ``force_reload`` to relevant execution
function

* 1.2.2 (rnix, jensens - 2009-02-11)
* add buildout for standalone testing
* add tests
* provide relevant objects via package ``__init__``

* 1.2.1 (rnix - 2009-02-10)
* provide same ``search()`` signature in ``LDAPSession`` as
in ``LDAPCommunicator``
* log only on debug

* <= 1.2 (all contributors)
* make it work


Copyright
---------

Copyright (c) 2006-2009: BlueDynamics Alliance, Austria


Credits
-------

* Robert Niederreiter <rnix@squarewave.at>
* Jens Klein <jens@bluedynamics.com>
* Georg Bernhard <g.bernhard@akbild.ac.at>
* Florian Friesdorf <flo@chaoflow.net>
* Johannes Raggam <johannes@bluedynamics.com>

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bda.ldap-1.3.1.tar.gz (15.0 kB view details)

Uploaded Source

File details

Details for the file bda.ldap-1.3.1.tar.gz.

File metadata

  • Download URL: bda.ldap-1.3.1.tar.gz
  • Upload date:
  • Size: 15.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for bda.ldap-1.3.1.tar.gz
Algorithm Hash digest
SHA256 5fbe2c125ba77b0aba39a3a8db5529f96aec814cce9ca3a8f7600c1f7759f986
MD5 4c2ddb4c989a26056d31888e1062813d
BLAKE2b-256 bdf9dc8a49a851f6bcc1c3e9632cf43629cca813f5b8f43e4df123334ccd1eaf

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page