from phi.ldap.entry import get_entry_by_uid, get_entries_by_ou shown_keys = ['uid', 'mail', 'createTimestamp', 'modifyTimestamp'] def flatten_attribute(attr): if isinstance(attr, list) and len(attr)==1: return attr[0] else: return attr def flatten_user(entry): return {k: flatten_attribute(attr) for k, attr in entry['attributes'].items() if k in shown_keys} def get_user_by_uid(client, uid): entry = get_entry_by_uid(client, uid) if not entry: return None return flatten_user(entry) def get_users_by_ou(client, ou): entries = get_entries_by_ou(client, ou) users = [flatten_user(entry) for entry in entries] return users