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,47 +34,61 @@ def get_environments_obj_for_app(application):
return environments_obj return environments_obj
def filter_perm_sets_data(member):
perm_sets_data = {
"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)
),
}
return perm_sets_data
def filter_env_roles_data(roles):
env_role_data = [
{
"environment_id": str(role.environment.id),
"environment_name": role.environment.name,
"role": role.role,
}
for role in roles
]
return env_role_data
def filter_env_roles_form_data(member, environments):
env_roles_form_data = []
for env in environments:
env_data = {
"environment_id": str(env.id),
"environment_name": env.name,
"role": NO_ACCESS,
}
env_role = EnvironmentRoles.get_by_user_and_environment(member.user_id, env.id)
if env_role:
env_data["role"] = env_role.role
env_roles_form_data.append(env_data)
return env_roles_form_data
def get_members_data(application): def get_members_data(application):
members_data = [] members_data = []
for member in application.members: for member in application.members:
permission_sets = { permission_sets = filter_perm_sets_data(member)
"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) roles = EnvironmentRoles.get_for_application_member(member.id)
environment_roles = [ environment_roles = filter_env_roles_data(roles)
{ env_roles_form_data = filter_env_roles_form_data(
"environment_id": str(role.environment.id), member, application.environments
"environment_name": role.environment.name, )
"role": role.role,
}
for role in roles
]
env_roles_form_data = []
for env in application.environments:
env_data = {
"environment_id": str(env.id),
"environment_name": env.name,
"role": NO_ACCESS,
}
env_role = EnvironmentRoles.get_by_user_and_environment(
member.user_id, env.id
)
if env_role:
env_data["role"] = env_role.role
env_roles_form_data.append(env_data)
form = UpdateMemberForm( form = UpdateMemberForm(
environment_roles=env_roles_form_data, **permission_sets environment_roles=env_roles_form_data, **permission_sets
) )