From b7b625750f8e1bfd4f82bf41f3694237fb4aa4a6 Mon Sep 17 00:00:00 2001 From: leigh-mil Date: Wed, 18 Sep 2019 11:13:25 -0400 Subject: [PATCH] Use data property of PermissionsForm to return the form data is the correct format --- atst/forms/application_member.py | 14 +++++++++++++- atst/routes/applications/settings.py | 28 ++-------------------------- 2 files changed, 15 insertions(+), 27 deletions(-) diff --git a/atst/forms/application_member.py b/atst/forms/application_member.py index cc5dc2fa..ce2b6edd 100644 --- a/atst/forms/application_member.py +++ b/atst/forms/application_member.py @@ -2,10 +2,10 @@ from flask_wtf import FlaskForm from wtforms.fields import FormField, FieldList, HiddenField, BooleanField from wtforms import Form -from .forms import BaseForm from .member import NewForm as BaseNewMemberForm from .data import ENV_ROLES, ENV_ROLE_NO_ACCESS as NO_ACCESS from atst.forms.fields import SelectField +from atst.domain.permission_sets import PermissionSets from atst.utils.localization import translate @@ -54,6 +54,18 @@ class PermissionsForm(FlaskForm): def data(self): _data = super().data _data.pop("csrf_token", None) + perm_sets = [] + + if _data["perms_env_mgmt"]: + perm_sets.append(PermissionSets.EDIT_APPLICATION_ENVIRONMENTS) + + if _data["perms_team_mgmt"]: + perm_sets.append(PermissionSets.EDIT_APPLICATION_TEAM) + + if _data["perms_del_env"]: + perm_sets.append(PermissionSets.DELETE_APPLICATION_ENVIRONMENTS) + + _data["permission_sets"] = perm_sets return _data diff --git a/atst/routes/applications/settings.py b/atst/routes/applications/settings.py index 8fa056cf..8ea3b612 100644 --- a/atst/routes/applications/settings.py +++ b/atst/routes/applications/settings.py @@ -151,27 +151,6 @@ def send_application_invitation(invitee_email, inviter_name, token): ) -def perm_sets_obj_to_list(perms_obj): - perm_sets = [] - - if perms_obj["perms_env_mgmt"]: - perm_sets.append(PermissionSets.EDIT_APPLICATION_ENVIRONMENTS) - - if perms_obj["perms_team_mgmt"]: - perm_sets.append(PermissionSets.EDIT_APPLICATION_TEAM) - - if perms_obj["perms_del_env"]: - perm_sets.append(PermissionSets.DELETE_APPLICATION_ENVIRONMENTS) - - return perm_sets - - -def get_perms_set_form_data(form_data): - return { - key: value for key, value in form_data.items() if key != "environment_roles" - } - - @applications_bp.route("/applications//settings") @user_can(Permissions.VIEW_APPLICATION, message="view application edit form") def settings(application_id): @@ -307,12 +286,11 @@ def create_member(application_id): if form.validate(): try: - perm_sets = get_perms_set_form_data(form.data) invite = Applications.invite( application=application, inviter=g.current_user, user_data=form.user_data.data, - permission_sets_names=perm_sets_obj_to_list(perm_sets), + permission_sets_names=form.data["permission_sets"], environment_roles_data=form.environment_roles.data, ) @@ -377,9 +355,7 @@ def update_member(application_id, application_role_id): form = UpdateMemberForm(http_request.form) if form.validate(): - perm_sets = get_perms_set_form_data(form.data) - new_perm_sets_names = perm_sets_obj_to_list(perm_sets) - ApplicationRoles.update_permission_sets(app_role, new_perm_sets_names) + 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)