mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
hbactest does not work for external users
Original patch for ticket #3803 implemented support to resolve SIDs through SSSD. However, it also broke hbactest for external users. The result of the updated external member group search must be local non-external groups, not the external ones. Otherwise the rule is not matched. https://fedorahosted.org/freeipa/ticket/3803
This commit is contained in:
@@ -400,14 +400,16 @@ class hbactest(Command):
|
|||||||
ldap = self.api.Backend.ldap2
|
ldap = self.api.Backend.ldap2
|
||||||
group_container = DN(api.env.container_group, api.env.basedn)
|
group_container = DN(api.env.container_group, api.env.basedn)
|
||||||
try:
|
try:
|
||||||
entries, truncated = ldap.find_entries(filter_sids, ['cn'], group_container)
|
entries, truncated = ldap.find_entries(filter_sids, ['memberof'], group_container)
|
||||||
except errors.NotFound:
|
except errors.NotFound:
|
||||||
request.user.groups = []
|
request.user.groups = []
|
||||||
else:
|
else:
|
||||||
groups = []
|
groups = []
|
||||||
for dn, entry in entries:
|
for dn, entry in entries:
|
||||||
if dn.endswith(group_container):
|
memberof_dns = entry.get('memberof', [])
|
||||||
groups.append(dn[0][0].value)
|
for memberof_dn in memberof_dns:
|
||||||
|
if memberof_dn.endswith(group_container):
|
||||||
|
groups.append(memberof_dn[0][0].value)
|
||||||
request.user.groups = sorted(set(groups))
|
request.user.groups = sorted(set(groups))
|
||||||
else:
|
else:
|
||||||
# try searching for a local user
|
# try searching for a local user
|
||||||
|
|||||||
Reference in New Issue
Block a user