Only update when permissions are different
This commit is contained in:
		| @@ -109,17 +109,19 @@ def permission_set_has_changed(old_perm_set_names, new_perm_set_names): | ||||
| def edit_portfolio_members(portfolio_id): | ||||
|     portfolio = Portfolios.get_for_update(portfolio_id) | ||||
|     member_perms_form = member_forms.MembersPermissionsForm(http_request.form) | ||||
|     has_changed = False | ||||
|     have_any_perms_changed = False | ||||
|  | ||||
|     for subform in member_perms_form.members_permissions: | ||||
|         new_perm_set = subform.data["permission_sets"] | ||||
|         user_id = subform.user_id.data | ||||
|         portfolio_role = PortfolioRoles.get(portfolio.id, user_id) | ||||
|         if portfolio_role.permission_sets != new_perm_set: | ||||
|             PortfolioRoles.update(portfolio_role, new_perm_set) | ||||
|             has_changed = True | ||||
|         old_perm_set = [perm.name for perm in portfolio_role.permission_sets] | ||||
|  | ||||
|     if has_changed: | ||||
|         if permission_set_has_changed(old_perm_set, new_perm_set): | ||||
|             PortfolioRoles.update(portfolio_role, new_perm_set) | ||||
|             have_any_perms_changed = True | ||||
|  | ||||
|     if have_any_perms_changed: | ||||
|         flash("update_portfolio_members", portfolio=portfolio) | ||||
|  | ||||
|     return redirect( | ||||
| @@ -128,7 +130,6 @@ def edit_portfolio_members(portfolio_id): | ||||
|             portfolio_id=portfolio.id, | ||||
|             fragment="portfolio-members", | ||||
|             _anchor="portfolio-members", | ||||
|             has_changed=has_changed, | ||||
|         ) | ||||
|     ) | ||||
|  | ||||
|   | ||||
| @@ -3,7 +3,7 @@ | ||||
|  | ||||
| <section class="member-list" id="portfolio-members"> | ||||
|   <div class='responsive-table-wrapper panel'> | ||||
|     {% if g.matchesPath("portfolio-members") and has_changed %} | ||||
|     {% if g.matchesPath("portfolio-members") %} | ||||
|       {% include "fragments/flash.html" %} | ||||
|     {% endif %} | ||||
|     <form method='POST' id="member-perms" action='{{ url_for("portfolios.edit_portfolio_members", portfolio_id=portfolio.id) }}' autocomplete="off" enctype="multipart/form-data"> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user