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')`
=====
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
Release history Release notifications | RSS feed
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
Close
Hashes for cshpy3-0.3.0.0a1.dev21-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 49da7f123d3287f429738fbda25f0ecc740e95ea4dfc90c8d691df1199b22e25 |
|
MD5 | 36786a81e1b15a4259ebc422f3314120 |
|
BLAKE2b-256 | db2ba69c3d7d8bb5988066f9366f786a4db3e4a6f497e593381ac0b490897f83 |