Use data property of PermissionsForm to return the form data is the correct format

This commit is contained in:
leigh-mil
2019-09-18 11:13:25 -04:00
parent b35e8cfe8e
commit b7b625750f
2 changed files with 15 additions and 27 deletions

View File

@@ -2,10 +2,10 @@ from flask_wtf import FlaskForm
from wtforms.fields import FormField, FieldList, HiddenField, BooleanField from wtforms.fields import FormField, FieldList, HiddenField, BooleanField
from wtforms import Form from wtforms import Form
from .forms import BaseForm
from .member import NewForm as BaseNewMemberForm from .member import NewForm as BaseNewMemberForm
from .data import ENV_ROLES, ENV_ROLE_NO_ACCESS as NO_ACCESS from .data import ENV_ROLES, ENV_ROLE_NO_ACCESS as NO_ACCESS
from atst.forms.fields import SelectField from atst.forms.fields import SelectField
from atst.domain.permission_sets import PermissionSets
from atst.utils.localization import translate from atst.utils.localization import translate
@@ -54,6 +54,18 @@ class PermissionsForm(FlaskForm):
def data(self): def data(self):
_data = super().data _data = super().data
_data.pop("csrf_token", None) _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 return _data

View File

@@ -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/<application_id>/settings") @applications_bp.route("/applications/<application_id>/settings")
@user_can(Permissions.VIEW_APPLICATION, message="view application edit form") @user_can(Permissions.VIEW_APPLICATION, message="view application edit form")
def settings(application_id): def settings(application_id):
@@ -307,12 +286,11 @@ def create_member(application_id):
if form.validate(): if form.validate():
try: try:
perm_sets = get_perms_set_form_data(form.data)
invite = Applications.invite( invite = Applications.invite(
application=application, application=application,
inviter=g.current_user, inviter=g.current_user,
user_data=form.user_data.data, 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, environment_roles_data=form.environment_roles.data,
) )
@@ -377,9 +355,7 @@ def update_member(application_id, application_role_id):
form = UpdateMemberForm(http_request.form) form = UpdateMemberForm(http_request.form)
if form.validate(): if form.validate():
perm_sets = get_perms_set_form_data(form.data) ApplicationRoles.update_permission_sets(app_role, form.data["permission_sets"])
new_perm_sets_names = perm_sets_obj_to_list(perm_sets)
ApplicationRoles.update_permission_sets(app_role, new_perm_sets_names)
for env_role in form.environment_roles: for env_role in form.environment_roles:
environment = Environments.get(env_role.environment_id.data) environment = Environments.get(env_role.environment_id.data)