From 88b971c989a9c060004853c5da47aa859d02b52c Mon Sep 17 00:00:00 2001 From: jdonis Date: Fri, 9 Aug 2024 17:18:12 -0400 Subject: [PATCH 1/5] phases start & end --- assets/client/src/helpers/phaseHelpers.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/assets/client/src/helpers/phaseHelpers.js b/assets/client/src/helpers/phaseHelpers.js index dca324970..29ae7ab00 100644 --- a/assets/client/src/helpers/phaseHelpers.js +++ b/assets/client/src/helpers/phaseHelpers.js @@ -1,20 +1,20 @@ export const phaseInPast = (phase) => { let now = new Date(); - let end = new Date(endDate); + let end = new Date(phase.end_date); return now > end; } export const phaseIsCurrent = (phase) => { let now = new Date(); - let start = new Date(startDate); - let end = new Date(endDate); + let start = new Date(phase.start_date); + let end = new Date(phase.end_date); return now >= start && now <= end; } export const phaseInFuture = (phase) => { let now = new Date(); - let targetDate = new Date(date); + let targetDate = new Date(phase.start_date); return now < targetDate; } From 1b0007fb96e96bc3c135ce62965dd29a12681da6 Mon Sep 17 00:00:00 2001 From: jdonis Date: Mon, 12 Aug 2024 23:45:19 -0400 Subject: [PATCH 2/5] Non gov-mil users --- lib/challenge_gov/challenges.ex | 15 +++++++++++++++ lib/web/controllers/phase_controller.ex | 1 + .../challenge/show/_other_actions.html.eex | 2 ++ .../templates/challenge/table/_content.html.eex | 2 ++ 4 files changed, 20 insertions(+) diff --git a/lib/challenge_gov/challenges.ex b/lib/challenge_gov/challenges.ex index 8aed024f7..193f41284 100755 --- a/lib/challenge_gov/challenges.ex +++ b/lib/challenge_gov/challenges.ex @@ -755,6 +755,21 @@ defmodule ChallengeGov.Challenges do end end + defp validate_gov_mil(email) do + String.ends_with?(email, [".gov", ".mil"]) + end + + def allowed_to_view_submission(user = %{role: "challenge_manager"}, challenge) do + if validate_gov_mil(user.email) do + {:ok, challenge} + else + {:error, :not_permitted} + end + end + + def allowed_to_view_submission?(user = %{role: "challenge_manager"}), + do: validate_gov_mil(user.email) + def allowed_to_submit?(%{role: "super_admin"}), do: true def allowed_to_submit?(%{role: "admin"}), do: true diff --git a/lib/web/controllers/phase_controller.ex b/lib/web/controllers/phase_controller.ex index abe402596..7508507fd 100644 --- a/lib/web/controllers/phase_controller.ex +++ b/lib/web/controllers/phase_controller.ex @@ -54,6 +54,7 @@ defmodule Web.PhaseController do with {:ok, challenge} <- Challenges.get(challenge_id), {:ok, challenge} <- Challenges.allowed_to_edit(user, challenge), + {:ok, challenge} <- Challenges.allowed_to_view_submission(user, challenge), {:ok, phase} <- Phases.get(id) do submissions_filter = Map.merge(filter, %{ diff --git a/lib/web/templates/challenge/show/_other_actions.html.eex b/lib/web/templates/challenge/show/_other_actions.html.eex index c60780fc7..02ff4ead4 100644 --- a/lib/web/templates/challenge/show/_other_actions.html.eex +++ b/lib/web/templates/challenge/show/_other_actions.html.eex @@ -2,9 +2,11 @@

Other actions

    + <%= if Challenges.allowed_to_view_submission?(@user) do %>
  • <%= challenge_submissions_link(@conn, @challenge, @user, label: "View submissions", class: "usa-button") %>
  • + <% end %> <%= if Accounts.has_admin_access?(@user) or !(Challenges.is_archived?(@challenge) or Challenges.is_archived_new?(@challenge)) do %>
  • <%= link "Preview", to: Routes.public_preview_path(@conn, :index, challenge: @challenge.uuid), target: "_blank", class: "usa-button" %> diff --git a/lib/web/templates/challenge/table/_content.html.eex b/lib/web/templates/challenge/table/_content.html.eex index 48ddaff47..4ad695d37 100644 --- a/lib/web/templates/challenge/table/_content.html.eex +++ b/lib/web/templates/challenge/table/_content.html.eex @@ -27,7 +27,9 @@