Refactor get_members_data() into multiple smaller functions

This commit is contained in:
leigh-mil 2019-09-17 13:54:58 -04:00
parent 6de02e874b
commit d019989f6d

View File

@ -34,10 +34,8 @@ def get_environments_obj_for_app(application):
return environments_obj return environments_obj
def get_members_data(application): def filter_perm_sets_data(member):
members_data = [] perm_sets_data = {
for member in application.members:
permission_sets = {
"perms_team_mgmt": bool( "perms_team_mgmt": bool(
member.has_permission_set(PermissionSets.EDIT_APPLICATION_TEAM) member.has_permission_set(PermissionSets.EDIT_APPLICATION_TEAM)
), ),
@ -45,13 +43,15 @@ def get_members_data(application):
member.has_permission_set(PermissionSets.EDIT_APPLICATION_ENVIRONMENTS) member.has_permission_set(PermissionSets.EDIT_APPLICATION_ENVIRONMENTS)
), ),
"perms_del_env": bool( "perms_del_env": bool(
member.has_permission_set( member.has_permission_set(PermissionSets.DELETE_APPLICATION_ENVIRONMENTS)
PermissionSets.DELETE_APPLICATION_ENVIRONMENTS
)
), ),
} }
roles = EnvironmentRoles.get_for_application_member(member.id)
environment_roles = [ return perm_sets_data
def filter_env_roles_data(roles):
env_role_data = [
{ {
"environment_id": str(role.environment.id), "environment_id": str(role.environment.id),
"environment_name": role.environment.name, "environment_name": role.environment.name,
@ -60,21 +60,35 @@ def get_members_data(application):
for role in roles for role in roles
] ]
return env_role_data
def filter_env_roles_form_data(member, environments):
env_roles_form_data = [] env_roles_form_data = []
for env in application.environments: for env in environments:
env_data = { env_data = {
"environment_id": str(env.id), "environment_id": str(env.id),
"environment_name": env.name, "environment_name": env.name,
"role": NO_ACCESS, "role": NO_ACCESS,
} }
env_role = EnvironmentRoles.get_by_user_and_environment( env_role = EnvironmentRoles.get_by_user_and_environment(member.user_id, env.id)
member.user_id, env.id
)
if env_role: if env_role:
env_data["role"] = env_role.role env_data["role"] = env_role.role
env_roles_form_data.append(env_data) env_roles_form_data.append(env_data)
return env_roles_form_data
def get_members_data(application):
members_data = []
for member in application.members:
permission_sets = filter_perm_sets_data(member)
roles = EnvironmentRoles.get_for_application_member(member.id)
environment_roles = filter_env_roles_data(roles)
env_roles_form_data = filter_env_roles_form_data(
member, application.environments
)
form = UpdateMemberForm( form = UpdateMemberForm(
environment_roles=env_roles_form_data, **permission_sets environment_roles=env_roles_form_data, **permission_sets
) )