Repository : http://git.fedorahosted.org/cgit/copr.git
On branch : bkabrda-workspace
commit e9724c2fcf404fae63f274b17a1bd428605efed8 Author: Bohuslav Kabrda bkabrda@redhat.com Date: Wed Nov 28 18:18:38 2012 +0100
Fix showing cancel build button
.../coprs/templates/coprs/_builds_table.html | 8 +++++- .../coprs/templates/coprs/_coprs_forms.html | 2 +- coprs_frontend/coprs/templates/coprs/detail.html | 2 +- .../coprs/templates/coprs/show_builds.html | 2 +- .../tests/test_views/test_coprs_ns/test_general.py | 24 +++++++++++++++++++- 5 files changed, 33 insertions(+), 5 deletions(-)
diff --git a/coprs_frontend/coprs/templates/coprs/_builds_table.html b/coprs_frontend/coprs/templates/coprs/_builds_table.html index 9366bdb..8b7082c 100644 --- a/coprs_frontend/coprs/templates/coprs/_builds_table.html +++ b/coprs_frontend/coprs/templates/coprs/_builds_table.html @@ -20,7 +20,13 @@ <td>{{ build.ended_on|date_from_secs or 'Not yet' }}</td> <td>{{ build.state }}</td> <td>{{ build.results }}</td> - <td>{{ copr_build_cancel_form(build) }}</td> + <td> + {% if g.user and g.user == build.user %} + {{ copr_build_cancel_form(build) }} + {% else %} + --- + {% endif %} + </td> </tr> <tr> <td colspan=7> diff --git a/coprs_frontend/coprs/templates/coprs/_coprs_forms.html b/coprs_frontend/coprs/templates/coprs/_coprs_forms.html index 02c632e..98e9b40 100644 --- a/coprs_frontend/coprs/templates/coprs/_coprs_forms.html +++ b/coprs_frontend/coprs/templates/coprs/_coprs_forms.html @@ -63,7 +63,7 @@
{% macro copr_build_cancel_form(build) %} {% if build.cancelable %} - <form action="{{ url_for('coprs_ns.copr_cancel_build', username = build.copr.owner.name, coprname = build.copr.name, build_id = build.id)}}"> + <form action="{{ url_for('coprs_ns.copr_cancel_build', username = build.copr.owner.name, coprname = build.copr.name, build_id = build.id)}}" method=post> <input type=submit value=Cancel> </form> {% endif %} diff --git a/coprs_frontend/coprs/templates/coprs/detail.html b/coprs_frontend/coprs/templates/coprs/detail.html index 30b653c..7f6a977 100644 --- a/coprs_frontend/coprs/templates/coprs/detail.html +++ b/coprs_frontend/coprs/templates/coprs/detail.html @@ -1,7 +1,7 @@ {% extends "layout.html" %} {% block title %}{{ copr.owner.name }}/{{ copr.name }} Copr{% endblock %} {% block header %}Information for Copr {{ copr.owner.name }}/{{ copr.name }}{% endblock %} -{% from "coprs/_builds_table.html" import builds_table %} +{% from "coprs/_builds_table.html" import builds_table with context %} {% from "coprs/_permissions_table.html" import permissions_table with context%} {% from "coprs/_coprs_forms.html" import copr_build_form, copr_build_cancel_form with context %} diff --git a/coprs_frontend/coprs/templates/coprs/show_builds.html b/coprs_frontend/coprs/templates/coprs/show_builds.html index 2432088..cf19cb8 100644 --- a/coprs_frontend/coprs/templates/coprs/show_builds.html +++ b/coprs_frontend/coprs/templates/coprs/show_builds.html @@ -2,7 +2,7 @@ {% block title %}Builds in {{ request.view_args['name'] }}{% endblock %} {% block header %}Builds in {{ request.view_args['name'] }} Copr{% endblock %} {% from "_helpers.html" import render_pagination %} -{% from "coprs/_builds_table.html" import builds_table %} +{% from "coprs/_builds_table.html" import builds_table with context %} {% from "coprs/_coprs_forms.html" import copr_build_cancel_form %} {% block body %} {{ builds_table(builds) }} 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 f57efe9..57c3d7b 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 @@ -138,6 +138,29 @@ class TestCoprDetail(CoprsTestCase): r = c.get('/coprs/detail/{0}/{1}/'.format(self.u2.name, self.c2.name)) assert '/permissions_applier_change/' not in r.data
+ def test_copr_detail_doesnt_show_cancel_build_for_anonymous(self, f_users, f_coprs, f_builds): + r = self.tc.get('/coprs/detail/{0}/{1}/'.format(self.u2.name, self.c2.name)) + assert '/cancel_build/' not in r.data + + def test_copr_detail_doesnt_allow_non_submitter_to_cancel_build(self, f_users, f_coprs, f_builds): + 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.c2]) + r = c.get('/coprs/detail/{0}/{1}/'.format(self.u2.name, self.c2.name)) + assert '/cancel_build/' not in r.data + + def test_copr_detail_allows_submitter_to_cancel_build(self, f_users, f_coprs, f_builds): + with self.tc as c: + with c.session_transaction() as s: + s['openid'] = self.u2.openid_name + + self.db.session.add_all([self.u2, self.c2]) + r = c.get('/coprs/detail/{0}/{1}/'.format(self.u2.name, self.c2.name)) + assert '/cancel_build/' in r.data + + class TestCoprEdit(CoprsTestCase): def test_edit_prefills_id(self, f_users, f_coprs): with self.tc as c: @@ -161,7 +184,6 @@ class TestCoprEdit(CoprsTestCase): assert '<input id="copr_builder_1" name="copr_builder_1" type="checkbox" value="y">' in r.data assert '<input checked id="copr_admin_1" name="copr_admin_1" type="checkbox" value="y">' in r.data
- class TestCoprUpdate(CoprsTestCase): def test_update_no_changes(self, f_users, f_coprs): with self.tc as c:
copr-devel@lists.fedorahosted.org