Update form to handle No access

This commit is contained in:
leigh-mil 2019-04-23 15:39:31 -04:00
parent 9b426bbde4
commit 5e415edaef
5 changed files with 14 additions and 11 deletions

View File

@ -66,7 +66,7 @@ class Environments(object):
def update_env_role(cls, environment, user, new_role): def update_env_role(cls, environment, user, new_role):
updated = False updated = False
if new_role is None or new_role == "No access": if new_role is None:
role_deleted = EnvironmentRoles.delete(user.id, environment.id) role_deleted = EnvironmentRoles.delete(user.id, environment.id)
if role_deleted: if role_deleted:
updated = True updated = True

View File

@ -9,6 +9,13 @@ class EnvMemberRoleForm(BaseForm):
user_id = HiddenField() user_id = HiddenField()
role = RadioField(choices=ENV_ROLES) role = RadioField(choices=ENV_ROLES)
@property
def data(self):
_data = super().data
if _data["role"] == "":
_data["role"] = None
return _data
class EnvironmentRolesForm(BaseForm): class EnvironmentRolesForm(BaseForm):
team_roles = FieldList(FormField(EnvMemberRoleForm)) team_roles = FieldList(FormField(EnvMemberRoleForm))

View File

@ -217,6 +217,4 @@ REQUIRED_DISTRIBUTIONS = [
("other", "Other as necessary"), ("other", "Other as necessary"),
] ]
ENV_ROLES = [(role.value, role.value) for role in CSPRole] + [ ENV_ROLES = [(role.value, role.value) for role in CSPRole] + [("", "No access")]
("No access", "No access")
]

View File

@ -34,9 +34,7 @@ def test_update_env_role():
def test_update_env_role_no_access(): def test_update_env_role_no_access():
env_role = EnvironmentRoleFactory.create(role=CSPRole.BASIC_ACCESS.value) env_role = EnvironmentRoleFactory.create(role=CSPRole.BASIC_ACCESS.value)
assert Environments.update_env_role( assert Environments.update_env_role(env_role.environment, env_role.user, None)
env_role.environment, env_role.user, "No access"
)
assert not EnvironmentRoles.get(env_role.user.id, env_role.environment.id) assert not EnvironmentRoles.get(env_role.user.id, env_role.environment.id)
@ -84,7 +82,7 @@ def test_update_env_roles_by_environment():
{ {
"user_id": env_role_3.user.id, "user_id": env_role_3.user.id,
"name": env_role_3.user.full_name, "name": env_role_3.user.full_name,
"role": "No access", "role": None,
}, },
] ]
@ -119,7 +117,7 @@ def test_update_env_roles_by_member():
{"id": dev.id, "role": CSPRole.NETWORK_ADMIN.value}, {"id": dev.id, "role": CSPRole.NETWORK_ADMIN.value},
{"id": staging.id, "role": CSPRole.BUSINESS_READ.value}, {"id": staging.id, "role": CSPRole.BUSINESS_READ.value},
{"id": prod.id, "role": CSPRole.TECHNICAL_READ.value}, {"id": prod.id, "role": CSPRole.TECHNICAL_READ.value},
{"id": testing.id, "role": "No access"}, {"id": testing.id, "role": None},
] ]
Environments.update_env_roles_by_member(user, env_roles) Environments.update_env_roles_by_member(user, env_roles)

View File

@ -189,7 +189,7 @@ def test_user_with_permission_can_update_team_env_roles(client, user_session):
"team_roles-1-role": CSPRole.BASIC_ACCESS.value, "team_roles-1-role": CSPRole.BASIC_ACCESS.value,
"team_roles-2-user_id": env_role_3.user.id, "team_roles-2-user_id": env_role_3.user.id,
"team_roles-2-name": env_role_3.user.full_name, "team_roles-2-name": env_role_3.user.full_name,
"team_roles-2-role": "No access", "team_roles-2-role": "",
"team_roles-3-user_id": app_role.user.id, "team_roles-3-user_id": app_role.user.id,
"team_roles-3-name": app_role.user.full_name, "team_roles-3-name": app_role.user.full_name,
"team_roles-3-role": CSPRole.TECHNICAL_READ.value, "team_roles-3-role": CSPRole.TECHNICAL_READ.value,
@ -227,7 +227,7 @@ def test_user_without_permission_cannot_update_team_env_roles(client, user_sessi
"team_roles-0-role": CSPRole.NETWORK_ADMIN.value, "team_roles-0-role": CSPRole.NETWORK_ADMIN.value,
"team_roles-1-user_id": env_role_2.user.id, "team_roles-1-user_id": env_role_2.user.id,
"team_roles-1-name": env_role_2.user.full_name, "team_roles-1-name": env_role_2.user.full_name,
"team_roles-1-role": "No access", "team_roles-1-role": "",
"team_roles-2-user_id": app_role.user.id, "team_roles-2-user_id": app_role.user.id,
"team_roles-2-name": app_role.user.full_name, "team_roles-2-name": app_role.user.full_name,
"team_roles-2-role": CSPRole.TECHNICAL_READ.value, "team_roles-2-role": CSPRole.TECHNICAL_READ.value,