Allow user to select 'No Access'
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user