Commit ab08da28 authored by Michal Čihař's avatar Michal Čihař

Adjust code to multiple owners situation

Issue #719
Signed-off-by: default avatarMichal Čihař <michal@cihar.com>
parent 180bab94
...@@ -70,9 +70,9 @@ def notify_merge_failure(subproject, error, status): ...@@ -70,9 +70,9 @@ def notify_merge_failure(subproject, error, status):
) )
users.add(subscription.user_id) users.add(subscription.user_id)
if subproject.project.owner and subproject.project.owner_id not in users: for owner in subproject.project.owners.all():
mails.append( mails.append(
subproject.project.owner.profile.notify_merge_failure( owner.profile.notify_merge_failure(
subproject, error, status subproject, error, status
) )
) )
...@@ -126,9 +126,9 @@ def notify_new_language(subproject, language, user): ...@@ -126,9 +126,9 @@ def notify_new_language(subproject, language, user):
) )
users.add(subscription.user_id) users.add(subscription.user_id)
if subproject.project.owner and subproject.project.owner_id not in users: for owner in subproject.project.owners.all():
mails.append( mails.append(
subproject.project.owner.profile.notify_new_language( owner.profile.notify_new_language(
subproject, language, user subproject, language, user
) )
) )
......
...@@ -566,7 +566,7 @@ class NotificationTest(ViewTestCase): ...@@ -566,7 +566,7 @@ class NotificationTest(ViewTestCase):
) )
# Add project owner # Add project owner
self.subproject.project.owner = self.second_user() self.subproject.project.owners.add(self.second_user())
notify_merge_failure( notify_merge_failure(
self.subproject, self.subproject,
'Failed merge', 'Failed merge',
...@@ -620,7 +620,7 @@ class NotificationTest(ViewTestCase): ...@@ -620,7 +620,7 @@ class NotificationTest(ViewTestCase):
) )
# Add project owner # Add project owner
self.subproject.project.owner = second_user self.subproject.project.owners.add(second_user)
notify_new_language( notify_new_language(
self.subproject, self.subproject,
Language.objects.filter(code='de'), Language.objects.filter(code='de'),
......
...@@ -28,7 +28,7 @@ def check_owner(user, project, permission): ...@@ -28,7 +28,7 @@ def check_owner(user, project, permission):
""" """
Checks whether owner group has given permission. Checks whether owner group has given permission.
""" """
if user != project.owner: if not project.owners.filter(id=user.id).exists():
return False return False
group = Group.objects.get(name='Owners') group = Group.objects.get(name='Owners')
app, perm = permission.split('.') app, perm = permission.split('.')
......
...@@ -31,7 +31,8 @@ class PermissionsTest(TestCase): ...@@ -31,7 +31,8 @@ class PermissionsTest(TestCase):
self.user = User.objects.create_user('user', 'test@example.com', 'x') self.user = User.objects.create_user('user', 'test@example.com', 'x')
self.owner = User.objects.create_user('owner', 'test@example.com', 'x') self.owner = User.objects.create_user('owner', 'test@example.com', 'x')
self.owner.groups.add(Group.objects.get(name='Owners')) self.owner.groups.add(Group.objects.get(name='Owners'))
self.project = Project.objects.create(slug='test', owner=self.owner) self.project = Project.objects.create(slug='test')
self.project.owners.add(self.owner)
def test_owner_owned(self): def test_owner_owned(self):
self.assertTrue( self.assertTrue(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment