#795 [frontend] allow individuals to ask permissions for group projects
Merged 4 years ago by msuchy. Opened 4 years ago by frostyx.
copr/ frostyx/copr individuals-in-group-projects  into  master

@@ -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 %}

@@ -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 %}

-   <form action="{{ url_for('coprs_ns.copr_permissions_applier_change', username=copr.user.name, coprname=copr.name)}}" method=post>

+   <form action="{{ copr_url('coprs_ns.copr_permissions_applier_change', copr)}}" method=post>

        {{ permissions_applier_form.csrf_token }}

      {% endif %}

      {% if permissions_form and g.user %}

-   <form action="{{ url_for('coprs_ns.copr_update_permissions', username=copr.user.name, coprname=copr.name)}}" method=post>

+   <form action="{{ copr_url('coprs_ns.copr_update_permissions', copr)}}" method=post>

        {{ permissions_form.csrf_token }}

      {% endif %}

      <!--permissions-table-->

@@ -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 %}

  

@@ -313,6 +313,7 @@ 

  

  

  @coprs_ns.route("/<username>/<coprname>/permissions/")

+ @coprs_ns.route("/g/<group_name>/<coprname>/permissions/")

  @req_with_copr

  def copr_permissions(copr):

      permissions = coprs_logic.CoprPermissionsLogic.get_for_copr(copr).all()
@@ -490,6 +491,7 @@ 

  

  @coprs_ns.route("/<username>/<coprname>/permissions_applier_change/",

                  methods=["POST"])

+ @coprs_ns.route("/g/<group_name>/<coprname>/permissions_applier_change/", methods=["POST"])

  @login_required

  @req_with_copr

  def copr_permissions_applier_change(copr):
@@ -524,12 +526,11 @@ 

                  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("/<username>/<coprname>/update_permissions/", methods=["POST"])

+ @coprs_ns.route("/g/<group_name>/<coprname>/update_permissions/", methods=["POST"])

  @login_required

  @req_with_copr

  def copr_update_permissions(copr):