Update NewMemberForm so that it has the same data structure as the UpdateMemberForm
This commit is contained in:
parent
a7f9be5d48
commit
b35e8cfe8e
@ -50,18 +50,17 @@ class PermissionsForm(FlaskForm):
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class NewForm(BaseForm):
|
|
||||||
user_data = FormField(BaseNewMemberForm)
|
|
||||||
permission_sets = FormField(PermissionsForm)
|
|
||||||
environment_roles = FieldList(FormField(EnvironmentForm))
|
|
||||||
|
|
||||||
|
|
||||||
class UpdateMemberForm(PermissionsForm):
|
|
||||||
environment_roles = FieldList(FormField(EnvironmentForm))
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def data(self):
|
def data(self):
|
||||||
_data = super().data
|
_data = super().data
|
||||||
_data.pop("csrf_token", None)
|
_data.pop("csrf_token", None)
|
||||||
return _data
|
return _data
|
||||||
|
|
||||||
|
|
||||||
|
class NewForm(PermissionsForm):
|
||||||
|
user_data = FormField(BaseNewMemberForm)
|
||||||
|
environment_roles = FieldList(FormField(EnvironmentForm))
|
||||||
|
|
||||||
|
|
||||||
|
class UpdateMemberForm(PermissionsForm):
|
||||||
|
environment_roles = FieldList(FormField(EnvironmentForm))
|
||||||
|
@ -166,6 +166,12 @@ def perm_sets_obj_to_list(perms_obj):
|
|||||||
return perm_sets
|
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):
|
||||||
@ -301,11 +307,12 @@ 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(form.permission_sets.data),
|
permission_sets_names=perm_sets_obj_to_list(perm_sets),
|
||||||
environment_roles_data=form.environment_roles.data,
|
environment_roles_data=form.environment_roles.data,
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -370,9 +377,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 = {
|
perm_sets = get_perms_set_form_data(form.data)
|
||||||
key: value for key, value in form.data.items() if key != "environment_roles"
|
|
||||||
}
|
|
||||||
new_perm_sets_names = perm_sets_obj_to_list(perm_sets)
|
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, new_perm_sets_names)
|
||||||
|
|
||||||
|
@ -1,27 +1,27 @@
|
|||||||
{% from "components/checkbox_input.html" import CheckboxInput %}
|
{% from "components/checkbox_input.html" import CheckboxInput %}
|
||||||
|
|
||||||
{% macro MemberPermsFields(app_perms_form, env_roles_form, new=False, member_role_id=None) %}
|
{% macro MemberPermsFields(form, new=False, member_role_id=None) %}
|
||||||
<div class="form-content--app-mem">
|
<div class="form-content--app-mem">
|
||||||
<h4>{{ "portfolios.applications.members.form.project_perms" | translate }}</h4>
|
<h4>{{ "portfolios.applications.members.form.project_perms" | translate }}</h4>
|
||||||
<div class="application-perms">
|
<div class="application-perms">
|
||||||
{% if new %}
|
{% if new %}
|
||||||
{% set team_mgmt = app_perms_form.perms_team_mgmt.name %}
|
{% set team_mgmt = form.perms_team_mgmt.name %}
|
||||||
{% set env_mgmt = app_perms_form.perms_env_mgmt.name %}
|
{% set env_mgmt = form.perms_env_mgmt.name %}
|
||||||
{% set del_env = app_perms_form.perms_del_env.name %}
|
{% set del_env = form.perms_del_env.name %}
|
||||||
{% else %}
|
{% else %}
|
||||||
{% set team_mgmt = "perms_team_mgmt-{}".format(member_role_id) %}
|
{% set team_mgmt = "perms_team_mgmt-{}".format(member_role_id) %}
|
||||||
{% set env_mgmt = "perms_env_mgmt-{}".format(member_role_id) %}
|
{% set env_mgmt = "perms_env_mgmt-{}".format(member_role_id) %}
|
||||||
{% set del_env = "perms_del_env-{}".format(member_role_id) %}
|
{% set del_env = "perms_del_env-{}".format(member_role_id) %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{{ CheckboxInput(app_perms_form.perms_team_mgmt, classes="input__inline-fields", key=team_mgmt, id=team_mgmt, optional=True) }}
|
{{ CheckboxInput(form.perms_team_mgmt, classes="input__inline-fields", key=team_mgmt, id=team_mgmt, optional=True) }}
|
||||||
{{ CheckboxInput(app_perms_form.perms_env_mgmt, classes="input__inline-fields", key=env_mgmt, id=env_mgmt, optional=True) }}
|
{{ CheckboxInput(form.perms_env_mgmt, classes="input__inline-fields", key=env_mgmt, id=env_mgmt, optional=True) }}
|
||||||
{{ CheckboxInput(app_perms_form.perms_del_env, classes="input__inline-fields", key=del_env, id=del_env, optional=True) }}
|
{{ CheckboxInput(form.perms_del_env, classes="input__inline-fields", key=del_env, id=del_env, optional=True) }}
|
||||||
</div>
|
</div>
|
||||||
<div class="environment_roles environment-roles-new">
|
<div class="environment_roles environment-roles-new">
|
||||||
<h4>{{ "portfolios.applications.members.form.env_access" | translate }}</h4>
|
<h4>{{ "portfolios.applications.members.form.env_access" | translate }}</h4>
|
||||||
<hr>
|
<hr>
|
||||||
{% for environment_data in env_roles_form %}
|
{% for environment_data in form.environment_roles %}
|
||||||
<optionsinput inline-template
|
<optionsinput inline-template
|
||||||
v-bind:initial-value="'{{ environment_data.role.data | string }}'"
|
v-bind:initial-value="'{{ environment_data.role.data | string }}'"
|
||||||
v-bind:name="'{{ environment_data.name | string }}'"
|
v-bind:name="'{{ environment_data.name | string }}'"
|
||||||
|
@ -64,6 +64,6 @@
|
|||||||
{% endset %}
|
{% endset %}
|
||||||
|
|
||||||
{% call MemberFormTemplate(title="portfolios.applications.members.form.step_2_title"|translate, next_button=next_button) %}
|
{% call MemberFormTemplate(title="portfolios.applications.members.form.step_2_title"|translate, next_button=next_button) %}
|
||||||
{{ MemberPermsFields(app_perms_form=member_form.permission_sets, env_roles_form=member_form.environment_roles) }}
|
{{ MemberPermsFields(form=member_form) }}
|
||||||
{% endcall %}
|
{% endcall %}
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
|
@ -130,7 +130,7 @@
|
|||||||
<base-form inline-template>
|
<base-form inline-template>
|
||||||
<form id='{{ modal_name }}' method="POST" action="{{ url_for('applications.update_member', application_id=application.id, application_role_id=member.role_id) }}">
|
<form id='{{ modal_name }}' method="POST" action="{{ url_for('applications.update_member', application_id=application.id, application_role_id=member.role_id) }}">
|
||||||
{{ member.form.csrf_token }}
|
{{ member.form.csrf_token }}
|
||||||
{{ MemberPermsFields(app_perms_form=member.form, env_roles_form=member.form.environment_roles, member_role_id=member.role_id) }}
|
{{ MemberPermsFields(form=member.form, member_role_id=member.role_id) }}
|
||||||
<div class="action-group">
|
<div class="action-group">
|
||||||
{{ SaveButton(text='Update', element='input', additional_classes='action-group__action') }}
|
{{ SaveButton(text='Update', element='input', additional_classes='action-group__action') }}
|
||||||
<a class='action-group__action usa-button usa-button-secondary' v-on:click="closeModal('{{ modal_name }}')">{{ "common.cancel" | translate }}</a>
|
<a class='action-group__action usa-button usa-button-secondary' v-on:click="closeModal('{{ modal_name }}')">{{ "common.cancel" | translate }}</a>
|
||||||
|
@ -379,9 +379,9 @@ def test_create_member(monkeypatch, client, user_session, session):
|
|||||||
"environment_roles-1-environment_id": env_1.id,
|
"environment_roles-1-environment_id": env_1.id,
|
||||||
"environment_roles-1-role": NO_ACCESS,
|
"environment_roles-1-role": NO_ACCESS,
|
||||||
"environment_roles-1-environment_name": env_1.name,
|
"environment_roles-1-environment_name": env_1.name,
|
||||||
"permission_sets-perms_env_mgmt": True,
|
"perms_env_mgmt": True,
|
||||||
"permission_sets-perms_team_mgmt": True,
|
"perms_team_mgmt": True,
|
||||||
"permission_sets-perms_del_env": True,
|
"perms_del_env": True,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user