Skip to main content

CSH LDAP ORM

Project description

csh-ldap

PyPI version Build Status

Python 3 ORM for CSH LDAP

Installation

pip install csh-ldap

Usage

import csh_ldap

# Create an unbatched instance
instance = csh_ldap.CSHLDAP(bind_dn, bind_pw)

# Create an batched instance
instance_batched = csh_ldap.CSHLDAP(bind_dn, bind_pw, batch_mods=True)

# Create a Read-Only instance that will only echo your changes
instance_ro = csh_ldap.CSHLDAP(bind_dn, bind_pw, ro=True)

# Get member by UUID
liam = instance.get_member(uuid_of_liam)

# Get member by UID
liam = instance.get_member(uid_of_liam, uid=True)

# Get member by iButton ID
liam = instance.get_member_ibutton(ibutton_id)

# Get member by Slack UID
liam = instance.get_member_slackuid(slack_uid)

# Get group by cn
rtp = instance.get_group('rtp')

# get group member uids 
rtp = instance.get_group('rtp').get_member_uids()
# returns ['spaced', ...]

# get group member uids (other way)
rtp = instance.get_group_member_uids(groups=["rtp"])

# get uids of members in two (or more) groups and not in groups
fancy = instance.get_group_member_uids(groups=["rtp", "onfloor"], excluded=["eboard-opcomm"])

# get uuids of members in two (or more) groups and not in groups
# that's right! ipaUniqueId
fancy = instance.get_group_member_uuids(groups=["rtp", "onfloor"], excluded=["eboard-opcomm"])

# get other miscellaneous attributes of members in group
# look how rich drink admins are (admin abuse!!!)
admin_abuse = instance.get_group_member_attributes(group=["drink"], attributes=["uid", "drinkBalance"])
# returns dicts for each member
"""
I wonder what happened here
[
{
    'uid': 'cole',
    'drinkBalance': '996246'
},
{
    'uid': 'zxcv',
    'drinkBalance': '3847173'
}
]
"""

# Get cn of member
print(liam.cn)

# Set cn of member
liam.cn = "Liam Middlebrook"

# Setting attributes to None removes them
liam.roomNumber = None

# Process batched writes per-dn
instance_batched.flush_mod()

# Get EBoard Directorship
# Directorships: ['chairman', 'evaluations', 'financial', 'history', 'imps', 'opcomm', 'research', 'social']
social = instance.get_directorship_heads('social')

for director in social:
    # Directorships are always lists, since it can be multiple people.
    print(director.cn)

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

csh_ldap-2.5.5.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

csh_ldap-2.5.5-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

File details

Details for the file csh_ldap-2.5.5.tar.gz.

File metadata

  • Download URL: csh_ldap-2.5.5.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for csh_ldap-2.5.5.tar.gz
Algorithm Hash digest
SHA256 58452253793639d50b3b9c44e6332e0a8168a1277d8f634e45a72a0d0117c0ec
MD5 5adddab168fffdeaaa1973bde7090a9d
BLAKE2b-256 fe4212176ce009fcdc95b73e5df6103b8a5f6f59857d399eb377601aca454d8f

See more details on using hashes here.

File details

Details for the file csh_ldap-2.5.5-py3-none-any.whl.

File metadata

  • Download URL: csh_ldap-2.5.5-py3-none-any.whl
  • Upload date:
  • Size: 9.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for csh_ldap-2.5.5-py3-none-any.whl
Algorithm Hash digest
SHA256 b58a82fe0d2aec7cc5e69f11eb204e5b5b728a6f0d10aedabf4f4922b2de0cd5
MD5 7bd07d6dfa5cf9b546456dc0950fb98a
BLAKE2b-256 3c68accd34e39c8303b8d1daf9108e6d2e3165329da264bc43109974702c157b

See more details on using hashes here.

Supported by

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