diff options
Diffstat (limited to 'ipa-python')
-rw-r--r-- | ipa-python/ipaclient.py | 11 | ||||
-rw-r--r-- | ipa-python/rpcclient.py | 17 |
2 files changed, 28 insertions, 0 deletions
diff --git a/ipa-python/ipaclient.py b/ipa-python/ipaclient.py index c75b5bc9..2c24e77d 100644 --- a/ipa-python/ipaclient.py +++ b/ipa-python/ipaclient.py @@ -85,3 +85,14 @@ class IPAClient: def get_add_schema(self): result = self.transport.get_add_schema() return result + + def find_users(self, criteria, sattrs=None): + result = self.transport.find_users(criteria, sattrs) + + users = [] + for (attrs) in result: + if attrs is not None: + users.append(user.User(attrs)) + + return users + diff --git a/ipa-python/rpcclient.py b/ipa-python/rpcclient.py index d4e645e1..243b5485 100644 --- a/ipa-python/rpcclient.py +++ b/ipa-python/rpcclient.py @@ -118,3 +118,20 @@ class RPCClient: raise xmlrpclib.Fault(value, msg) return result + + def find_users (self, criteria, sattrs=None): + """Return a list containing a User object for each user that matches + the criteria.""" + + server = self.setup_server() + try: + if sattrs is not None: + result = server.find_users(criteria, sattrs) + else: + result = server.find_users(criteria) + except xmlrpclib.Fault, fault: + raise xmlrpclib.Fault(fault.faultCode, fault.faultString) + except socket.error, (value, msg): + raise xmlrpclib.Fault(value, msg) + + return result |