]> git.ipfire.org Git - ipfire.org.git/commitdiff
accounts: Simplify LDAP search code
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 7 May 2019 10:11:31 +0000 (11:11 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 7 May 2019 10:11:31 +0000 (11:11 +0100)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/backend/accounts.py

index 4e6d892ac2ee2bb81f77d74f8ef07a931c29a9cf..4707aaa72eb4afe98454bcf05458ab3e42b5baab 100644 (file)
@@ -63,13 +63,8 @@ class Accounts(Object):
                return results
 
        def _search(self, query, attrlist=None, limit=0):
-               accounts = []
-
                for dn, attrs in self._query(query, attrlist=attrlist, limit=limit):
-                       account = Account(self.backend, dn, attrs)
-                       accounts.append(account)
-
-               return accounts
+                       yield Account(self.backend, dn, attrs)
 
        def search(self, query):
                # Search for exact matches
@@ -86,11 +81,10 @@ class Accounts(Object):
                return sorted(accounts)
 
        def _search_one(self, query):
-               result = self._search(query, limit=1)
-               assert len(result) <= 1
+               results = self._search(query, limit=1)
 
-               if result:
-                       return result[0]
+               for result in results:
+                       return result
 
        def uid_exists(self, uid):
                if self.get_by_uid(uid):