diff options
author | Arthur de Jong <arthur@arthurdejong.org> | 2013-03-24 22:52:44 +0100 |
---|---|---|
committer | Arthur de Jong <arthur@arthurdejong.org> | 2013-03-24 22:52:44 +0100 |
commit | 3daa68d35cf18c0dc80c8c24c7aa23c6273d06c4 (patch) | |
tree | 3b1e8c1596f292dbe67fb1cc903237de0466be66 /pynslcd/common.py | |
parent | edd119c3a0d532fc5f87ccf89585370cb2fa3fed (diff) | |
parent | 642064cc205cf484bd904d94141eba8740aa0a28 (diff) |
Implement support for nested groups
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') |