summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArthur de Jong <arthur@arthurdejong.org>2013-07-29 23:14:47 +0200
committerArthur de Jong <arthur@arthurdejong.org>2013-07-29 23:14:47 +0200
commit7092d40f32df9b419fff475f3368b5df2ff1c521 (patch)
tree8495b140b7fb23b43f9e8eda4c59bd718731ace6
parenta0e12e6b98616994aca595de7589c003bb68013e (diff)
Handle the nss_initgroups_ignoreusers option in pynslcd
-rw-r--r--pynslcd/cfg.py2
-rw-r--r--pynslcd/group.py8
2 files changed, 9 insertions, 1 deletions
diff --git a/pynslcd/cfg.py b/pynslcd/cfg.py
index b4967f8..310d308 100644
--- a/pynslcd/cfg.py
+++ b/pynslcd/cfg.py
@@ -79,7 +79,7 @@ tls_key = None
# other options
pagesize = 0 # FIXME: add support
-nss_initgroups_ignoreusers = set() # FIXME: add support
+nss_initgroups_ignoreusers = set()
nss_min_uid = 0 # FIXME: add support
nss_nested_groups = False
validnames = re.compile(r'^[a-z0-9._@$][a-z0-9._@$ \\~-]{0,98}[a-z0-9._@$~-]$', re.IGNORECASE)
diff --git a/pynslcd/group.py b/pynslcd/group.py
index a72c57d..ee1d268 100644
--- a/pynslcd/group.py
+++ b/pynslcd/group.py
@@ -187,6 +187,14 @@ class GroupByMemberRequest(GroupRequest):
for result in self.convert(dn, attributes, parameters):
yield result
+ def handle_request(self, parameters):
+ # check whether requested user is in nss_initgroups_ignoreusers
+ if parameters['memberUid'] in cfg.nss_initgroups_ignoreusers:
+ # write the final result code to signify empty results
+ self.fp.write_int32(constants.NSLCD_RESULT_END)
+ return
+ return super(GroupByMemberRequest, self).handle_request(parameters)
+
class GroupAllRequest(GroupRequest):