diff options
author | Arthur de Jong <arthur@arthurdejong.org> | 2013-03-24 19:58:28 +0100 |
---|---|---|
committer | Arthur de Jong <arthur@arthurdejong.org> | 2013-03-24 22:48:13 +0100 |
commit | d6a6e8b436fc2b3aabc8a6edd62ad60bd70e0c4c (patch) | |
tree | ac420f4f5b4dc2d3b2ffeae77d7abb7f695c0069 /pynslcd/common.py | |
parent | 41ba574974a22e709bde5728e90de5dd0c2ce82d (diff) |
Implement support for nested groups in pynslcd
Diffstat (limited to 'pynslcd/common.py')
-rw-r--r-- | pynslcd/common.py | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/pynslcd/common.py b/pynslcd/common.py index bbffef4..3a59cbe 100644 --- a/pynslcd/common.py +++ b/pynslcd/common.py @@ -82,18 +82,23 @@ class Request(object): stream.""" pass + def get_results(self, parameters): + """Provide the result entries by performing a search.""" + for dn, attributes in self.search(self.conn, parameters=parameters): + for values in self.convert(dn, attributes, parameters): + yield values + def handle_request(self, parameters): """This method handles the request based on the parameters read with read_parameters().""" try: #with cache.con: if True: - for dn, attributes in self.search(self.conn, parameters=parameters): - for values in self.convert(dn, attributes, parameters): - self.fp.write_int32(constants.NSLCD_RESULT_BEGIN) - self.write(*values) - if self.cache: - self.cache.store(*values) + for values in self.get_results(parameters): + self.fp.write_int32(constants.NSLCD_RESULT_BEGIN) + self.write(*values) + if self.cache: + self.cache.store(*values) except ldap.SERVER_DOWN: if self.cache: logging.debug('read from cache') |