diff options
Diffstat (limited to 'ipa-python')
-rw-r--r-- | ipa-python/ipaclient.py | 7 | ||||
-rw-r--r-- | ipa-python/rpcclient.py | 18 |
2 files changed, 24 insertions, 1 deletions
diff --git a/ipa-python/ipaclient.py b/ipa-python/ipaclient.py index 63cd425f..7131be48 100644 --- a/ipa-python/ipaclient.py +++ b/ipa-python/ipaclient.py @@ -98,6 +98,13 @@ class IPAClient: result = self.transport.get_user_by_principal(principal,sattrs) return user.User(result) + def get_user_by_email(self,email,sattrs=None): + """Get a specific user's entry. Return as a dict of values. + Multi-valued fields are represented as lists. + """ + result = self.transport.get_user_by_email(email,sattrs) + return user.User(result) + def get_users_by_manager(self,manager_dn,sattrs=None): """Gets the users the report to a particular manager. If sattrs is not None then only those diff --git a/ipa-python/rpcclient.py b/ipa-python/rpcclient.py index df3d0138..53fb690b 100644 --- a/ipa-python/rpcclient.py +++ b/ipa-python/rpcclient.py @@ -165,7 +165,23 @@ class RPCClient: raise xmlrpclib.Fault(value, msg) return ipautil.unwrap_binary_data(result) - + + def get_user_by_email(self,email,sattrs=None): + """Get a specific user's entry. Return as a dict of values. + Multi-valued fields are represented as lists. + """ + server = self.setup_server() + if sattrs is None: + sattrs = "__NONE__" + try: + result = server.get_user_by_email(email, sattrs) + except xmlrpclib.Fault, fault: + raise ipaerror.gen_exception(fault.faultCode, fault.faultString) + except socket.error, (value, msg): + raise xmlrpclib.Fault(value, msg) + + return ipautil.unwrap_binary_data(result) + def get_users_by_manager(self,manager_dn,sattrs=None): """Gets the users that report to a manager. If sattrs is not None then only those |