예제 #1
0
 def test_known_groups_when_multiple_provider(self):
     provider = CombinedGroupProvider(
         PreconfiguredGroupProvider({'group1': ['@lazy1', 'user1']}),
         PreconfiguredGroupProvider({'group2': ['userX', 'user2']}),
         PreconfiguredGroupProvider({'group3': ['user3']}),
         PreconfiguredGroupProvider({'group4': ['@lazy4', 'user4']}))
     self.assertCountEqual(provider.get_groups('userX', ['lazy1', 'lazy4']), ['group1', 'group2', 'group4'])
예제 #2
0
 def test_multiple_providers(self):
     provider = CombinedGroupProvider(
         PreconfiguredGroupProvider({'group1': ['user1', 'user2']}),
         PreconfiguredGroupProvider({'group2': ['user3', 'user4']}),
         PreconfiguredGroupProvider({'group3': ['user2', 'user5']}))
     self.assertCountEqual(provider.get_groups('user2'),
                           ['group1', 'group3'])
예제 #3
0
 def test_known_group_when_multiple_parents(self):
     provider = PreconfiguredGroupProvider(
         {'group1': ['@lazy1', 'user1'],
          'group2': ['@lazy1', '@lazy2', 'user2'],
          'group3': ['@lazy3', 'user3']})
     actual_groups = provider.get_groups('userX', known_groups=['lazy1'])
     self.assertCountEqual(actual_groups, ['group1', 'group2'])
예제 #4
0
 def test_two_users_in_different_groups(self):
     provider = PreconfiguredGroupProvider({
         'group1': ['user1'],
         'group2': ['user2']
     })
     self.assertCountEqual(provider.get_groups('user1'), ['group1'])
     self.assertCountEqual(provider.get_groups('user2'), ['group2'])
예제 #5
0
 def test_user_in_recursive_groups_when_cyclic(self):
     provider = PreconfiguredGroupProvider({
         'group1': ['@group2'],
         'group2': ['@group1', 'user1']
     })
     self.assertCountEqual(provider.get_groups('user1'),
                           ['group1', 'group2'])
예제 #6
0
 def test_user_in_multiple_groups(self):
     provider = PreconfiguredGroupProvider({
         'group1': ['user1'],
         'group2': ['user1'],
         'group3': ['user1']
     })
     self.assertCountEqual(provider.get_groups('user1'),
                           ['group1', 'group2', 'group3'])
예제 #7
0
 def test_known_group_when_exists_and_multiple_and_mixed(self):
     provider = PreconfiguredGroupProvider(
         {'group1': ['@lazy1', 'user2'],
          'group2': ['@lazy2', 'user3'],
          'group3': ['@lazy3', 'user1'],
          'group4': ['@lazy4', 'user4']})
     actual_groups = provider.get_groups('user1', known_groups=['lazy2', 'lazy4'])
     self.assertCountEqual(actual_groups, ['group2', 'group3', 'group4'])
예제 #8
0
    def assertAllowed(self, user, allowed_users, expected_allowed, groups=None):
        group_provider = PreconfiguredGroupProvider(groups) if groups else EmptyGroupProvider()
        authorizer = Authorizer(allowed_users, [], [], group_provider)

        allowed = authorizer.is_allowed_in_app(user)
        if allowed != expected_allowed:
            self.fail('Expected ' + user + ' to be allowed=' + str(expected_allowed)
                      + ' for ' + str(allowed_users) + ' but was ' + str(allowed))
예제 #9
0
    def assert_has_access(self, user, admin_users, history_access_users, expected_allowed, groups=None):
        group_provider = PreconfiguredGroupProvider(groups) if groups else EmptyGroupProvider()
        authorizer = Authorizer([], admin_users, history_access_users, group_provider)

        has_access = authorizer.has_full_history_access(user)
        if has_access != expected_allowed:
            self.fail('Expected ' + user + ' to has_access=' + str(expected_allowed)
                      + ' for ' + str(history_access_users) + ' but was ' + str(has_access))
예제 #10
0
 def test_user_without_groups(self):
     provider = PreconfiguredGroupProvider({'group1': ['user1']})
     self.assertCountEqual(provider.get_groups('user2'), [])
예제 #11
0
 def test_user_without_groups(self):
     provider = PreconfiguredGroupProvider({'group1': ['user1']})
     self.assertCountEqual(provider.get_groups('user2'), [])
예제 #12
0
 def test_single_user_in_single_group(self):
     provider = PreconfiguredGroupProvider({'group1': ['user1']})
     self.assertCountEqual(provider.get_groups('user1'), ['group1'])
예제 #13
0
 def test_known_groups_when_single_provider(self):
     provider = CombinedGroupProvider(
         PreconfiguredGroupProvider({'group1': ['user1', '@lazy1']}))
     self.assertCountEqual(provider.get_groups('user2', ['lazy1']),
                           ['group1'])
예제 #14
0
 def test_user_in_multiple_groups(self):
     provider = PreconfiguredGroupProvider({'group1': ['user1'], 'group2': ['user1'], 'group3': ['user1']})
     self.assertCountEqual(provider.get_groups('user1'), ['group1', 'group2', 'group3'])
예제 #15
0
 def test_single_provider(self):
     provider = CombinedGroupProvider(
         PreconfiguredGroupProvider({'group1': ['user1', 'user2']}))
     self.assertCountEqual(provider.get_groups('user1'), ['group1'])
예제 #16
0
 def test_known_group_when_username_starts_with_at(self):
     provider = PreconfiguredGroupProvider({'group1': ['@group2', 'user2']})
     self.assertCountEqual(provider.get_groups('@group2'), [])
예제 #17
0
 def test_known_group_when_not_exists(self):
     provider = PreconfiguredGroupProvider({'group1': ['@group2', 'user2']})
     self.assertCountEqual(
         provider.get_groups('user1', known_groups=['group3']), [])
예제 #18
0
 def test_two_users_in_different_groups(self):
     provider = PreconfiguredGroupProvider(
         {'group1': ['user1'],
          'group2': ['user2']})
     self.assertCountEqual(provider.get_groups('user1'), ['group1'])
     self.assertCountEqual(provider.get_groups('user2'), ['group2'])
예제 #19
0
 def test_empty_groups_config(self):
     provider = PreconfiguredGroupProvider({})
     self.assertCountEqual(provider.get_groups('user1'), [])
예제 #20
0
 def test_empty_groups_config(self):
     provider = PreconfiguredGroupProvider({})
     self.assertCountEqual(provider.get_groups('user1'), [])
예제 #21
0
 def test_user_in_recursive_group_when_3_levels(self):
     provider = PreconfiguredGroupProvider({'group1': ['@group2'], 'group2': ['@group3'], 'group3': ['user1']})
     self.assertCountEqual(provider.get_groups('user1'), ['group1', 'group2', 'group3'])
예제 #22
0
 def test_2_users_in_recursive_groups_when_cyclic(self):
     provider = PreconfiguredGroupProvider({'group1': ['@group2', 'user2'], 'group2': ['@group1', 'user1']})
     self.assertCountEqual(provider.get_groups('user1'), ['group1', 'group2'])
     self.assertCountEqual(provider.get_groups('user2'), ['group1', 'group2'])
예제 #23
0
 def test_single_user_in_single_group_ignore_case(self):
     provider = PreconfiguredGroupProvider({'group1': ['USER1']})
     self.assertCountEqual(provider.get_groups('User1'), ['group1'])
예제 #24
0
 def test_single_user_in_single_group(self):
     provider = PreconfiguredGroupProvider({'group1': ['user1']})
     self.assertCountEqual(provider.get_groups('user1'), ['group1'])