Skip to main content

A collection of Python 3 utilities and wrappers for services run by Computer Science House at RIT

Project description

cshpy
=====

A collection of Python 3 utilities and wrappers for services run by [Computer Science House](http://csh.rit.edu/) at RIT.

## Installation

$ pip install cshpy3

(or just download the source)

## Basic Usage
```python
#!/usr/bin/python
from csh.cshldap import LDAP

# Creates a connection to CSH's LDAP server as an object with some helper functions
# You can also omit the username and password to bind with a Kerberos ticket
ldap = LDAP('<user>','<password>')

# Returns a list of results, in this case of users whose uid starts with 'duck'.
# All CSH LDAP fields are included in a similar way.
ldap.search(uid='duck*')

# This will return users whose common names (cn) start with 'Chris'
ldap.search(cn='Chris')

# This will return users whose uid starts with 'user', and cn starts with 'Name'
ldap.search(uid='user*', cn='Name*')

# Returns a dict of a user's attributes. Performs a search, and then grabs the first result.
# Are you feelin' lucky?
ldap.member('uidValue')

# Equivalent to search(uid='*')
ldap.members()

# You may optionally include a search string.
# Equivalent to search(uid='username')
ldap.members('test')
```

## Functions

### search()

Search returns a list of tuples containing a string and a dictionary.
The first element of each tuple is the Distinguished Name (dn) of the entry.
This is the path to the entry in ldap. The second element of each tuple is a
dictionary of attributes as keys.

Specific tweaks for CSH include the insertion of two fields, `groups` and `committee`.
If a member is on eboard, `committee` will have the name of their committee. Otherwise,
this field will not be present.
`groups` will contain a list of all the groups a member belongs to.

So to be clear the return looks like this: `[('dn',{attributes})]`

You may optionally specify a different base than the default. `search(base=...)`

####Word of caution: Not all results are guaranteed to have the same attribute fields
in their dictionary. Do not depend on all users having a `twitterName` for example.

### modify(uid, attr1=val1, attr2=val2)

Given a uid, and attribute values, modifies those values in ldap.
You may optionally specify a base other than Users.

### member(uid)

Returns a dict of attributes for the user. Equivalent to `search(uid=uid)[0][1]`.

### members()

Returns a list of users. Shorthand for `search(uid='*')`, or some variant *

### group(cn)
Searches groups by common name, returns a list of users in that group.

### getGroups(dn)
Returns a list of cns for groups the given member is a part of.

### rtps()

Returns a list of rtps. Shorthand for `group('rtp')`

### drinkAdmins()

Returns a list of drink admins. Shorthand for `group('drink')`

### eboard()

Returns a list of eboard members. Shorthand for `group('eboard')`

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

cshpy3-0.3.0.0a1.dev21-py3-none-any.whl (10.7 kB view hashes)

Uploaded Python 3

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