From 4e5dfcc96aab338abd9a4a620ded3080f9b3da46 Mon Sep 17 00:00:00 2001 From: Jakub Kadlcik Date: Jun 11 2019 12:41:12 +0000 Subject: [frontend] allow individuals to ask permissions for group projects See #778 --- diff --git a/frontend/coprs_frontend/coprs/templates/coprs/detail.html b/frontend/coprs_frontend/coprs/templates/coprs/detail.html index cc96233..1bd8454 100644 --- a/frontend/coprs_frontend/coprs/templates/coprs/detail.html +++ b/frontend/coprs_frontend/coprs/templates/coprs/detail.html @@ -57,7 +57,7 @@ {{ nav_element("modules", "Modules", "fa fa-rocket", copr_url('coprs_ns.copr_modules', copr)) }} {{ nav_element("monitor", "Monitor", "fa fa-desktop", copr_url('coprs_ns.copr_build_monitor', copr)) }} - {% if g.user and (not copr.group or g.user.can_build_in(copr) or g.user.permissions_for_copr(copr)) %} + {% if g.user %} {% set settings_view = 'coprs_ns.copr_edit' if g.user and g.user.can_edit(copr) else 'coprs_ns.copr_permissions' %} {{ nav_element("settings", "Settings", "pficon pficon-settings", copr_url(settings_view, copr)) }} {% endif %} diff --git a/frontend/coprs_frontend/coprs/templates/coprs/detail/_permissions_table.html b/frontend/coprs_frontend/coprs/templates/coprs/detail/_permissions_table.html index aaa337e..91b5834 100644 --- a/frontend/coprs_frontend/coprs/templates/coprs/detail/_permissions_table.html +++ b/frontend/coprs_frontend/coprs/templates/coprs/detail/_permissions_table.html @@ -1,11 +1,14 @@ +{% from "_helpers.html" import copr_url %} + + {% macro permissions_table(permissions, current_user_permissions, copr, permissions_applier_form, permissions_form) %} {% if permissions or g.user != copr.user %} {# display the whole table if there are permissions or user can ask for them #} {% if permissions_applier_form and g.user %} -
+ {{ permissions_applier_form.csrf_token }} {% endif %} {% if permissions_form and g.user %} - + {{ permissions_form.csrf_token }} {% endif %} diff --git a/frontend/coprs_frontend/coprs/templates/coprs/detail/settings.html b/frontend/coprs_frontend/coprs/templates/coprs/detail/settings.html index f9fe205..7744164 100644 --- a/frontend/coprs_frontend/coprs/templates/coprs/detail/settings.html +++ b/frontend/coprs_frontend/coprs/templates/coprs/detail/settings.html @@ -38,7 +38,7 @@ {{ tab("edit", "Project Details", copr_url('coprs_ns.copr_edit', copr)) }} {% endif %} - {% if not copr.is_a_group_project %} + {% if g.user.can_edit(copr) %} {{ tab("permissions", "Permissions", copr_url('coprs_ns.copr_permissions', copr)) }} {% endif %} diff --git a/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_general.py b/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_general.py index ac20db2..57da1f9 100644 --- a/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_general.py +++ b/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_general.py @@ -313,6 +313,7 @@ def render_copr_detail(copr): @coprs_ns.route("///permissions/") +@coprs_ns.route("/g///permissions/") @req_with_copr def copr_permissions(copr): permissions = coprs_logic.CoprPermissionsLogic.get_for_copr(copr).all() @@ -490,6 +491,7 @@ def copr_update(copr): @coprs_ns.route("///permissions_applier_change/", methods=["POST"]) +@coprs_ns.route("/g///permissions_applier_change/", methods=["POST"]) @login_required @req_with_copr def copr_permissions_applier_change(copr): @@ -524,12 +526,11 @@ def copr_permissions_applier_change(copr): msg = PermissionRequestMessage(copr, flask.g.user, permission_dict) send_mail(mail, msg, ) - return flask.redirect(flask.url_for("coprs_ns.copr_detail", - username=copr.user.name, - coprname=copr.name)) + return flask.redirect(helpers.copr_url("coprs_ns.copr_detail", copr)) @coprs_ns.route("///update_permissions/", methods=["POST"]) +@coprs_ns.route("/g///update_permissions/", methods=["POST"]) @login_required @req_with_copr def copr_update_permissions(copr):