From: Michael Tremer Date: Tue, 7 May 2019 10:11:31 +0000 (+0100) Subject: accounts: Simplify LDAP search code X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=18209c789687baea73dc50cde3b76d56ed957744;p=ipfire.org.git accounts: Simplify LDAP search code Signed-off-by: Michael Tremer --- diff --git a/src/backend/accounts.py b/src/backend/accounts.py index 4e6d892a..4707aaa7 100644 --- a/src/backend/accounts.py +++ b/src/backend/accounts.py @@ -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):