Make form class for updating application member

This commit is contained in:
leigh-mil 2019-09-11 13:36:44 -04:00
parent 4cafa513a2
commit 1fd2d9f496
2 changed files with 59 additions and 0 deletions

View File

@ -71,3 +71,43 @@ class NewForm(BaseForm):
user_data = FormField(BaseNewMemberForm) user_data = FormField(BaseNewMemberForm)
permission_sets = FormField(PermissionsForm) permission_sets = FormField(PermissionsForm)
environment_roles = FieldList(FormField(EnvironmentForm)) environment_roles = FieldList(FormField(EnvironmentForm))
class UpdatePermissionsForm(FlaskForm):
perms_team_mgmt = SelectField(
translate("portfolios.applications.members.new.manage_team"),
choices=[
(PermissionSets.VIEW_APPLICATION, "View"),
(PermissionSets.EDIT_APPLICATION_TEAM, "Edit"),
],
)
perms_env_mgmt = SelectField(
translate("portfolios.applications.members.new.manage_envs"),
choices=[
(PermissionSets.VIEW_APPLICATION, "View"),
(PermissionSets.EDIT_APPLICATION_ENVIRONMENTS, "Edit"),
],
)
perms_del_env = SelectField(
choices=[
(PermissionSets.VIEW_APPLICATION, "No"),
(PermissionSets.DELETE_APPLICATION_ENVIRONMENTS, "Yes"),
]
)
@property
def data(self):
_data = super().data
_data.pop("csrf_token", None)
permission_sets = []
for field in _data:
if _data[field] is not None:
permission_sets.append(_data[field])
return permission_sets
class UpdateMemberForm(BaseForm):
member_role_id = HiddenField()
permission_sets = FormField(UpdatePermissionsForm)
environment_roles = FieldList(FormField(EnvironmentForm))

View File

@ -1,5 +1,6 @@
from wtforms.validators import ValidationError from wtforms.validators import ValidationError
from atst.domain.permission_sets import PermissionSets
from atst.forms.data import ENV_ROLES, ENV_ROLE_NO_ACCESS as NO_ACCESS from atst.forms.data import ENV_ROLES, ENV_ROLE_NO_ACCESS as NO_ACCESS
from atst.forms.application_member import * from atst.forms.application_member import *
@ -34,3 +35,21 @@ def test_environment_form_invalid():
} }
form = EnvironmentForm(data=form_data) form = EnvironmentForm(data=form_data)
assert not form.validate() assert not form.validate()
def test_update_member_form():
form_data = {
"member_role_id": 123,
"permission_sets": {
"perms_team_mgmt": PermissionSets.EDIT_APPLICATION_TEAM,
"perms_env_mgmt": PermissionSets.VIEW_APPLICATION,
"perms_del_env": PermissionSets.VIEW_APPLICATION,
},
"environment_roles": {
"environment_id": 123,
"environment_name": "testing",
"role": ENV_ROLES[0][0],
},
}
form = UpdateMemberForm(data=form_data)
assert form.validate()