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)
|
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"])
|
@portfolios_bp.route("/portfolios/<portfolio_id>/admin", methods=["POST"])
|
||||||
@user_can(Permissions.EDIT_PORTFOLIO_USERS, message="view portfolio admin page")
|
@user_can(Permissions.EDIT_PORTFOLIO_USERS, message="view portfolio admin page")
|
||||||
def edit_portfolio_members(portfolio_id):
|
def edit_portfolio_members(portfolio_id):
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
from flask import url_for
|
from flask import url_for
|
||||||
|
|
||||||
from atst.domain.permission_sets import PermissionSets
|
from atst.domain.permission_sets import PermissionSets
|
||||||
|
from atst.routes.portfolios.index import permission_set_has_changed
|
||||||
|
|
||||||
from tests.factories import PortfolioFactory, PortfolioRoleFactory, UserFactory
|
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()
|
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):
|
def test_update_member_permissions(client, user_session):
|
||||||
portfolio = PortfolioFactory.create()
|
portfolio = PortfolioFactory.create()
|
||||||
rando = UserFactory.create()
|
rando = UserFactory.create()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user