Add list_all and uid2dn; make list_* return {dn:...} instead of {uid:...}
This commit is contained in:
parent
0dbd7a6dd5
commit
9fc6e34b15
|
@ -174,6 +174,9 @@ def get(userid):
|
||||||
|
|
||||||
return ldapi.lookup(ld, 'uid', userid, cfg['users_base'])
|
return ldapi.lookup(ld, 'uid', userid, cfg['users_base'])
|
||||||
|
|
||||||
|
def uid2dn(uid):
|
||||||
|
return 'uid=%s,%s' % (ldapi.escape(uid), cfg['users_base'])
|
||||||
|
|
||||||
|
|
||||||
def list_term(term):
|
def list_term(term):
|
||||||
"""
|
"""
|
||||||
|
@ -185,16 +188,15 @@ def list_term(term):
|
||||||
Returns: a list of members
|
Returns: a list of members
|
||||||
|
|
||||||
Example: list_term('f2006'): -> {
|
Example: list_term('f2006'): -> {
|
||||||
'mspang': { 'cn': 'Michael Spang', ... },
|
'uid=mspang, ou=...': { 'cn': 'Michael Spang', ... },
|
||||||
'ctdalek': { 'cn': 'Calum T. Dalek', ... },
|
'uid=ctdalek, ou=...': { 'cn': 'Calum T. Dalek', ... },
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
|
|
||||||
members = ldapi.search(ld, cfg['users_base'],
|
members = ldapi.search(ld, cfg['users_base'],
|
||||||
'(&(objectClass=member)(term=%s))', [ term ])
|
'(&(objectClass=member)(term=%s))', [ term ])
|
||||||
|
return dict([(member[0], member[1]) for member in members])
|
||||||
return dict([(member[1]['uid'][0], member[1]) for member in members])
|
|
||||||
|
|
||||||
|
|
||||||
def list_name(name):
|
def list_name(name):
|
||||||
|
@ -207,15 +209,14 @@ def list_name(name):
|
||||||
Returns: a list of member dictionaries
|
Returns: a list of member dictionaries
|
||||||
|
|
||||||
Example: list_name('Spang'): -> {
|
Example: list_name('Spang'): -> {
|
||||||
'mspang': { 'cn': 'Michael Spang', ... },
|
'uid=mspang, ou=...': { 'cn': 'Michael Spang', ... },
|
||||||
...
|
...
|
||||||
]
|
]
|
||||||
"""
|
"""
|
||||||
|
|
||||||
members = ldapi.search(ld, cfg['users_base'],
|
members = ldapi.search(ld, cfg['users_base'],
|
||||||
'(&(objectClass=member)(cn~=%s))', [ name ])
|
'(&(objectClass=member)(cn~=%s))', [ name ])
|
||||||
|
return dict([(member[0], member[1]) for member in members])
|
||||||
return dict([(member[1]['uid'][0], member[1]) for member in members])
|
|
||||||
|
|
||||||
|
|
||||||
def list_group(group):
|
def list_group(group):
|
||||||
|
@ -228,7 +229,7 @@ def list_group(group):
|
||||||
Returns: a list of member dictionaries
|
Returns: a list of member dictionaries
|
||||||
|
|
||||||
Example: list_name('syscom'): -> {
|
Example: list_name('syscom'): -> {
|
||||||
'mspang': { 'cn': 'Michael Spang', ... },
|
'uid=mspang, ou=...': { 'cn': 'Michael Spang', ... },
|
||||||
...
|
...
|
||||||
]
|
]
|
||||||
"""
|
"""
|
||||||
|
@ -239,10 +240,26 @@ def list_group(group):
|
||||||
for member in members:
|
for member in members:
|
||||||
info = get(member)
|
info = get(member)
|
||||||
if info:
|
if info:
|
||||||
ret[member] = info
|
ret[uid2dn(member)] = info
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
|
||||||
|
def list_all():
|
||||||
|
"""
|
||||||
|
Build a list of all members
|
||||||
|
|
||||||
|
Returns: a list of member dictionaries
|
||||||
|
|
||||||
|
Example: list_name('Spang'): -> {
|
||||||
|
'uid=mspang, ou=...': { 'cn': 'Michael Spang', ... },
|
||||||
|
...
|
||||||
|
]
|
||||||
|
"""
|
||||||
|
|
||||||
|
members = ldapi.search(ld, cfg['users_base'], '(objectClass=member)')
|
||||||
|
return dict([(member[0], member[1]) for member in members])
|
||||||
|
|
||||||
|
|
||||||
def list_positions():
|
def list_positions():
|
||||||
"""
|
"""
|
||||||
Build a list of positions
|
Build a list of positions
|
||||||
|
|
Loading…
Reference in New Issue