sidetag: extend is_sidetag_owner for untag ops

Related: https://pagure.io/koji/issue/3848
This commit is contained in:
Tomas Kopecek 2023-06-20 14:20:07 +02:00
parent 38a966abd5
commit 13097dff36
2 changed files with 26 additions and 4 deletions

View file

@ -65,9 +65,27 @@ class SidetagOwnerTest(koji.policy.MatchTest):
name = 'is_sidetag_owner'
def run(self, data):
values = self.str.split()[1:]
if len(values) > 1:
raise koji.GenericError("Just one argument is allowed for this test.")
elif values:
value = values[0]
if value not in ('tag', 'fromtag', 'both'):
raise koji.GenericError("Policy test is_sidetag_owner has only "
f"/tag/fromtag/both options (got {value})")
if value == 'both':
values = ['tag', 'fromtag']
else:
values = ['tag']
user = policy_get_user(data)
tag = get_tag(data['tag'])
return is_sidetag_owner(tag, user)
for value in values:
if value not in data:
return False
tag = get_tag(value)
if not tag or not is_sidetag_owner(tag, user):
return False
return True
# API calls