Repository :
http://git.fedorahosted.org/cgit/copr.git
On branch : bkabrda-workspace
---------------------------------------------------------------
commit 8d3ced312bda655d4be4cbff4497c157534aa568
Author: Bohuslav Kabrda <bkabrda(a)redhat.com>
Date: Tue Nov 27 13:58:58 2012 +0100
Allow admins to modify copr permissions
---------------------------------------------------------------
.../coprs/views/coprs_ns/coprs_general.py | 2 +-
.../tests/test_views/test_coprs_ns/test_general.py | 12 ++++++++++++
2 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/coprs_frontend/coprs/views/coprs_ns/coprs_general.py
b/coprs_frontend/coprs/views/coprs_ns/coprs_general.py
index 217558d..a32b4e5 100644
--- a/coprs_frontend/coprs/views/coprs_ns/coprs_general.py
+++ b/coprs_frontend/coprs/views/coprs_ns/coprs_general.py
@@ -172,7 +172,7 @@ def copr_update_permissions(username, coprname):
permissions_form =
forms.DynamicPermissionsFormFactory.create_form_cls(permissions)()
# only owner can update copr permissions
- if flask.g.user != copr.owner:
+ if not flask.g.user.can_edit(copr):
flask.flash('Only owners may update their Coprs permissions.')
return flask.redirect(flask.url_for('coprs_ns.copr_detail', username =
copr.owner.name, coprname = copr.name))
diff --git a/coprs_frontend/tests/test_views/test_coprs_ns/test_general.py
b/coprs_frontend/tests/test_views/test_coprs_ns/test_general.py
index 9793245..a30731e 100644
--- a/coprs_frontend/tests/test_views/test_coprs_ns/test_general.py
+++ b/coprs_frontend/tests/test_views/test_coprs_ns/test_general.py
@@ -228,3 +228,15 @@ class TestCoprUpdatePermissions(CoprsTestCase):
first()
assert u3_c3_perms.copr_builder == self.helpers.PermissionEnum.num('No
Action')
assert u3_c3_perms.copr_admin ==
self.helpers.PermissionEnum.num('Approved')
+
+ def test_copr_admin_can_update_permissions(self, f_users, f_coprs,
f_copr_permissions):
+ with self.tc as c:
+ with c.session_transaction() as s:
+ s['openid'] = self.u1.openid_name
+
+ self.db.session.add_all([self.u2, self.c3])
+ r =
c.post('/coprs/detail/{0}/{1}/update_permissions/'.format(self.u2.name,
self.c3.name),
+ data = {'copr_builder_1': 'y',
'copr_admin_3': 'y'},
+ follow_redirects = True)
+
+ assert 'Copr permissions were updated' in r.data