New env role logic in filter_env_roles_form_data

This commit is contained in:
graham-dds 2019-09-25 15:54:22 -04:00
parent fb58bc1ba1
commit 4aa0afdb67
2 changed files with 28 additions and 2 deletions

View File

@ -73,8 +73,9 @@ def filter_env_roles_form_data(member, environments):
"environment_name": env.name,
"role": NO_ACCESS,
}
env_role = EnvironmentRoles.get_by_user_and_environment(member.user_id, env.id)
if env_role:
env_roles_set = set(env.roles).intersection(set(member.environment_roles))
if len(env_roles_set) == 1:
(env_role,) = env_roles_set
env_data["role"] = env_role.role
env_roles_form_data.append(env_data)

View File

@ -21,6 +21,7 @@ from atst.models.portfolio_role import Status as PortfolioRoleStatus
from atst.forms.application import EditEnvironmentForm
from atst.forms.application_member import UpdateMemberForm
from atst.forms.data import ENV_ROLE_NO_ACCESS as NO_ACCESS
from atst.routes.applications.settings import filter_env_roles_form_data
from tests.utils import captured_templates
@ -559,3 +560,27 @@ def test_revoke_invite(client, user_session):
assert invite.is_revoked
assert app_role.status == ApplicationRoleStatus.DISABLED
def test_filter_environment_roles():
application_role = ApplicationRoleFactory.create(user=None)
application_role2 = ApplicationRoleFactory.create(
user=None, application=application_role.application
)
application_role3 = ApplicationRoleFactory.create(
user=None, application=application_role.application
)
environment = EnvironmentFactory.create(application=application_role.application)
EnvironmentRoleFactory.create(
environment=environment, application_role=application_role
)
EnvironmentRoleFactory.create(
environment=environment, application_role=application_role2
)
environment_data = filter_env_roles_form_data(application_role, [environment])
assert environment_data[0]["role"] != "No Access"
environment_data = filter_env_roles_form_data(application_role3, [environment])
assert environment_data[0]["role"] == "No Access"