Socket
Socket
Sign inDemoInstall

bonsai

Package Overview
Dependencies
4
Maintainers
1
Alerts
File Explorer

Install Socket

Protect your apps from supply chain attacks

Install

bonsai

Python 3 module for accessing LDAP directory servers.

    1.5.2

Maintainers
1

Readme

Bonsai
======

.. image:: https://img.shields.io/pypi/v/bonsai.svg?style=flat-square
    :target: https://pypi.python.org/pypi/bonsai/
    :alt: PyPI Version

.. image:: https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fnoirello%2Fbonsai%2Fbadge%3Fref%3Ddev&style=flat-square
    :target: https://actions-badge.atrox.dev/noirello/bonsai/goto?ref=dev
    :alt: GitHub Action Build Status

.. image:: https://dev.azure.com/noirello/bonsai/_apis/build/status/noirello.bonsai?branchName=dev
    :target: https://dev.azure.com/noirello/bonsai/_build
    :alt: Azure Pipelines Status

.. image:: https://img.shields.io/appveyor/ci/noirello/bonsai/dev.svg?style=flat-square
    :target: https://ci.appveyor.com/project/noirello/bonsai
    :alt: AppVeyor CI Build Status

.. image:: https://codecov.io/gh/noirello/bonsai/branch/dev/graph/badge.svg?token=gPAMdWATgj
    :target: https://app.codecov.io/gh/noirello/bonsai/tree/dev/src
    :alt: Coverage Status

.. image:: https://readthedocs.org/projects/bonsai/badge/?version=latest&style=flat-square
    :target: http://bonsai.readthedocs.org/en/latest/
    :alt: Documentation Status

.. image:: https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square
    :target: https://raw.githubusercontent.com/noirello/bonsai/master/LICENSE
    :alt: GitHub License

This is a module for handling LDAP operations in Python. Uses libldap2 on Unix platforms and
WinLDAP on Microsoft Windows. LDAP entries are mapped to a special Python case-insensitive
dictionary, tracking the changes of the dictionary to modify the entry on the server easily.

Supports only Python 3.7 or newer, and LDAPv3.

Features
--------

-  Uses LDAP libraries (OpenLDAP and WinLDAP) written in C for faster
   processing.
-  Simple pythonic design.
-  Implements an own dictionary-like object for mapping LDAP entries
   that makes easier to add and modify them.
-  Works with various asynchronous library (like asyncio, gevent).

Requirements for building
-------------------------

-  python3.7-dev or newer
-  libldap2-dev
-  libsasl2-dev
-  libkrb5-dev or heimdal-dev (optional)

Documentation
-------------

Documentation is available `online`_ with a simple tutorial.

Example
-------

Simple search and modify:

.. code:: python

        import bonsai

        client = bonsai.LDAPClient("ldap://localhost")
        client.set_credentials("SIMPLE", user="cn=admin,dc=bonsai,dc=test", password="secret")
        with client.connect() as conn:
            res = conn.search("ou=nerdherd,dc=bonsai,dc=test", 2, "(cn=chuck)")
            res[0]['givenname'] = "Charles"
            res[0]['sn'] = "Carmichael"
            res[0].modify()

Using with asyncio:

.. code:: python3

        import asyncio
        import bonsai

        async def do():
            client = bonsai.LDAPClient("ldap://localhost")
            client.set_credentials("DIGEST-MD5", user="admin", password="secret")
            async with client.connect(is_async=True) as conn:
                res = await conn.search("ou=nerdherd,dc=bonsai,dc=test", 2)
                print(res)
                who = await conn.whoami()
                print(who)

        asyncio.run(do())

Changelog
---------

The changelog is available `here`_ and included in the documentation as well.

Contribution
------------

Any contributions and advices are welcome. Please report any issues at
the `GitHub page`_.

.. _online: http://bonsai.readthedocs.org/en/latest/
.. _here: https://github.com/noirello/bonsai/blob/master/CHANGELOG.rst
.. _GitHub page: https://github.com/noirello/bonsai/issues

Keywords

FAQs


Did you know?

Socket installs a GitHub app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc