From d324ec57ec0ead3fd06601ba30708e6e2caabe0b Mon Sep 17 00:00:00 2001 From: leigh-mil Date: Thu, 24 Oct 2019 08:31:17 -0400 Subject: [PATCH] Add field for deleted in the app members environment form --- atst/domain/environment_roles.py | 1 + atst/forms/application_member.py | 1 + atst/routes/applications/settings.py | 1 + tests/forms/test_application_member.py | 2 ++ tests/routes/applications/test_settings.py | 6 ++++-- 5 files changed, 9 insertions(+), 2 deletions(-) diff --git a/atst/domain/environment_roles.py b/atst/domain/environment_roles.py index 02f97a41..57fe2e36 100644 --- a/atst/domain/environment_roles.py +++ b/atst/domain/environment_roles.py @@ -29,6 +29,7 @@ class EnvironmentRoles(object): EnvironmentRole.application_role_id == application_role_id, EnvironmentRole.environment_id == environment_id, EnvironmentRole.deleted == False, + EnvironmentRole.status != EnvironmentRole.Status.DISABLED, ) .one_or_none() ) diff --git a/atst/forms/application_member.py b/atst/forms/application_member.py index ce2b6edd..152e0ddb 100644 --- a/atst/forms/application_member.py +++ b/atst/forms/application_member.py @@ -18,6 +18,7 @@ class EnvironmentForm(Form): default=NO_ACCESS, filters=[lambda x: None if x == "None" else x], ) + deleted = BooleanField("Revoke Access", default=False) @property def data(self): diff --git a/atst/routes/applications/settings.py b/atst/routes/applications/settings.py index 05d906ab..c1081a1b 100644 --- a/atst/routes/applications/settings.py +++ b/atst/routes/applications/settings.py @@ -77,6 +77,7 @@ def filter_env_roles_form_data(member, environments): "environment_id": str(env.id), "environment_name": env.name, "role": NO_ACCESS, + "deleted": env.deleted, } env_roles_set = set(env.roles).intersection(set(member.environment_roles)) if len(env_roles_set) == 1: diff --git a/tests/forms/test_application_member.py b/tests/forms/test_application_member.py index 61a9e373..95ed6e91 100644 --- a/tests/forms/test_application_member.py +++ b/tests/forms/test_application_member.py @@ -10,6 +10,7 @@ def test_environment_form(): "environment_id": 123, "environment_name": "testing", "role": ENV_ROLES[0][0], + "deleted": True, } form = EnvironmentForm(data=form_data) assert form.validate() @@ -24,6 +25,7 @@ def test_environment_form_default_no_access(): "environment_id": 123, "environment_name": "testing", "role": None, + "deleted": False, } diff --git a/tests/routes/applications/test_settings.py b/tests/routes/applications/test_settings.py index a9336b72..18a89014 100644 --- a/tests/routes/applications/test_settings.py +++ b/tests/routes/applications/test_settings.py @@ -506,7 +506,7 @@ def test_update_member(client, user_session, session): EnvironmentRoleFactory.create( environment=env, application_role=app_role, role=CSPRole.BASIC_ACCESS.value ) - EnvironmentRoleFactory.create( + suspended_role = EnvironmentRoleFactory.create( environment=env_1, application_role=app_role, role=CSPRole.BASIC_ACCESS.value ) @@ -524,8 +524,8 @@ def test_update_member(client, user_session, session): "environment_roles-0-role": CSPRole.TECHNICAL_READ.value, "environment_roles-0-environment_name": env.name, "environment_roles-1-environment_id": env_1.id, - "environment_roles-1-role": NO_ACCESS, "environment_roles-1-environment_name": env_1.name, + "environment_roles-1-deleted": "True", "environment_roles-2-environment_id": env_2.id, "environment_roles-2-role": CSPRole.NETWORK_ADMIN.value, "environment_roles-2-environment_name": env_2.name, @@ -561,6 +561,8 @@ def test_update_member(client, user_session, session): # check that the user has roles in the correct envs assert environment_roles[0].environment in [env, env_2] assert environment_roles[1].environment in [env, env_2] + assert suspended_role.status == EnvironmentRole.Status.DISABLED + assert suspended_role.deleted def test_revoke_invite(client, user_session):