[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
(ITS#8619) Enhancement request: Nested group support using dynlist recursion
- To: openldap-its@OpenLDAP.org
- Subject: (ITS#8619) Enhancement request: Nested group support using dynlist recursion
- From: christ.klinge@web.de
- Date: Fri, 17 Mar 2017 20:38:30 +0000
- Auto-submitted: auto-generated (OpenLDAP-ITS)
Full_Name: Christopher Klinge
Version: 2.4.44
OS: Debian
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (93.193.142.51)
As of right now, dynlist can be used to expand one level of nesting:
overlay dynlist
dynlist-attrset parentGroup childGroup
dn: cn=Parent Group,ou=Groups,dc=example,dc=com
objectClass: parentGroup
cn: Parent Group
childGroupURL: ldap:///cn=Child Group,ou=Groups,dc=example,dc=com?member?sub?
dn: cn=Child Group,ou=Groups,dc=example,dc=com
objectClass: childGroup
cn: Child Group
member: cn=User A,ou=People,dc=example,dc=com
member: cn=User B,ou=People,dc=example,dc=com
member: cn=User B,ou=People,dc=example,dc=com
Querying the parent group will return:
dn: cn=Parent Group,ou=Groups,dc=example,dc=com
objectClass: parentGroup
cn: Parent Group
childGroupURL: ldap:///cn=Child Group,ou=Groups,dc=example,dc=com?member?sub?
member: cn=User A,ou=People,dc=example,dc=com
member: cn=User B,ou=People,dc=example,dc=com
member: cn=User C,ou=People,dc=example,dc=com
If cn=Child Group were to be a parent group itself, no further expansion would
take place.
I propose enabling dynlist recursion and adding a new configuration directive:
dynlist-rec-attrset <group-oc> [<URI>] <URL-ad> <rec-ad>
[[<mapped-ad>:]<member-ad>]
Except for rec-ad, all parameters behave exactly like those of dynlist-attrset.
The attribute rec-ad is mandatory. It is a comma separated list of attributes
for which dynlist recursion is enabled.
By adding a new directive, backwards compatibility is guaranteed.
I suggest using a depth counter to prevent infinite loops. A configurable
threshold with a fairly small default value is both light weight and
sufficiently rigorous. Logging a suitable warning message upon reaching the
threshold would inform the administrator about possible loops.