Merge pull request #488 from dod-ccpo/workspace-role-change-bug-#162345640
Workspace role change bug #162345640
This commit is contained in:
@@ -21,3 +21,6 @@ class EnvironmentRoles(object):
|
||||
if existing_env_role:
|
||||
db.session.delete(existing_env_role)
|
||||
db.session.commit()
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
@@ -65,26 +65,37 @@ class Environments(object):
|
||||
Permissions.ADD_AND_ASSIGN_CSP_ROLES,
|
||||
"assign environment roles",
|
||||
)
|
||||
updated = False
|
||||
|
||||
for id_and_role in ids_and_roles:
|
||||
new_role = id_and_role["role"]
|
||||
environment = Environments.get(id_and_role["id"])
|
||||
|
||||
if new_role is None:
|
||||
EnvironmentRoles.delete(workspace_role.user.id, environment.id)
|
||||
role_deleted = EnvironmentRoles.delete(
|
||||
workspace_role.user.id, environment.id
|
||||
)
|
||||
if role_deleted:
|
||||
updated = True
|
||||
else:
|
||||
env_role = EnvironmentRoles.get(
|
||||
workspace_role.user.id, id_and_role["id"]
|
||||
)
|
||||
if env_role:
|
||||
if env_role and env_role.role != new_role:
|
||||
env_role.role = new_role
|
||||
else:
|
||||
updated = True
|
||||
db.session.add(env_role)
|
||||
elif not env_role:
|
||||
env_role = EnvironmentRole(
|
||||
user=workspace_role.user, environment=environment, role=new_role
|
||||
)
|
||||
db.session.add(env_role)
|
||||
updated = True
|
||||
db.session.add(env_role)
|
||||
|
||||
db.session.commit()
|
||||
if updated:
|
||||
db.session.commit()
|
||||
|
||||
return updated
|
||||
|
||||
@classmethod
|
||||
def revoke_access(cls, user, environment, target_user):
|
||||
|
@@ -147,21 +147,22 @@ def update_member(workspace_id, member_id):
|
||||
form = EditMemberForm(http_request.form)
|
||||
if form.validate():
|
||||
new_role_name = None
|
||||
if form.data["workspace_role"] != member.role:
|
||||
if form.data["workspace_role"] != member.role.name:
|
||||
member = Workspaces.update_member(
|
||||
g.current_user, workspace, member, form.data["workspace_role"]
|
||||
)
|
||||
new_role_name = member.role_displayname
|
||||
flash(
|
||||
"workspace_role_updated",
|
||||
member_name=member.user_name,
|
||||
updated_role=new_role_name,
|
||||
)
|
||||
|
||||
Environments.update_environment_roles(
|
||||
updated_roles = Environments.update_environment_roles(
|
||||
g.current_user, workspace, member, ids_and_roles
|
||||
)
|
||||
|
||||
flash(
|
||||
"workspace_role_updated",
|
||||
member_name=member.user_name,
|
||||
updated_role=new_role_name,
|
||||
)
|
||||
if updated_roles:
|
||||
flash("environment_access_changed")
|
||||
|
||||
return redirect(
|
||||
url_for("workspaces.workspace_members", workspace_id=workspace.id)
|
||||
|
@@ -96,6 +96,11 @@ MESSAGES = {
|
||||
""",
|
||||
"category": "warning",
|
||||
},
|
||||
"environment_access_changed": {
|
||||
"title_template": "User access successfully changed.",
|
||||
"message_template": "",
|
||||
"category": "success",
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user