def setUp(self):
     super(TestProtectedImageRepoProxy, self).setUp()
     self.set_property_protections()
     self.policy = policy.Enforcer()
     self.property_rules = property_utils.PropertyRules(self.policy)
     self.image_factory = xmonitor.domain.ImageFactory()
     extra_props = {
         'spl_create_prop': 'c',
         'spl_read_prop': 'r',
         'spl_update_prop': 'u',
         'spl_delete_prop': 'd',
         'forbidden': 'prop'
     }
     extra_props_2 = {'spl_read_prop': 'r', 'forbidden': 'prop'}
     self.fixtures = [
         self.image_factory.new_image(image_id='1',
                                      owner=TENANT1,
                                      extra_properties=extra_props),
         self.image_factory.new_image(owner=TENANT2, visibility='public'),
         self.image_factory.new_image(image_id='3',
                                      owner=TENANT1,
                                      extra_properties=extra_props_2),
     ]
     self.context = xmonitor.context.RequestContext(roles=['spl_role'])
     image_repo = self.ImageRepoStub(self.fixtures)
     self.image_repo = property_protections.ProtectedImageRepoProxy(
         image_repo, self.context, self.property_rules)
Exemplo n.º 2
0
 def test_property_config_loaded_in_order(self):
     """
     Verify the order of loaded config sections matches that from the
     configuration file
     """
     self.rules_checker = property_utils.PropertyRules(self.policy)
     self.assertEqual(CONFIG_SECTIONS, property_utils.CONFIG.sections())
Exemplo n.º 3
0
 def test_property_rules_loaded_in_order(self):
     """
     Verify rules are iterable in the same order as read from the config
     file
     """
     self.rules_checker = property_utils.PropertyRules(self.policy)
     for i in range(len(property_utils.CONFIG.sections())):
         self.assertEqual(property_utils.CONFIG.sections()[i],
                          self.rules_checker.rules[i][0].pattern)
Exemplo n.º 4
0
 def test_check_return_first_match(self):
     self.rules_checker = property_utils.PropertyRules()
     self.assertFalse(
         self.rules_checker.check_property_rules(
             'x_foo_matcher', 'create', create_context(self.policy, [''])))
     self.assertFalse(
         self.rules_checker.check_property_rules(
             'x_foo_matcher', 'read', create_context(self.policy, [''])))
     self.assertFalse(
         self.rules_checker.check_property_rules(
             'x_foo_matcher', 'update', create_context(self.policy, [''])))
     self.assertFalse(
         self.rules_checker.check_property_rules(
             'x_foo_matcher', 'delete', create_context(self.policy, [''])))
Exemplo n.º 5
0
 def test_check_property_rules_read_none(self):
     self.rules_checker = property_utils.PropertyRules()
     self.assertTrue(
         self.rules_checker.check_property_rules(
             'x_none_read', 'create',
             create_context(self.policy, ['admin', 'member'])))
     self.assertFalse(
         self.rules_checker.check_property_rules(
             'x_none_read', 'read', create_context(self.policy, [''])))
     self.assertFalse(
         self.rules_checker.check_property_rules(
             'x_none_read', 'update', create_context(self.policy, [''])))
     self.assertFalse(
         self.rules_checker.check_property_rules(
             'x_none_read', 'delete', create_context(self.policy, [''])))
Exemplo n.º 6
0
 def test_check_case_insensitive_property_rules(self):
     self.rules_checker = property_utils.PropertyRules()
     self.assertTrue(
         self.rules_checker.check_property_rules(
             'x_case_insensitive', 'create',
             create_context(self.policy, ['member'])))
     self.assertTrue(
         self.rules_checker.check_property_rules(
             'x_case_insensitive', 'read',
             create_context(self.policy, ['member'])))
     self.assertTrue(
         self.rules_checker.check_property_rules(
             'x_case_insensitive', 'update',
             create_context(self.policy, ['member'])))
     self.assertTrue(
         self.rules_checker.check_property_rules(
             'x_case_insensitive', 'delete',
             create_context(self.policy, ['member'])))
Exemplo n.º 7
0
 def test_property_protection_with_whitespace(self):
     rules_whitespace = {
         '^test_prop.*': {
             'create': ['member ,fake-role'],
             'read': ['fake-role, member'],
             'update': ['fake-role,  member'],
             'delete': ['fake-role,   member']
         }
     }
     self.set_property_protection_rules(rules_whitespace)
     self.rules_checker = property_utils.PropertyRules()
     self.assertTrue(
         self.rules_checker.check_property_rules(
             'test_prop_1', 'read', create_context(self.policy,
                                                   ['member'])))
     self.assertTrue(
         self.rules_checker.check_property_rules(
             'test_prop_1', 'read',
             create_context(self.policy, ['fake-role'])))
Exemplo n.º 8
0
 def test_check_property_rules_delete_none_permitted(self):
     self.rules_checker = property_utils.PropertyRules()
     self.assertFalse(
         self.rules_checker.check_property_rules(
             'x_none_permitted', 'delete',
             create_context(self.policy, [''])))
Exemplo n.º 9
0
 def test_check_property_rules_update_all_permitted(self):
     self.rules_checker = property_utils.PropertyRules()
     self.assertTrue(
         self.rules_checker.check_property_rules(
             'x_all_permitted', 'update', create_context(self.policy,
                                                         [''])))
Exemplo n.º 10
0
 def setUp(self):
     super(TestPropertyRulesWithPolicies, self).setUp()
     self.set_property_protections(use_policies=True)
     self.policy = policy.Enforcer()
     self.rules_checker = property_utils.PropertyRules(self.policy)
Exemplo n.º 11
0
 def test_check_property_rules_delete_unpermitted_role(self):
     self.rules_checker = property_utils.PropertyRules(self.policy)
     self.assertFalse(
         self.rules_checker.check_property_rules(
             'test_prop', 'delete', create_context(self.policy,
                                                   ['member'])))
Exemplo n.º 12
0
 def test_check_property_rules_delete_permitted_specific_role(self):
     self.rules_checker = property_utils.PropertyRules(self.policy)
     self.assertTrue(
         self.rules_checker.check_property_rules(
             'x_owner_prop', 'delete',
             create_context(self.policy, ['member'])))
Exemplo n.º 13
0
 def test_check_property_rules_delete_permitted_admin_role(self):
     self.rules_checker = property_utils.PropertyRules(self.policy)
     self.assertTrue(
         self.rules_checker.check_property_rules(
             'test_prop', 'delete', create_context(self.policy, ['admin'])))
Exemplo n.º 14
0
 def test_check_property_rules_invalid_action(self):
     self.rules_checker = property_utils.PropertyRules(self.policy)
     self.assertFalse(
         self.rules_checker.check_property_rules(
             'test_prop', 'hall', create_context(self.policy, ['admin'])))
Exemplo n.º 15
0
 def setUp(self):
     super(TestProtectedImageFactoryProxy, self).setUp()
     self.set_property_protections()
     self.policy = policy.Enforcer()
     self.property_rules = property_utils.PropertyRules(self.policy)
     self.factory = xmonitor.domain.ImageFactory()
Exemplo n.º 16
0
 def setUp(self):
     super(TestExtraPropertiesProxy, self).setUp()
     self.set_property_protections()
     self.policy = policy.Enforcer()
     self.property_rules = property_utils.PropertyRules(self.policy)