[copr] bkabrda-workspace: More pulling into logic, also removing permissions now moves them to 'No Action' instead of 'Requested' state (f4ce8a0)

bkabrda at fedorahosted.org bkabrda at fedorahosted.org
Tue Nov 27 13:13:01 UTC 2012


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

On branch  : bkabrda-workspace

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

commit f4ce8a0e8732bc7821d069fe5936fbbe18311b38
Author: Bohuslav Kabrda <bkabrda at redhat.com>
Date:   Tue Nov 27 14:12:51 2012 +0100

    More pulling into logic, also removing permissions now moves them to 'No Action' instead of 'Requested' state


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

 coprs_frontend/coprs/logic/coprs_logic.py          |   22 +++++++++++++++++++-
 .../coprs/views/coprs_ns/coprs_general.py          |   22 +++----------------
 .../tests/test_views/test_coprs_ns/test_general.py |    2 +-
 3 files changed, 26 insertions(+), 20 deletions(-)

diff --git a/coprs_frontend/coprs/logic/coprs_logic.py b/coprs_frontend/coprs/logic/coprs_logic.py
index 2ec3184..08bf3e7 100644
--- a/coprs_frontend/coprs/logic/coprs_logic.py
+++ b/coprs_frontend/coprs/logic/coprs_logic.py
@@ -83,6 +83,27 @@ class CoprsPermissionLogic(object):
         db.session.add(copr_permission)
 
     @classmethod
+    def update_permissions(cls, user, copr, copr_permission, new_builder, new_admin):
+        copr_builder = copr_permission.copr_builder
+        copr_admin = copr_permission.copr_admin
+        # if the permission is granted, use Approved
+        # otherwise if it was Approved and it is ungranted, use No Action,
+        # else use original value
+        if new_builder:
+            copr_builder = helpers.PermissionEnum.num('Approved')
+        elif copr_builder == helpers.PermissionEnum.num('Approved'):
+            copr_builder = helpers.PermissionEnum.num('No Action')
+        if new_admin:
+            copr_admin = helpers.PermissionEnum.num('Approved')
+        elif copr_admin == helpers.PermissionEnum.num('Approved'):
+            copr_admin = helpers.PermissionEnum.num('No Action')
+
+        models.CoprPermission.query.filter(models.CoprPermission.copr_id == copr.id).\
+                                    filter(models.CoprPermission.user_id == copr_permission.user_id).\
+                                    update({'copr_builder': copr_builder,
+                                            'copr_admin': copr_admin})
+
+    @classmethod
     def update_permissions_by_applier(cls, user, copr, copr_permission, new_builder, new_admin):
         approved_num = helpers.PermissionEnum.num('Approved')
         if copr_permission:
@@ -102,7 +123,6 @@ class CoprsPermissionLogic(object):
                 perm = models.CoprPermission(user = user, copr = copr, copr_builder = new_builder, copr_admin = new_admin)
                 cls.new(user, perm)
 
-
     @classmethod
     def delete(cls, user, copr_permission):
         db.session.delete(copr_permission)
diff --git a/coprs_frontend/coprs/views/coprs_ns/coprs_general.py b/coprs_frontend/coprs/views/coprs_ns/coprs_general.py
index 36c2b39..08dc164 100644
--- a/coprs_frontend/coprs/views/coprs_ns/coprs_general.py
+++ b/coprs_frontend/coprs/views/coprs_ns/coprs_general.py
@@ -179,24 +179,10 @@ def copr_update_permissions(username, coprname):
     if permissions_form.validate_on_submit():
         # we don't change owner (yet)
         for perm in permissions:
-            copr_builder = perm.copr_builder
-            copr_admin = perm.copr_admin
-            # if the permission is granted, use Approved
-            # otherwise if it was Approved and it is ungranted, use Request,
-            # else use original value
-            if permissions_form['copr_builder_{0}'.format(perm.user_id)].data:
-                copr_builder = helpers.PermissionEnum.num('Approved')
-            elif copr_builder == helpers.PermissionEnum.num('Approved'):
-                copr_builder = helpers.PermissionEnum.num('Request')
-            if permissions_form['copr_admin_{0}'.format(perm.user_id)].data:
-                copr_admin = helpers.PermissionEnum.num('Approved')
-            elif copr_admin == helpers.PermissionEnum.num('Approved'):
-                copr_admin = helpers.PermissionEnum.num('Request')
-
-            models.CoprPermission.query.filter(models.CoprPermission.copr_id == copr.id).\
-                                        filter(models.CoprPermission.user_id == perm.user_id).\
-                                        update({'copr_builder': copr_builder,
-                                                'copr_admin': copr_admin})
+            new_builder = permissions_form['copr_builder_{0}'.format(perm.user_id)].data
+            new_admin = permissions_form['copr_admin_{0}'.format(perm.user_id)].data
+            coprs_logic.CoprsPermissionLogic.update_permissions(flask.g.user, copr, perm, new_builder, new_admin)
+
         db.session.commit()
         flask.flash('Copr permissions were updated successfully.')
         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 e2565b1..f57efe9 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
@@ -233,7 +233,7 @@ class TestCoprUpdatePermissions(CoprsTestCase):
                                                            filter(self.models.CoprPermission.user_id == self.u1.id).\
                                                            first()
             assert u1_c3_perms.copr_builder == self.helpers.PermissionEnum.num('Approved')
-            assert u1_c3_perms.copr_admin == self.helpers.PermissionEnum.num('Request')
+            assert u1_c3_perms.copr_admin == self.helpers.PermissionEnum.num('No Action')
 
             u3_c3_perms = self.models.CoprPermission.query.filter(self.models.CoprPermission.copr_id == self.c3.id).\
                                                            filter(self.models.CoprPermission.user_id == self.u3.id).\



More information about the copr-devel mailing list