Create macro for environment role field and update route so the correct data is passed to Environments.update_env_role to update or delete roles

This commit is contained in:
leigh-mil
2019-10-24 18:12:28 -04:00
parent d324ec57ec
commit 3a1a996469
2 changed files with 76 additions and 25 deletions

View File

@@ -374,14 +374,21 @@ def remove_member(application_id, application_role_id):
@user_can(Permissions.EDIT_APPLICATION_MEMBER, message="update application member")
def update_member(application_id, application_role_id):
app_role = ApplicationRoles.get_by_id(application_role_id)
form = UpdateMemberForm(http_request.form)
application = Applications.get(application_id)
existing_env_roles_data = filter_env_roles_form_data(
app_role, application.environments
)
form = UpdateMemberForm(
formdata=http_request.form, environment_roles=existing_env_roles_data
)
if form.validate():
ApplicationRoles.update_permission_sets(app_role, form.data["permission_sets"])
for env_role in form.environment_roles:
environment = Environments.get(env_role.environment_id.data)
Environments.update_env_role(environment, app_role, env_role.data["role"])
new_role = None if env_role.deleted.data else env_role.data["role"]
Environments.update_env_role(environment, app_role, new_role)
flash("application_member_updated", user_name=app_role.user_name)
else: