Opened 8 years ago

Last modified 8 years ago

#4773 new defect

LdapPlugin does not honour group_rdn in get_groups

Reported by: Lev Shamardin Owned by: Emmanuel Blot
Priority: high Component: LdapPlugin
Severity: major Keywords:
Cc: Trac Release: 0.11


The group_rdn option specified in the config is not used in get_groups. This leads to a problem when there are groups with the same names in the different parts of the LDAP tree.

The proposed patch is below:

diff --git a/ b/
index 13a912e..35792ba 100644
--- a/
+++ b/
@@ -32,12 +32,12 @@ LDAP_MODULE_CONFIG = [ 'enable', 'permfilter',
                        'global_perms', 'manage_groups'
                        'cache_ttl', 'cache_size',
                        'group_bind', 'store_bind',
-                       'user_rdn', 'group_rdn' ]
+                       'user_rdn' ]
 LDAP_DIRECTORY_PARAMS = [ 'host', 'port', 'use_tls', 'basedn',
                           'bind_user', 'bind_passwd',
                           'groupname', 'groupmember', 'groupmemberisdn',
-                          'groupattr', 'uidattr', 'permattr']
+                          'groupattr', 'group_rdn', 'uidattr', 'permattr']
@@ -510,6 +510,7 @@ class LdapConnection(object):
         self.groupname = 'groupofnames'
         self.groupmember = 'member'
         self.groupattr = 'cn'
+       self.group_rdn = None
         self.uidattr = 'uid'
         self.permattr = 'tracperm'
         self.bind_user = None
@@ -538,7 +539,10 @@ class LdapConnection(object):
     def get_groups(self):
         """Return a list of available group dns"""
-        groups = self.get_dn(self.basedn, 'objectclass=' + self.groupname)
+       if self.group_rdn:
+            groups = self.get_dn('%s,%s' % (self.group_rdn, self.basedn), 'obje
+        else:
+            groups = self.get_dn(self.basedn, 'objectclass=' + self.groupname)
         return groups
     def is_in_group(self, userdn, groupdn):

Attachments (1)

ldapplugin-groups.patch (1.5 KB) - added by Lev Shamardin 8 years ago.

Download all attachments as: .zip

Change History (3)

comment:1 Changed 8 years ago by Jon Schewe

You're patch got chopped off after 'obje can you post the full patch again?

Changed 8 years ago by Lev Shamardin

Attachment: ldapplugin-groups.patch added

comment:2 Changed 8 years ago by Lev Shamardin

I've attached the patch to the ticket.

Modify Ticket

as new The owner will remain Emmanuel Blot.

Add Comment

E-mail address and name can be saved in the Preferences.

Note: See TracTickets for help on using tickets.