README.md to README.rst
This commit is contained in:
parent
a271ae65f6
commit
2b44855f02
@ -2,3 +2,4 @@
|
|||||||
0.1.1 - fixed pretty print of binary attribute
|
0.1.1 - fixed pretty print of binary attribute
|
||||||
- fixed ldap.get sizelimit=1 exception for now
|
- fixed ldap.get sizelimit=1 exception for now
|
||||||
- added try catch to api
|
- added try catch to api
|
||||||
|
0.1.2 - README.md to README.rst
|
14
MANIFEST
14
MANIFEST
@ -1,11 +1,11 @@
|
|||||||
# file GENERATED by distutils, do NOT edit
|
# file GENERATED by distutils, do NOT edit
|
||||||
|
CHANGES.txt
|
||||||
LICENSE.txt
|
LICENSE.txt
|
||||||
MANIFEST.in
|
MANIFEST.in
|
||||||
README.md
|
|
||||||
setup.py
|
setup.py
|
||||||
ldapper/__init__.py
|
ldappr/__init__.py
|
||||||
ldapper/api.py
|
ldappr/api.py
|
||||||
ldapper/connection.py
|
ldappr/connection.py
|
||||||
ldapper/ldapperobject.py
|
ldappr/ldapprobject.py
|
||||||
ldapper/test/__init__.py
|
ldappr/test/__init__.py
|
||||||
ldapper/test/test_ldapper.py
|
ldappr/test/test_ldappr.py
|
||||||
|
95
README.md
95
README.md
@ -1,95 +0,0 @@
|
|||||||
Ldappr
|
|
||||||
=======
|
|
||||||
|
|
||||||
[](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())
|
|
||||||
```
|
|
5
setup.py
5
setup.py
@ -1,13 +1,12 @@
|
|||||||
from distutils.core import setup
|
from distutils.core import setup
|
||||||
|
|
||||||
with open('README.md') as fh:
|
with open('README.rst') as fh:
|
||||||
long_description = fh.read()
|
long_description = fh.read()
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name='ldappr',
|
name='ldappr',
|
||||||
version='0.1',
|
version='0.1.2',
|
||||||
packages=['ldappr', 'ldappr.test'],
|
packages=['ldappr', 'ldappr.test'],
|
||||||
install_requires=['python-ldap'],
|
|
||||||
url='https://github.com/nanu2/ldappr',
|
url='https://github.com/nanu2/ldappr',
|
||||||
license='ICS',
|
license='ICS',
|
||||||
author='Mike Helderman',
|
author='Mike Helderman',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user