Ver código fonte

Invalid attribute syntax in Hue find_groups_filter (#2407)

Jira: CDPD-28523
PR: 2407
Mahesh Balakrishnan 4 anos atrás
pai
commit
bce88a2c85
1 arquivos alterados com 8 adições e 2 exclusões
  1. 8 2
      apps/useradmin/src/useradmin/views.py

+ 8 - 2
apps/useradmin/src/useradmin/views.py

@@ -973,8 +973,14 @@ def _get_find_groups_filter(ldap_info, server=None):
   sanitized_dn = ldap.filter.escape_filter_chars(ldap_info['dn']).replace(r'\2a', r'*')
   sanitized_dn = sanitized_dn.replace(r'\5c,', r'\5c\2c')
 
-  find_groups_filter = "(&" + group_filter + "(|(" + group_member_attr + "=" + ldap_info['username'] + ")(" + \
-                       group_member_attr + "=" + sanitized_dn + ")))"
+
+  if (group_member_attr.lower() == 'memberuid'):
+    find_groups_filter = "(&" + group_filter + "(" + group_member_attr + "=" + ldap_info['username'] + "))"
+  elif (group_member_attr.lower() == 'member' or group_member_attr.lower() == 'uniquemember'):
+    find_groups_filter = "(&" + group_filter + "(" + group_member_attr + "=" + sanitized_dn + "))"
+  else:
+    find_groups_filter = "(&" + group_filter + "(|(" + group_member_attr + "=" + ldap_info['username'] + ")(" + \
+                         group_member_attr + "=" + sanitized_dn + ")))"
 
   return find_groups_filter