New env role logic in filter_env_roles_form_data
This commit is contained in:
parent
fb58bc1ba1
commit
4aa0afdb67
@ -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)
|
||||
|
@ -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"
|
||||
|
Loading…
x
Reference in New Issue
Block a user