Inherit group permissions

Related: https://pagure.io/koji/issue/3849
This commit is contained in:
Tomas Kopecek 2023-06-19 09:57:04 +02:00
parent d324f601c8
commit 255ec21d00
7 changed files with 63 additions and 21 deletions

View file

@ -703,19 +703,37 @@ class TestAuthSession(unittest.TestCase):
query = self.queries[0]
self.assertEqual(query.tables, ['user_groups'])
self.assertEqual(query.joins, ['users ON group_id = users.id'])
self.assertEqual(query.clauses, ['active = TRUE', 'user_id=%(user_id)i',
self.assertEqual(query.clauses, ['active IS TRUE', 'user_id=%(user_id)i',
'users.usertype=%(t_group)i'])
self.assertEqual(query.columns, ['group_id', 'name'])
def test_get_user_perms(self):
"""auth.get_user_perms"""
kojihub.auth.get_user_perms(1)
self.assertEqual(len(self.queries), 1)
self.assertEqual(len(self.queries), 2)
query = self.queries[0]
self.assertEqual(query.tables, ['user_perms'])
self.assertEqual(query.joins, ['permissions ON perm_id = permissions.id'])
self.assertEqual(query.clauses, ['active = TRUE', 'user_id=%(user_id)s'])
self.assertEqual(query.clauses, ['active IS TRUE', 'user_id=%(user_id)s'])
self.assertEqual(query.columns, ['name'])
query = self.queries[1]
self.assertEqual(query.tables, ['user_groups'])
self.assertEqual(query.joins, [
'LEFT JOIN user_perms ON user_perms.user_id = user_groups.group_id',
'permissions ON perm_id = permissions.id'])
self.assertEqual(sorted(query.clauses), sorted([
'user_groups.active IS TRUE',
'user_perms.active IS TRUE',
'user_groups.user_id=%(user_id)s']))
self.assertEqual(query.columns, ['name'])
def test_get_user_perms_inherited(self):
self.query_execute.side_effect = [
[{'id': 1, 'name': 'perm1'}, {'id': 2, 'name': 'perm2'}],
[{'id': 3, 'name': 'perm3'}]
]
result = kojihub.auth.get_user_perms(1)
self.assertEqual(set(result), {'perm1', 'perm2', 'perm3'})
def test_logout_logged_not_owner(self):
s, _ = self.get_session()