No need to manually check for update or flash

This commit is contained in:
Montana 2019-04-02 09:35:57 -04:00
parent ba2a63bffc
commit c46746d43d
2 changed files with 2 additions and 49 deletions

View File

@ -90,39 +90,19 @@ def portfolio_admin(portfolio_id):
return render_admin_page(portfolio)
def permission_set_has_changed(old_perm_set_names, new_perm_set_names):
has_changed = False
for perm_name in new_perm_set_names:
base = perm_name[4:]
if perm_name.split("_")[0] == "edit":
if perm_name not in old_perm_set_names:
has_changed = True
elif perm_name.split("_")[0] == "view":
edit_version = "edit" + base
if edit_version in old_perm_set_names:
has_changed = True
return has_changed
@portfolios_bp.route("/portfolios/<portfolio_id>/admin", methods=["POST"])
@user_can(Permissions.EDIT_PORTFOLIO_USERS, message="view portfolio admin page")
def edit_portfolio_members(portfolio_id):
portfolio = Portfolios.get_for_update(portfolio_id)
member_perms_form = member_forms.MembersPermissionsForm(http_request.form)
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)
old_perm_set = [perm.name for perm in portfolio_role.permission_sets]
PortfolioRoles.update(portfolio_role, new_perm_set)
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(
url_for(

View File

@ -1,7 +1,6 @@
from flask import url_for
from atst.domain.permission_sets import PermissionSets
from atst.routes.portfolios.index import permission_set_has_changed
from tests.factories import PortfolioFactory, PortfolioRoleFactory, UserFactory
@ -29,32 +28,6 @@ def test_member_table_access(client, user_session):
assert "<select" not in view_resp.data.decode()
def test_permission_set_has_changed_with_changes():
old_set = [
"edit_portfolio_application_management",
"view_portfolio_application_management",
]
new_set = ["view_portfolio_application_management"]
assert permission_set_has_changed(old_set, new_set)
old_set = ["view_funding"]
new_set = ["edit_funding"]
assert permission_set_has_changed(old_set, new_set)
def test_permission_set_has_changed_without_changes():
old_set = [
"edit_portfolio_application_management",
"view_portfolio_application_management",
]
new_set = ["edit_portfolio_application_management"]
assert not permission_set_has_changed(old_set, new_set)
old_set = ["view_funding"]
new_set = ["view_funding"]
assert not permission_set_has_changed(old_set, new_set)
def test_update_member_permissions(client, user_session):
portfolio = PortfolioFactory.create()
rando = UserFactory.create()