diff options
author | Alexander Bokovoy <abokovoy@redhat.com> | 2011-09-13 11:49:27 +0300 |
---|---|---|
committer | Martin Kosek <mkosek@redhat.com> | 2011-09-13 13:14:53 +0200 |
commit | 261a41b3d4e78f7563a4cc72ebd2b4db42fac3bf (patch) | |
tree | 24732a8a43a27e91eff5a71f2f791ff3ba240ee3 | |
parent | 579c8e56e092b2ffda685f2e0cf7e42b8d0014ff (diff) | |
download | freeipa-261a41b3d4e78f7563a4cc72ebd2b4db42fac3bf.tar.gz freeipa-261a41b3d4e78f7563a4cc72ebd2b4db42fac3bf.tar.xz freeipa-261a41b3d4e78f7563a4cc72ebd2b4db42fac3bf.zip |
When external host is specified in HBAC rule, allow its use in simulation
https://fedorahosted.org/freeipa/ticket/1763
When external host is specified in HBAC rule, it needs to be added to
the set of source hosts this rule applies to. Add (list of external hosts)
explicitly when converting FreeIPA rules to PyHBAC objects.
-rw-r--r-- | ipalib/plugins/hbactest.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/ipalib/plugins/hbactest.py b/ipalib/plugins/hbactest.py index 5fce2e5fb..43151e340 100644 --- a/ipalib/plugins/hbactest.py +++ b/ipalib/plugins/hbactest.py @@ -131,7 +131,8 @@ def convert_to_ipa_rule(rule): ipa_rule = pyhbac.HbacRule(rule['cn'][0]) ipa_rule.enabled = rule['ipaenabledflag'][0] # Following code attempts to process rule systematically - structure = (('user', 'memberuser', 'user', 'group', ipa_rule.users), + structure = \ + (('user', 'memberuser', 'user', 'group', ipa_rule.users), ('host', 'memberhost', 'host', 'hostgroup', ipa_rule.targethosts), ('sourcehost', 'sourcehost', 'host', 'hostgroup', ipa_rule.srchosts), ('service', 'memberservice', 'hbacsvc', 'hbacsvcgroup', ipa_rule.services), @@ -151,6 +152,8 @@ def convert_to_ipa_rule(rule): attr_name = '%s_%s' % (element[1], element[3]) if attr_name in rule: element[4].groups = rule[attr_name] + if 'externalhost' in rule: + ipa_rule.srchosts.names.extend(rule['externalhost']) return ipa_rule |