From b528260a3fa65eb692a37b65aed91604a072a24a Mon Sep 17 00:00:00 2001 From: Mike Helderman Date: Tue, 16 Sep 2014 12:53:17 +0200 Subject: [PATCH 1/2] Delete MANIFEST --- MANIFEST | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 MANIFEST diff --git a/MANIFEST b/MANIFEST deleted file mode 100644 index 6aacb81..0000000 --- a/MANIFEST +++ /dev/null @@ -1,11 +0,0 @@ -# file GENERATED by distutils, do NOT edit -LICENSE.txt -MANIFEST.in -README.md -setup.py -ldapper/__init__.py -ldapper/api.py -ldapper/connection.py -ldapper/ldapperobject.py -ldapper/test/__init__.py -ldapper/test/test_ldapper.py From 3f8a56ab75f4af54dcf686aa88bf7a942b60050d Mon Sep 17 00:00:00 2001 From: Mike Helderman Date: Tue, 16 Sep 2014 12:53:37 +0200 Subject: [PATCH 2/2] Delete README.md --- README.md | 95 ------------------------------------------------------- 1 file changed, 95 deletions(-) delete mode 100644 README.md diff --git a/README.md b/README.md deleted file mode 100644 index 15749b0..0000000 --- a/README.md +++ /dev/null @@ -1,95 +0,0 @@ -Ldappr -======= - -[![PyPI version](https://badge.fury.io/py/ldappr.svg)](http://badge.fury.io/py/ldappr) - -Ldappr is a wrapper around python-ldap, meant for quick and easy handling of -common administrative tasks concerning your LDAP compliant repository. It is -particularly useful in small, one-time scripts to get things done, or -interactively within an iPython shell. - -Installation ------------- - -Of course, python-ldap is supposed to be already installed. - -``` -pip install ldappr -``` - -Connect -------- - -```python -import ldappr - -# authenticated bind -ldap = ldappr.connect_to('127.0.0.1', 'uid=admin,ou=system', 'secret') -``` - -Retrieve objects ----------------- - -When you have a connection, you can search on it. First, specify the seach base. - -```python -ldap.search_base = 'ou=users,ou=system' -``` - -Then, get one or more objects to manipulate. - -```python -# retrieve a single object -user = ldap.get('cn=jdoe') - -# retrieve a list of objects -users = ldap.search('objectClass=inetOrgPerson') -``` - -Do stuff --------- - -Once you got an object, you can easily manipulate it. All changes will -immediately reflect in your LDAP repository. - -```python -# pretty print the retrieved user -print(user) - -# get an attribute value -sn = user.attrs['sn'] - -# set an attribute value (existing value will be removed) -user.set_value('givenName', 'Jack') - -# add a value to a multi-valued attribute -user.add_value('mobile', '0123456789') -user.add_value('mobile', '9876543210') - -# remove a value from a multi-valued attribute -user.remove_value('mobile', '9876543210') -``` - -Other examples --------------- -```python -# anonymous bind -ldap = ldappr.connect_to('127.0.0.1') - -# authenticated bind with more options -ldap = ldappr.connect_to('127.0.0.1', 'uid=admin,ou=system', 'secret', - protocol='ldaps', port='10636', verify=False, - search_base='ou=users,ou=system') - -# delete all objects with employeeType manager -for dn in ldap.get_dn('employeeType=manager'): - ldap.delete(dn) - -# set an attribute value for a known dn -ldap.set_value('cn=jdoe,ou=users,ou=system', 'givenName', 'Jack') - -# make an LDIF export for all users -with open('export.ldif', 'a') as file: - for user in ldap.search('objectClass=inetOrgPerson'): - file.write(user.to_ldif()) -```