mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
py3: __add_acl: use standard ipaldap methods
Using raw pyldap interface we have to keep vaules as bytes. Is easier to migrate to ipaldap and use strings without decoding and encoding. https://fedorahosted.org/freeipa/ticket/4985 Reviewed-By: Christian Heimes <cheimes@redhat.com> Reviewed-By: Jan Cholasta <jcholast@redhat.com>
This commit is contained in:
parent
0a1d7f2e01
commit
4b148c8ca3
@ -1528,22 +1528,19 @@ def __add_acls(new_rules):
|
||||
Return ``True`` if any ACLs were added otherwise ``False``.
|
||||
|
||||
"""
|
||||
server_id = installutils.realm_to_serverid(api.env.realm)
|
||||
dogtag_uri = 'ldapi://%%2fvar%%2frun%%2fslapd-%s.socket' % server_id
|
||||
updated = False
|
||||
|
||||
dn = DN(('cn', 'aclResources'), ('o', 'ipaca'))
|
||||
|
||||
conn = ldap2.ldap2(api, ldap_uri=dogtag_uri)
|
||||
if not conn.isconnected():
|
||||
conn.connect(autobind=True)
|
||||
cur_rules = conn.get_entry(dn).get('resourceACLS', [])
|
||||
conn = api.Backend.ldap2
|
||||
entry = conn.get_entry(dn)
|
||||
cur_rules = entry.get('resourceACLS', [])
|
||||
add_rules = [rule for rule in new_rules if rule not in cur_rules]
|
||||
if add_rules:
|
||||
conn.conn.modify_s(str(dn), [(ldap.MOD_ADD, 'resourceACLS', add_rules)])
|
||||
cur_rules.extend(add_rules)
|
||||
conn.update_entry(entry)
|
||||
updated = True
|
||||
|
||||
conn.disconnect()
|
||||
return updated
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user