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): | def edit_portfolio_members(portfolio_id): | ||||||
|     portfolio = Portfolios.get_for_update(portfolio_id) |     portfolio = Portfolios.get_for_update(portfolio_id) | ||||||
|     member_perms_form = member_forms.MembersPermissionsForm(http_request.form) |     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: |     for subform in member_perms_form.members_permissions: | ||||||
|         new_perm_set = subform.data["permission_sets"] |         new_perm_set = subform.data["permission_sets"] | ||||||
|         user_id = subform.user_id.data |         user_id = subform.user_id.data | ||||||
|         portfolio_role = PortfolioRoles.get(portfolio.id, user_id) |         portfolio_role = PortfolioRoles.get(portfolio.id, user_id) | ||||||
|         if portfolio_role.permission_sets != new_perm_set: |         old_perm_set = [perm.name for perm in portfolio_role.permission_sets] | ||||||
|             PortfolioRoles.update(portfolio_role, new_perm_set) |  | ||||||
|             has_changed = True |  | ||||||
|  |  | ||||||
|     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) |         flash("update_portfolio_members", portfolio=portfolio) | ||||||
|  |  | ||||||
|     return redirect( |     return redirect( | ||||||
| @@ -128,7 +130,6 @@ def edit_portfolio_members(portfolio_id): | |||||||
|             portfolio_id=portfolio.id, |             portfolio_id=portfolio.id, | ||||||
|             fragment="portfolio-members", |             fragment="portfolio-members", | ||||||
|             _anchor="portfolio-members", |             _anchor="portfolio-members", | ||||||
|             has_changed=has_changed, |  | ||||||
|         ) |         ) | ||||||
|     ) |     ) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -3,7 +3,7 @@ | |||||||
|  |  | ||||||
| <section class="member-list" id="portfolio-members"> | <section class="member-list" id="portfolio-members"> | ||||||
|   <div class='responsive-table-wrapper panel'> |   <div class='responsive-table-wrapper panel'> | ||||||
|     {% if g.matchesPath("portfolio-members") and has_changed %} |     {% if g.matchesPath("portfolio-members") %} | ||||||
|       {% include "fragments/flash.html" %} |       {% include "fragments/flash.html" %} | ||||||
|     {% endif %} |     {% endif %} | ||||||
|     <form method='POST' id="member-perms" action='{{ url_for("portfolios.edit_portfolio_members", portfolio_id=portfolio.id) }}' autocomplete="off" enctype="multipart/form-data"> |     <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