[copr] bkabrda-workspace: Allow admins to modify copr permissions (8d3ced3)

bkabrda at fedoraproject.org bkabrda at fedoraproject.org
Tue Nov 27 12:59:08 UTC 2012


Repository : http://git.fedorahosted.org/cgit/copr.git

On branch  : bkabrda-workspace

>---------------------------------------------------------------

commit 8d3ced312bda655d4be4cbff4497c157534aa568
Author: Bohuslav Kabrda <bkabrda at 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



More information about the copr-devel mailing list