mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Fix two bugs: one in parsing the ACI and one in comparing two ACIs
The parsing bug was looking for the string 'version' expecting to find the ACI version. This blew up with the attribute nsosversion. Use the string 'version 3.0' instead. The comparison bug appeared if neither ACI had a targetattr attribute. It was trying to create a set out of a None which is illegal. If an ACI doesn't have any targetattrs then return () instead.
This commit is contained in:
parent
f14f5156d4
commit
1ea6def129
@ -129,7 +129,7 @@ class ACI:
|
||||
self.target[var]['expression'] = val
|
||||
|
||||
def _parse_acistr(self, acistr):
|
||||
vstart = acistr.find('version')
|
||||
vstart = acistr.find('version 3.0')
|
||||
if vstart < 0:
|
||||
raise SyntaxError, "malformed ACI, unable to find version %s" % acistr
|
||||
acimatch = ACIPat.match(acistr[vstart-1:])
|
||||
@ -231,10 +231,10 @@ class ACI:
|
||||
if self.target.get('targetfilter',{}).get('operator') != b.target.get('targetfilter',{}).get('operator'):
|
||||
return False
|
||||
|
||||
if set(self.target.get('targetattr',{}).get('expression')) != set(b.target.get('targetattr',{}).get('expression')):
|
||||
return False
|
||||
if self.target.get('targetattr',{}).get('operator') != b.target.get('targetattr',{}).get('operator'):
|
||||
if set(self.target.get('targetattr', {}).get('expression', ())) != set(b.target.get('targetattr',{}).get('expression', ())):
|
||||
return False
|
||||
if self.target.get('targetattr',{}).get('operator') != b.target.get('targetattr',{}).get('operator'):
|
||||
return False
|
||||
|
||||
if self.target.get('target',{}).get('expression') != b.target.get('target',{}).get('expression'):
|
||||
return False
|
||||
|
Loading…
Reference in New Issue
Block a user