diff --git a/atst/domain/environments.py b/atst/domain/environments.py index 184eea42..b60cc454 100644 --- a/atst/domain/environments.py +++ b/atst/domain/environments.py @@ -56,14 +56,17 @@ class Environments(object): @classmethod def update_environment_role(cls, environment_data, workspace_user): # TODO need to check permissions? - new_role = environment_data["user_role_name"] - environment = Environments.get(environment_data["id"]) - env_role = EnvironmentRole.get(member.user_id, environment_data["id"]) - if env_role: - env_role.role = new_role - else: - env_role = EnvironmentRole( - user=workspace_user.user, environment=environment, role=new_role + for i in range(len(environment_data)): + new_role = environment_data[i]["role"] + environment = Environments.get(environment_data[i]["id"]) + env_role = EnvironmentRole.get( + workspace_user.user_id, environment_data[i]["id"] ) - db.session.add(env_role) - db.session.commit() + 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() diff --git a/atst/routes/workspaces.py b/atst/routes/workspaces.py index 0c42c15e..f27189e8 100644 --- a/atst/routes/workspaces.py +++ b/atst/routes/workspaces.py @@ -1,3 +1,4 @@ +import re, ast from datetime import date, timedelta from flask import ( @@ -239,6 +240,13 @@ def update_member(workspace_id, member_id): "edit this workspace user", ) member = WorkspaceUsers.get(workspace_id, member_id) + + environment_data = [] + form_dict = http_request.form.to_dict() + for entry in form_dict: + if re.match("env_", entry): + environment_data.append(ast.literal_eval(form_dict[entry])) + form = EditMemberForm(http_request.form) if form.validate(): @@ -248,14 +256,8 @@ def update_member(workspace_id, member_id): g.current_user, workspace, member, form.data["workspace_role"] ) new_role_name = member.role_displayname - if form.data["environment_role"]: - new_env_role = form.data["environment_role"] - environment_data = { - "id": "9432c6a5-2f9d-4c9c-b553-4c175852fb65", - "name": "this environment", - "user_role_name": new_env_role, - } - Environments.update_environment_role(environment_data, member) + + Environments.update_environment_role(environment_data, member) return redirect( url_for(