Add in users without access to env team info
This commit is contained in:
parent
d67a56b7b2
commit
bdb1cc9ce5
@ -29,19 +29,31 @@ def get_environments_obj_for_app(application):
|
|||||||
return environments_obj
|
return environments_obj
|
||||||
|
|
||||||
|
|
||||||
def serialize_env_member_form_data(application):
|
def serialize_env_member_forms(application):
|
||||||
environments_list = []
|
environments_list = []
|
||||||
|
|
||||||
for env in application.environments:
|
for env in application.environments:
|
||||||
env_info = {"env_id": env.id, "team_roles": []}
|
env_info = {"env_name": env.name, "no_access": []}
|
||||||
for user in env.users:
|
env_team_list = []
|
||||||
env_role = EnvironmentRoles.get(user.id, env.id)
|
|
||||||
env_info["team_roles"].append(
|
for user in application.users:
|
||||||
{
|
if user in env.users:
|
||||||
"name": user.full_name,
|
env_role = EnvironmentRoles.get(user.id, env.id)
|
||||||
"user_id": user.id,
|
env_team_list.append(
|
||||||
"role": env_role.displayname,
|
{
|
||||||
}
|
"name": user.full_name,
|
||||||
)
|
"user_id": user.id,
|
||||||
|
"role": env_role.displayname,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
env_info["no_access"].append(
|
||||||
|
{"name": user.full_name, "user_id": user.id}
|
||||||
|
)
|
||||||
|
|
||||||
|
env_info["form"] = EnvironmentRolesForm(
|
||||||
|
data={"env_id": env.id, "team_roles": env_team_list}
|
||||||
|
)
|
||||||
environments_list.append(env_info)
|
environments_list.append(env_info)
|
||||||
return environments_list
|
return environments_list
|
||||||
|
|
||||||
@ -52,18 +64,13 @@ def settings(application_id):
|
|||||||
# refactor like portfolio admin render function
|
# refactor like portfolio admin render function
|
||||||
application = Applications.get(application_id)
|
application = Applications.get(application_id)
|
||||||
form = ApplicationForm(name=application.name, description=application.description)
|
form = ApplicationForm(name=application.name, description=application.description)
|
||||||
app_envs_data = serialize_env_member_form_data(application)
|
|
||||||
|
|
||||||
env_forms = {}
|
|
||||||
for env_data in app_envs_data:
|
|
||||||
env_forms[env_data["env_id"]] = EnvironmentRolesForm(data=env_data)
|
|
||||||
|
|
||||||
return render_template(
|
return render_template(
|
||||||
"portfolios/applications/settings.html",
|
"portfolios/applications/settings.html",
|
||||||
application=application,
|
application=application,
|
||||||
form=form,
|
form=form,
|
||||||
environments_obj=get_environments_obj_for_app(application=application),
|
environments_obj=get_environments_obj_for_app(application=application),
|
||||||
env_forms=env_forms,
|
env_forms=serialize_env_member_forms(application=application),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -106,17 +113,12 @@ def update(application_id):
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
env_data = serialize_env_member_form_data(application)
|
|
||||||
env_forms = {}
|
|
||||||
for data in env_data:
|
|
||||||
env_forms[data["env_id"]] = EnvironmentRolesForm(data=data)
|
|
||||||
|
|
||||||
return render_template(
|
return render_template(
|
||||||
"portfolios/applications/settings.html",
|
"portfolios/applications/settings.html",
|
||||||
application=application,
|
application=application,
|
||||||
form=form,
|
form=form,
|
||||||
environments_obj=get_environments_obj_for_app(application=application),
|
environments_obj=get_environments_obj_for_app(application=application),
|
||||||
env_forms=env_forms,
|
env_forms=serialize_env_member_forms(application=application),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -98,44 +98,43 @@ def test_edit_application_environments_obj(app, client, user_session):
|
|||||||
|
|
||||||
|
|
||||||
def test_edit_app_serialize_env_member_form_data(app, client, user_session):
|
def test_edit_app_serialize_env_member_form_data(app, client, user_session):
|
||||||
portfolio = PortfolioFactory.create()
|
env = EnvironmentFactory.create()
|
||||||
application = Applications.create(
|
application = env.application
|
||||||
portfolio,
|
|
||||||
"Snazzy Application",
|
|
||||||
"A new application for me and my friends",
|
|
||||||
{"env1", "env2"},
|
|
||||||
)
|
|
||||||
user1 = UserFactory.create()
|
|
||||||
user2 = UserFactory.create()
|
|
||||||
env1 = application.environments[0]
|
|
||||||
env2 = application.environments[1]
|
|
||||||
env_role1 = EnvironmentRoleFactory.create(environment=env1, user=user1)
|
|
||||||
env_role2 = EnvironmentRoleFactory.create(environment=env1, user=user2)
|
|
||||||
env_role3 = EnvironmentRoleFactory.create(environment=env2, user=user1)
|
|
||||||
|
|
||||||
user_session(portfolio.owner)
|
_app_role = ApplicationRoleFactory.create(application=application)
|
||||||
|
env_role = EnvironmentRoleFactory.create(environment=env, user=_app_role.user)
|
||||||
|
|
||||||
|
app_role = ApplicationRoleFactory.create(application=application)
|
||||||
|
|
||||||
|
user_session(application.portfolio.owner)
|
||||||
|
|
||||||
with captured_templates(app) as templates:
|
with captured_templates(app) as templates:
|
||||||
response = app.test_client().get(
|
response = app.test_client().get(
|
||||||
url_for("applications.settings", application_id=application.id)
|
url_for("applications.settings", application_id=application.id)
|
||||||
)
|
)
|
||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
_, context = templates[0]
|
_, context = templates[0]
|
||||||
for env_id in context["env_forms"]:
|
|
||||||
env = Environments.get(environment_id=env_id)
|
serialized_data = {
|
||||||
form_data = {"env_id": env_id, "team_roles": []}
|
"env_name": env.name,
|
||||||
for user in env.users:
|
"no_access": [
|
||||||
env_role = EnvironmentRoles.get(user.id, env.id)
|
{"name": app_role.user.full_name, "user_id": app_role.user_id}
|
||||||
form_data["team_roles"].append(
|
],
|
||||||
|
"form": {
|
||||||
|
"env_id": env.id,
|
||||||
|
"team_roles": [
|
||||||
{
|
{
|
||||||
"name": user.full_name,
|
"name": env_role.user.full_name,
|
||||||
"user_id": user.id,
|
"user_id": env_role.user_id,
|
||||||
"role": env_role.displayname,
|
"role": env_role.displayname,
|
||||||
}
|
}
|
||||||
)
|
],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
assert context["env_forms"][env_id].data == form_data
|
assert context["env_forms"][0]["env_name"] == serialized_data["env_name"]
|
||||||
|
assert context["env_forms"][0]["form"].data == serialized_data["form"]
|
||||||
|
assert context["env_forms"][0]["no_access"] == serialized_data["no_access"]
|
||||||
|
|
||||||
|
|
||||||
def test_user_with_permission_can_update_application(client, user_session):
|
def test_user_with_permission_can_update_application(client, user_session):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user