diff --git a/atst/forms/application_member.py b/atst/forms/application_member.py index 05110dcb..6a6b3c4d 100644 --- a/atst/forms/application_member.py +++ b/atst/forms/application_member.py @@ -34,6 +34,7 @@ class PermissionsForm(FlaskForm): description=translate( "portfolios.applications.members.form.env_mgmt.description" ), + false_values=(False, "False", 'false', ''), ) perms_team_mgmt = BooleanField( translate("portfolios.applications.members.form.team_mgmt.label"), @@ -41,6 +42,7 @@ class PermissionsForm(FlaskForm): description=translate( "portfolios.applications.members.form.team_mgmt.description" ), + false_values=(False, "False", 'false', ''), ) perms_del_env = BooleanField( translate("portfolios.applications.members.form.del_env.label"), @@ -73,40 +75,6 @@ class NewForm(BaseForm): 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): permission_sets = FormField(PermissionsForm) environment_roles = FieldList(FormField(EnvironmentForm)) diff --git a/atst/routes/applications/settings.py b/atst/routes/applications/settings.py index d44661ee..060ed962 100644 --- a/atst/routes/applications/settings.py +++ b/atst/routes/applications/settings.py @@ -9,7 +9,7 @@ from atst.domain.audit_log import AuditLog from atst.domain.common import Paginator from atst.domain.environment_roles import EnvironmentRoles from atst.forms.application import ApplicationForm, EditEnvironmentForm -from atst.forms.application_member import NewForm as MemberForm, UpdateMemberForm +from atst.forms.application_member import NewForm as MemberForm, UpdateMemberForm, PermissionsForm from atst.forms.data import ENV_ROLE_NO_ACCESS as NO_ACCESS from atst.domain.authz.decorator import user_can_access_decorator as user_can from atst.models.environment_role import CSPRole @@ -86,29 +86,14 @@ def data_for_app_env_roles_form(application): return {"envs": nested_data} -def get_form_permission_value(member, edit_perm_set): - if member.has_permission_set(edit_perm_set): - return edit_perm_set - else: - return PermissionSets.VIEW_APPLICATION - - def get_members_data(application): members_data = [] for member in application.members: - perms_team_mgmt = get_form_permission_value( - member, PermissionSets.EDIT_APPLICATION_TEAM - ) - perms_env_mgmt = get_form_permission_value( - member, PermissionSets.EDIT_APPLICATION_ENVIRONMENTS - ) - perms_del_env = get_form_permission_value( - member, PermissionSets.DELETE_APPLICATION_ENVIRONMENTS - ) permission_sets = { - "perms_team_mgmt": perms_team_mgmt, - "perms_env_mgmt": perms_env_mgmt, - "perms_del_env": perms_del_env, + "perms_team_mgmt": "True", + # "perms_team_mgmt": bool(member.has_permission_set(PermissionSets.EDIT_APPLICATION_TEAM)), + "perms_env_mgmt": bool(member.has_permission_set(PermissionSets.EDIT_APPLICATION_ENVIRONMENTS)), + "perms_del_env": bool(member.has_permission_set(PermissionSets.DELETE_APPLICATION_ENVIRONMENTS)), } roles = EnvironmentRoles.get_for_application_member(member.id) environment_roles = [ @@ -121,17 +106,16 @@ def get_members_data(application): ] form_data = { "environment_roles": environment_roles, - "permission_sets": { "perms_env_mgmt": 'selected' }, + "permission_sets": permission_sets, } - # ['edit_application_environments', 'edit_application_team', 'delete_application_environments'] - # ['edit_application_team'] - - # {'perms_team_mgmt': 'edit_application_team', 'perms_env_mgmt': 'view_application', 'perms_del_env': 'view_application'} - form = UpdateMemberForm(data=form_data) + perms_form = PermissionsForm(data=permission_sets) + form = UpdateMemberForm(environment_roles=environment_roles) + form.permission_sets = perms_form members_data.append( { "role_id": member.id, "user_name": member.user_name, + # remove these keys and use form "permission_sets": permission_sets, "environment_roles": environment_roles, "role_status": member.status.value, diff --git a/translations.yaml b/translations.yaml index ea304406..45696d1c 100644 --- a/translations.yaml +++ b/translations.yaml @@ -366,14 +366,14 @@ portfolios: delete_envs: 'Allow member to delete environments within the application.' manage_team: 'Allow member to add, update, and remove members from the application team.' perms_team_mgmt: - view_application: View Team - edit_application_team: Edit Team + 'False': View Team + 'True': Edit Team perms_env_mgmt: - view_application: View Environments - edit_application_environments: Edit Environments + 'False': View Environments + 'True': Edit Environments perms_del_env: - view_application: "" - delete_application_environments: Delete Application + 'False': "" + 'True': Delete Application index: empty: start_button: Start a new JEDI portfolio