Add helper function
This commit is contained in:
parent
d70332836b
commit
25563cf06a
@ -90,6 +90,20 @@ 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):
|
||||
|
@ -1,6 +1,7 @@
|
||||
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
|
||||
|
||||
@ -28,6 +29,32 @@ 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()
|
||||
|
Loading…
x
Reference in New Issue
Block a user