diff options
author | Arthur de Jong <arthur@arthurdejong.org> | 2012-12-23 19:35:12 +0000 |
---|---|---|
committer | Arthur de Jong <arthur@arthurdejong.org> | 2012-12-23 19:35:12 +0000 |
commit | f94a0d4e903ea040a38a56096e8f0f0eadb93a40 (patch) | |
tree | bb69ff593bc65763c06babd3f5ae30c5842fd87f /pynslcd | |
parent | c7bb19c55c7a902e25bdd33b0d49a2ddcf62e07a (diff) |
update the netgroup by name request to have one result entry per netgroup with multiple rows within one result
git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1874 ef36b2f9-881f-0410-afb5-c4e39611909c
Diffstat (limited to 'pynslcd')
-rw-r--r-- | pynslcd/netgroup.py | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/pynslcd/netgroup.py b/pynslcd/netgroup.py index 4118cd4..ee0b120 100644 --- a/pynslcd/netgroup.py +++ b/pynslcd/netgroup.py @@ -47,25 +47,26 @@ class Cache(cache.Cache): class NetgroupRequest(common.Request): - def write(self, name, member): - m = _netgroup_triple_re.match(member) - if m: - self.fp.write_int32(constants.NSLCD_NETGROUP_TYPE_TRIPLE) - self.fp.write_string(m.group('host')) - self.fp.write_string(m.group('user')) - self.fp.write_string(m.group('domain')) - else: + def write(self, name, triples, members): + self.fp.write_string(name) + for triple in triples: + m = _netgroup_triple_re.match(triple) + if m: + self.fp.write_int32(constants.NSLCD_NETGROUP_TYPE_TRIPLE) + self.fp.write_string(m.group('host')) + self.fp.write_string(m.group('user')) + self.fp.write_string(m.group('domain')) + for member in members: self.fp.write_int32(constants.NSLCD_NETGROUP_TYPE_NETGROUP) self.fp.write_string(member) + self.fp.write_int32(constants.NSLCD_NETGROUP_TYPE_END) def convert(self, dn, attributes, parameters): - # write the netgroup triples - name = attributes['cn'][0] - for triple in attributes['nisNetgroupTriple']: - yield (name, triple) - # write netgroup members - for member in attributes['memberNisNetgroup']: - yield (name, member) + names = attributes['cn'] + triples = attributes['nisNetgroupTriple'] + members = attributes['memberNisNetgroup'] + for name in names: + yield (name, triples, members) class NetgroupByNameRequest(NetgroupRequest): |