Allow user to select 'No Access'

This commit is contained in:
richard-dds
2018-10-17 14:42:22 -04:00
parent fcd16c1b3c
commit c138df2b0f
6 changed files with 29 additions and 20 deletions

View File

@@ -14,3 +14,10 @@ class EnvironmentRoles(object):
.one_or_none()
)
return existing_env_role
@classmethod
def delete(cls, user_id, environment_id):
existing_env_role = EnvironmentRoles.get(user_id, environment_id)
if existing_env_role:
db.session.delete(existing_env_role)
db.session.commit()

View File

@@ -69,13 +69,17 @@ class Environments(object):
for id_and_role in ids_and_roles:
new_role = id_and_role["role"]
environment = Environments.get(id_and_role["id"])
env_role = EnvironmentRoles.get(workspace_user.user_id, id_and_role["id"])
if env_role:
env_role.role = new_role
if new_role is None:
EnvironmentRoles.delete(workspace_user.user.id, environment.id)
else:
env_role = EnvironmentRole(
user=workspace_user.user, environment=environment, role=new_role
)
db.session.add(env_role)
env_role = EnvironmentRoles.get(workspace_user.user_id, id_and_role["id"])
if env_role:
env_role.role = new_role
else:
env_role = EnvironmentRole(
user=workspace_user.user, environment=environment, role=new_role
)
db.session.add(env_role)
db.session.commit()

View File

@@ -153,6 +153,10 @@ ENVIRONMENT_ROLES = [
"description": "Views cloud resource usage and budget reports.",
},
),
(
"",
{"name": "No Access", "description": "User has no access to this environment."},
),
]
ENV_ROLE_MODAL_DESCRIPTION = {

View File

@@ -285,12 +285,10 @@ def update_member(workspace_id, member_id):
for entry in form_dict:
if re.match("env_", entry):
env_id = entry[4:]
env_role = form_dict[entry]
if env_role:
ids_and_roles.append({"id": env_id, "role": env_role})
env_role = form_dict[entry] or None
ids_and_roles.append({"id": env_id, "role": env_role})
form = EditMemberForm(http_request.form)
if form.validate():
new_role_name = None
if form.data["workspace_role"] != member.role: