Skip to main content

LDAP ORM for Python

Project description

ldapper

Build Status Documentation Status

ldapper is a hassle-free Python LDAP ORM for getting real work done.

It extends the robust capabilities of python-ldap and augments it with higher-level interfaces to define your schema. Listing and fetching all your LDAP objects is easy and straightforward. Modifications and validation can be made with assurance using ldapper.

Requirements

ldapper requires:

  • Python 3.6+
  • inflection

Version 0.9.0 was the last to support Python 2.

Usage

from ldapper.connection import BaseConnection
from ldapper.ldapnode import LDAPNode
from ldapper import fields


# define a connection
class Connection(BaseConnection):
    BASE_DN = 'dc=example,dc=com'
    URI = 'ldaps://ldap.example.com'


# define a common LDAPNode that holds the connection class you defined
class BaseModel(LDAPNode):
    connection = Connection


# define a class to represent people
class Person(BaseModel):
    uid = fields.StringField('uid', primary=True)
    uidnumber = fields.IntegerField('uidNumber')
    firstname = fields.StringField('givenName')
    lastname = fields.StringField('sn')
    email_addresses = fields.ListField('mailLocalAddress')
    photo = fields.BinaryField('jpegPhoto', optional=True)

    class Meta:
        objectclasses = ['top', 'inetOrgPerson', 'inetLocalMailRecipient']
        dn_format = 'uid=%(uid)s,ou=people'
        primary_dnprefix = 'ou=people'
        secondary_dnprefix = 'ou=people'
        identifying_attrs = ['uid']
        searchable_fields = [
'uid', 'uidNumber', 'givenName', 'sn', 'mailLocalAddress']


# use the Person class
person = Person.fetch('liam')
person.displayname = 'Chuck Yeager'
person.save()
person.delete()


from ldapper.query import Q
Person.filter(Q(firstname='Foo') | Q(lastname='Bar'))

Documentation

Available at https://ldapper.readthedocs.io/

Testing

Please see the README.md file in the test directory for information on running unit tests.

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

ldapper-1.0.3.tar.gz (28.1 kB view details)

Uploaded Source

Built Distribution

ldapper-1.0.3-py3-none-any.whl (31.6 kB view details)

Uploaded Python 3

File details

Details for the file ldapper-1.0.3.tar.gz.

File metadata

  • Download URL: ldapper-1.0.3.tar.gz
  • Upload date:
  • Size: 28.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.2

File hashes

Hashes for ldapper-1.0.3.tar.gz
Algorithm Hash digest
SHA256 dc41f459dcd221002d57e02604e942f326877bb376e959dfb5464dd326842c80
MD5 87896ecc285251d44ff7768c1406b50f
BLAKE2b-256 a7699c59d15c3aba35182870b76ba882c0de0b07288767df7a44c7c2657486cd

See more details on using hashes here.

File details

Details for the file ldapper-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: ldapper-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 31.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.2

File hashes

Hashes for ldapper-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 98c64cfe65607059959350117ed291ac4a9b6114453f131575862767e7ed6a71
MD5 5ff11a3673ab5f1aceb70003e88d667a
BLAKE2b-256 3a00b18c0f62babc53834dc95c6042e3b278bb5589aa7af083c20a691a3f2d15

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