[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