Require explicit support request confirmation
This commit is contained in:
parent
92e6ee8d70
commit
033718b9f4
|
|
@ -74,6 +74,14 @@ const activateProtectedTokenFragment = () => {
|
|||
{
|
||||
form: document.getElementById("email-change-fragment-form"),
|
||||
input: document.getElementById("email-change-fragment-token")
|
||||
},
|
||||
{
|
||||
form: document.getElementById("support-confirmation-fragment-form"),
|
||||
input: document.getElementById("support-confirmation-fragment-token")
|
||||
},
|
||||
{
|
||||
form: document.getElementById("content-removal-confirmation-fragment-form"),
|
||||
input: document.getElementById("content-removal-confirmation-fragment-token")
|
||||
}
|
||||
]
|
||||
|
||||
|
|
|
|||
|
|
@ -138,7 +138,7 @@ defmodule WhoNeedHelp.ContentRemoval do
|
|||
token = confirmation_token(notice)
|
||||
|
||||
PublicAccess.url(
|
||||
"/legal/content-removal/#{notice.id}/verify?token=#{URI.encode_www_form(token)}"
|
||||
"/legal/content-removal/#{notice.id}/verify#token=#{URI.encode_www_form(token)}"
|
||||
)
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ defmodule WhoNeedHelp.ContentRemoval.Notifier do
|
|||
"""
|
||||
Confirm the email address for removal notice #{notice.reference}.
|
||||
|
||||
The notice has not been added to the staff review queue yet. Open this private link to verify the address and submit it for review:
|
||||
The notice has not been added to the staff review queue yet. Open this private link, then press the confirmation button to verify the address and submit it for review:
|
||||
#{status_url}
|
||||
|
||||
If you did not make this request, ignore this email. It will not reach the review queue.
|
||||
|
|
|
|||
|
|
@ -198,7 +198,7 @@ defmodule WhoNeedHelp.Support do
|
|||
def confirmation_url(%SupportRequest{} = request) do
|
||||
token = confirmation_token(request)
|
||||
|
||||
PublicAccess.url("/support/cases/#{request.id}/verify?token=#{URI.encode_www_form(token)}")
|
||||
PublicAccess.url("/support/cases/#{request.id}/verify#token=#{URI.encode_www_form(token)}")
|
||||
end
|
||||
|
||||
def paginate_for_staff(%Scope{user: user}, options \\ []) do
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ defmodule WhoNeedHelp.Support.Notifier do
|
|||
"""
|
||||
Confirm the email address for support request #{request.reference}.
|
||||
|
||||
Your request has not been sent to the support queue yet. Open this private link to verify the address and submit it for review:
|
||||
Your request has not been sent to the support queue yet. Open this private link, then press the confirmation button to verify the address and submit it for review:
|
||||
#{status_url}
|
||||
|
||||
If you did not make this request, ignore this email. It will not reach the support queue.
|
||||
|
|
|
|||
|
|
@ -61,6 +61,21 @@ defmodule WhoNeedHelpWeb.ContentRemovalController do
|
|||
end
|
||||
end
|
||||
|
||||
def verify_page(conn, %{"id" => id}) do
|
||||
case Ecto.UUID.cast(id) do
|
||||
{:ok, _id} ->
|
||||
render(conn, :verify,
|
||||
notice_id: id,
|
||||
page_title: gettext("Confirm content-removal notice")
|
||||
)
|
||||
|
||||
:error ->
|
||||
send_resp(conn, :not_found, "Not found")
|
||||
end
|
||||
end
|
||||
|
||||
def verify_page(conn, _params), do: send_resp(conn, :not_found, "Not found")
|
||||
|
||||
def verify(conn, %{"id" => id, "token" => token}) do
|
||||
case ContentRemoval.verify_by_confirmation_token(id, token) do
|
||||
{:ok, notice} ->
|
||||
|
|
|
|||
|
|
@ -0,0 +1,44 @@
|
|||
<Layouts.app
|
||||
flash={@flash}
|
||||
current_scope={@current_scope}
|
||||
page_width={:narrow}
|
||||
page_align={:center}
|
||||
>
|
||||
<div class="text-center">
|
||||
<.header>
|
||||
{gettext("Confirm content-removal notice")}
|
||||
<:subtitle>
|
||||
{gettext("Confirm that you submitted this notice before it is sent for review.")}
|
||||
</:subtitle>
|
||||
</.header>
|
||||
|
||||
<.form
|
||||
for={%{}}
|
||||
action={~p"/legal/content-removal/#{@notice_id}/verify"}
|
||||
id="content-removal-confirmation-fragment-form"
|
||||
hidden
|
||||
>
|
||||
<input
|
||||
id="content-removal-confirmation-fragment-token"
|
||||
type="hidden"
|
||||
name="token"
|
||||
value=""
|
||||
/>
|
||||
<.button variant="primary" phx-disable-with={gettext("Confirming...")}>
|
||||
{gettext("Confirm content-removal notice")}
|
||||
</.button>
|
||||
</.form>
|
||||
|
||||
<p class="mt-5 text-sm text-base-content/70">
|
||||
{gettext(
|
||||
"If you did not submit this notice, close this page. Nothing will be sent for review."
|
||||
)}
|
||||
</p>
|
||||
|
||||
<noscript>
|
||||
<p class="alert alert-error mt-5">
|
||||
{gettext("JavaScript is required to confirm this protected email link.")}
|
||||
</p>
|
||||
</noscript>
|
||||
</div>
|
||||
</Layouts.app>
|
||||
|
|
@ -98,6 +98,21 @@ defmodule WhoNeedHelpWeb.SupportController do
|
|||
end
|
||||
end
|
||||
|
||||
def verify_page(conn, %{"id" => id}) do
|
||||
case Ecto.UUID.cast(id) do
|
||||
{:ok, _id} ->
|
||||
render(conn, :verify,
|
||||
request_id: id,
|
||||
page_title: gettext("Confirm support request")
|
||||
)
|
||||
|
||||
:error ->
|
||||
send_resp(conn, :not_found, "Not found")
|
||||
end
|
||||
end
|
||||
|
||||
def verify_page(conn, _params), do: send_resp(conn, :not_found, "Not found")
|
||||
|
||||
def verify(conn, %{"id" => id, "token" => token}) do
|
||||
case Support.verify_by_confirmation_token(id, token) do
|
||||
{:ok, request} ->
|
||||
|
|
|
|||
|
|
@ -0,0 +1,39 @@
|
|||
<Layouts.app
|
||||
flash={@flash}
|
||||
current_scope={@current_scope}
|
||||
page_width={:narrow}
|
||||
page_align={:center}
|
||||
>
|
||||
<div class="text-center">
|
||||
<.header>
|
||||
{gettext("Confirm support request")}
|
||||
<:subtitle>
|
||||
{gettext("Confirm that you submitted this request before it is sent to support.")}
|
||||
</:subtitle>
|
||||
</.header>
|
||||
|
||||
<.form
|
||||
for={%{}}
|
||||
action={~p"/support/cases/#{@request_id}/verify"}
|
||||
id="support-confirmation-fragment-form"
|
||||
hidden
|
||||
>
|
||||
<input id="support-confirmation-fragment-token" type="hidden" name="token" value="" />
|
||||
<.button variant="primary" phx-disable-with={gettext("Confirming...")}>
|
||||
{gettext("Confirm support request")}
|
||||
</.button>
|
||||
</.form>
|
||||
|
||||
<p class="mt-5 text-sm text-base-content/70">
|
||||
{gettext(
|
||||
"If you did not submit this request, close this page. Nothing will be sent to support."
|
||||
)}
|
||||
</p>
|
||||
|
||||
<noscript>
|
||||
<p class="alert alert-error mt-5">
|
||||
{gettext("JavaScript is required to confirm this protected email link.")}
|
||||
</p>
|
||||
</noscript>
|
||||
</div>
|
||||
</Layouts.app>
|
||||
|
|
@ -97,7 +97,8 @@ defmodule WhoNeedHelpWeb.Router do
|
|||
get "/support/new", SupportController, :new
|
||||
post "/support", SupportController, :create
|
||||
get "/support/received", SupportController, :received
|
||||
get "/support/cases/:id/verify", SupportController, :verify
|
||||
get "/support/cases/:id/verify", SupportController, :verify_page
|
||||
post "/support/cases/:id/verify", SupportController, :verify
|
||||
get "/support/cases/:id", SupportController, :show
|
||||
post "/support/cases/:id/messages", SupportController, :add_message
|
||||
post "/support/cases/:id/reopen", SupportController, :reopen
|
||||
|
|
@ -167,7 +168,8 @@ defmodule WhoNeedHelpWeb.Router do
|
|||
scope "/", WhoNeedHelpWeb do
|
||||
pipe_through :browser
|
||||
|
||||
get "/legal/content-removal/:id/verify", ContentRemovalController, :verify
|
||||
get "/legal/content-removal/:id/verify", ContentRemovalController, :verify_page
|
||||
post "/legal/content-removal/:id/verify", ContentRemovalController, :verify
|
||||
get "/legal/content-removal/:id", ContentRemovalController, :show
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -560,6 +560,8 @@ msgstr ""
|
|||
msgid "Confirm your email and ensure your account is active before publishing."
|
||||
msgstr ""
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_html/verify.html.heex:27
|
||||
#: lib/who_need_help_web/controllers/support_html/verify.html.heex:22
|
||||
#: lib/who_need_help_web/controllers/user_session_html/new.html.heex:57
|
||||
#: lib/who_need_help_web/controllers/user_session_html/new.html.heex:63
|
||||
#: lib/who_need_help_web/controllers/user_settings_html/confirm_email.html.heex:20
|
||||
|
|
@ -2520,6 +2522,8 @@ msgstr ""
|
|||
msgid "Could not unblock this user. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_html/verify.html.heex:40
|
||||
#: lib/who_need_help_web/controllers/support_html/verify.html.heex:35
|
||||
#: lib/who_need_help_web/controllers/user_settings_html/confirm_email.html.heex:27
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "JavaScript is required to confirm this protected email link."
|
||||
|
|
@ -3115,7 +3119,7 @@ msgid "Removal notice updated."
|
|||
msgstr ""
|
||||
|
||||
#: lib/who_need_help_web/components/layouts.ex:201
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:136
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:151
|
||||
#: lib/who_need_help_web/controllers/support_html/new.html.heex:16
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Report content"
|
||||
|
|
@ -3131,7 +3135,7 @@ msgstr ""
|
|||
msgid "Reported locations"
|
||||
msgstr ""
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:226
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:241
|
||||
#: lib/who_need_help_web/controllers/support_html/delete_account.html.heex:6
|
||||
#: lib/who_need_help_web/controllers/support_html/delete_account.html.heex:42
|
||||
#: lib/who_need_help_web/controllers/user_settings_html/edit.html.heex:128
|
||||
|
|
@ -3249,7 +3253,7 @@ msgstr ""
|
|||
msgid "TAKE IT DOWN"
|
||||
msgstr ""
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:135
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:150
|
||||
#: lib/who_need_help_web/controllers/support_html/new.html.heex:19
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "TAKE IT DOWN request"
|
||||
|
|
@ -3277,7 +3281,7 @@ msgstr ""
|
|||
msgid "Threat to life or safety"
|
||||
msgstr ""
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:103
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:118
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Too many removal notices. Please try again later."
|
||||
msgstr ""
|
||||
|
|
@ -5242,7 +5246,7 @@ msgid "Case status"
|
|||
msgstr ""
|
||||
|
||||
#: lib/who_need_help_web/controllers/page_html/child_safety.html.heex:42
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:227
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:242
|
||||
#: lib/who_need_help_web/live/report_live.ex:50
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Contact support"
|
||||
|
|
@ -5253,7 +5257,7 @@ msgstr ""
|
|||
msgid "Content-removal notice %{reference}"
|
||||
msgstr ""
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:111
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:126
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Content-removal notice received"
|
||||
msgstr ""
|
||||
|
|
@ -5264,8 +5268,8 @@ msgstr ""
|
|||
msgid "Conversation"
|
||||
msgstr ""
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:137
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:153
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:152
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:168
|
||||
#: lib/who_need_help_web/live/support_case_live.ex:73
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Could not send your message. Please check it and try again."
|
||||
|
|
@ -5328,7 +5332,7 @@ msgstr ""
|
|||
msgid "No status history is available for this older case."
|
||||
msgstr ""
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:172
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:187
|
||||
#: lib/who_need_help_web/live/support_case_live.ex:95
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Only a resolved or closed request can be reopened."
|
||||
|
|
@ -5438,7 +5442,7 @@ msgstr ""
|
|||
msgid "Support request created"
|
||||
msgstr ""
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:183
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:198
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Support request received"
|
||||
msgstr ""
|
||||
|
|
@ -5474,7 +5478,7 @@ msgstr ""
|
|||
msgid "The requester states whether the medicine is paid, reserved, or still needs to be purchased."
|
||||
msgstr ""
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:167
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:182
|
||||
#: lib/who_need_help_web/live/support_case_live.ex:88
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "The support request is open again."
|
||||
|
|
@ -5502,7 +5506,7 @@ msgstr ""
|
|||
msgid "This support request is no longer available."
|
||||
msgstr ""
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:143
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:158
|
||||
#: lib/who_need_help_web/live/support_case_live.ex:60
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Too many messages. Please try again later."
|
||||
|
|
@ -5539,7 +5543,7 @@ msgstr ""
|
|||
msgid "Your content-removal notices"
|
||||
msgstr ""
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:130
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:145
|
||||
#: lib/who_need_help_web/live/support_case_live.ex:53
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Your message was sent to support."
|
||||
|
|
@ -7677,12 +7681,12 @@ msgstr ""
|
|||
msgid "You do not have permission for this action. Role changes also require a recent sign-in."
|
||||
msgstr ""
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:70
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:85
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Your email was confirmed and the notice was sent for review."
|
||||
msgstr ""
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:107
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:122
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Your email was confirmed and the request was sent to support."
|
||||
msgstr ""
|
||||
|
|
@ -7872,3 +7876,37 @@ msgstr ""
|
|||
#, elixir-autogen, elixir-format
|
||||
msgid "Copy and paste this secure address into your browser:"
|
||||
msgstr ""
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:69
|
||||
#: lib/who_need_help_web/controllers/content_removal_html/verify.html.heex:9
|
||||
#: lib/who_need_help_web/controllers/content_removal_html/verify.html.heex:28
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Confirm content-removal notice"
|
||||
msgstr ""
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:106
|
||||
#: lib/who_need_help_web/controllers/support_html/verify.html.heex:9
|
||||
#: lib/who_need_help_web/controllers/support_html/verify.html.heex:23
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Confirm support request"
|
||||
msgstr ""
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_html/verify.html.heex:11
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Confirm that you submitted this notice before it is sent for review."
|
||||
msgstr ""
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_html/verify.html.heex:11
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Confirm that you submitted this request before it is sent to support."
|
||||
msgstr ""
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_html/verify.html.heex:33
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "If you did not submit this notice, close this page. Nothing will be sent for review."
|
||||
msgstr ""
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_html/verify.html.heex:28
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "If you did not submit this request, close this page. Nothing will be sent to support."
|
||||
msgstr ""
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ msgstr "Categories"
|
|||
#: lib/who_need_help_web/components/layouts.ex:95
|
||||
#: lib/who_need_help_web/components/layouts.ex:168
|
||||
#: lib/who_need_help_web/controllers/user_registration_html/new.html.heex:14
|
||||
#: lib/who_need_help_web/controllers/user_session_controller.ex:215
|
||||
#: lib/who_need_help_web/controllers/user_session_controller.ex:225
|
||||
#: lib/who_need_help_web/controllers/user_session_html/new.html.heex:10
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Log in"
|
||||
|
|
@ -560,6 +560,8 @@ msgstr "Confirm your account and ensure it is active first."
|
|||
msgid "Confirm your email and ensure your account is active before publishing."
|
||||
msgstr "Confirm your email and ensure your account is active before publishing."
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_html/verify.html.heex:27
|
||||
#: lib/who_need_help_web/controllers/support_html/verify.html.heex:22
|
||||
#: lib/who_need_help_web/controllers/user_session_html/new.html.heex:57
|
||||
#: lib/who_need_help_web/controllers/user_session_html/new.html.heex:63
|
||||
#: lib/who_need_help_web/controllers/user_settings_html/confirm_email.html.heex:20
|
||||
|
|
@ -2520,6 +2522,8 @@ msgstr "Could not publish the request. Please try again."
|
|||
msgid "Could not unblock this user. Please try again."
|
||||
msgstr "Could not unblock this user. Please try again."
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_html/verify.html.heex:40
|
||||
#: lib/who_need_help_web/controllers/support_html/verify.html.heex:35
|
||||
#: lib/who_need_help_web/controllers/user_settings_html/confirm_email.html.heex:27
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "JavaScript is required to confirm this protected email link."
|
||||
|
|
@ -3115,7 +3119,7 @@ msgid "Removal notice updated."
|
|||
msgstr "Removal notice updated."
|
||||
|
||||
#: lib/who_need_help_web/components/layouts.ex:201
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:136
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:151
|
||||
#: lib/who_need_help_web/controllers/support_html/new.html.heex:16
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Report content"
|
||||
|
|
@ -3131,7 +3135,7 @@ msgstr "Report illegal or harmful content"
|
|||
msgid "Reported locations"
|
||||
msgstr "Reported locations"
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:226
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:241
|
||||
#: lib/who_need_help_web/controllers/support_html/delete_account.html.heex:6
|
||||
#: lib/who_need_help_web/controllers/support_html/delete_account.html.heex:42
|
||||
#: lib/who_need_help_web/controllers/user_settings_html/edit.html.heex:128
|
||||
|
|
@ -3249,7 +3253,7 @@ msgstr "Support request updated."
|
|||
msgid "TAKE IT DOWN"
|
||||
msgstr "TAKE IT DOWN"
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:135
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:150
|
||||
#: lib/who_need_help_web/controllers/support_html/new.html.heex:19
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "TAKE IT DOWN request"
|
||||
|
|
@ -3277,7 +3281,7 @@ msgstr "This requests deletion of your Who Need Help account and associated pers
|
|||
msgid "Threat to life or safety"
|
||||
msgstr "Threat to life or safety"
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:103
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:118
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Too many removal notices. Please try again later."
|
||||
msgstr "Too many removal notices. Please try again later."
|
||||
|
|
@ -3757,7 +3761,7 @@ msgstr "Creating account..."
|
|||
msgid "Email me a verification link"
|
||||
msgstr "Email me a verification link"
|
||||
|
||||
#: lib/who_need_help_web/controllers/user_session_controller.ex:183
|
||||
#: lib/who_need_help_web/controllers/user_session_controller.ex:193
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Google sign-in connected. You can use it next time."
|
||||
msgstr "Google sign-in connected. You can use it next time."
|
||||
|
|
@ -3809,7 +3813,7 @@ msgstr "Verified"
|
|||
msgid "We sent a verification link to %{email}. Open it to finish connecting Google."
|
||||
msgstr "We sent a verification link to %{email}. Open it to finish connecting Google."
|
||||
|
||||
#: lib/who_need_help_web/controllers/user_session_controller.ex:196
|
||||
#: lib/who_need_help_web/controllers/user_session_controller.ex:206
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "You are signed in, but Google could not be connected. Try again in account settings."
|
||||
msgstr "You are signed in, but Google could not be connected. Try again in account settings."
|
||||
|
|
@ -5242,7 +5246,7 @@ msgid "Case status"
|
|||
msgstr "Case status"
|
||||
|
||||
#: lib/who_need_help_web/controllers/page_html/child_safety.html.heex:42
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:227
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:242
|
||||
#: lib/who_need_help_web/live/report_live.ex:50
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Contact support"
|
||||
|
|
@ -5253,7 +5257,7 @@ msgstr "Contact support"
|
|||
msgid "Content-removal notice %{reference}"
|
||||
msgstr "Content-removal notice %{reference}"
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:111
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:126
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Content-removal notice received"
|
||||
msgstr "Content-removal notice received"
|
||||
|
|
@ -5264,8 +5268,8 @@ msgstr "Content-removal notice received"
|
|||
msgid "Conversation"
|
||||
msgstr "Conversation"
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:137
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:153
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:152
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:168
|
||||
#: lib/who_need_help_web/live/support_case_live.ex:73
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Could not send your message. Please check it and try again."
|
||||
|
|
@ -5328,7 +5332,7 @@ msgstr "No reports submitted"
|
|||
msgid "No status history is available for this older case."
|
||||
msgstr "No status history is available for this older case."
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:172
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:187
|
||||
#: lib/who_need_help_web/live/support_case_live.ex:95
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Only a resolved or closed request can be reopened."
|
||||
|
|
@ -5438,7 +5442,7 @@ msgstr "Status history"
|
|||
msgid "Support request created"
|
||||
msgstr "Support request created"
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:183
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:198
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Support request received"
|
||||
msgstr "Support request received"
|
||||
|
|
@ -5474,7 +5478,7 @@ msgstr "TRUST AND SAFETY"
|
|||
msgid "The requester states whether the medicine is paid, reserved, or still needs to be purchased."
|
||||
msgstr "The requester states whether the medicine is paid, reserved, or still needs to be purchased."
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:167
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:182
|
||||
#: lib/who_need_help_web/live/support_case_live.ex:88
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "The support request is open again."
|
||||
|
|
@ -5502,7 +5506,7 @@ msgstr "This private history shows reports you submitted and the latest moderati
|
|||
msgid "This support request is no longer available."
|
||||
msgstr "This support request is no longer available."
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:143
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:158
|
||||
#: lib/who_need_help_web/live/support_case_live.ex:60
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Too many messages. Please try again later."
|
||||
|
|
@ -5539,7 +5543,7 @@ msgstr "You"
|
|||
msgid "Your content-removal notices"
|
||||
msgstr "Your content-removal notices"
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:130
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:145
|
||||
#: lib/who_need_help_web/live/support_case_live.ex:53
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Your message was sent to support."
|
||||
|
|
@ -7677,12 +7681,12 @@ msgstr "You do not have permission for this action."
|
|||
msgid "You do not have permission for this action. Role changes also require a recent sign-in."
|
||||
msgstr "You do not have permission for this action. Role changes also require a recent sign-in."
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:70
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:85
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Your email was confirmed and the notice was sent for review."
|
||||
msgstr "Your email was confirmed and the notice was sent for review."
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:107
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:122
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Your email was confirmed and the request was sent to support."
|
||||
msgstr "Your email was confirmed and the request was sent to support."
|
||||
|
|
@ -7872,3 +7876,37 @@ msgstr "Enable Android notifications"
|
|||
#, elixir-autogen, elixir-format
|
||||
msgid "Copy and paste this secure address into your browser:"
|
||||
msgstr "Copy and paste this secure address into your browser:"
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:69
|
||||
#: lib/who_need_help_web/controllers/content_removal_html/verify.html.heex:9
|
||||
#: lib/who_need_help_web/controllers/content_removal_html/verify.html.heex:28
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Confirm content-removal notice"
|
||||
msgstr "Confirm content-removal notice"
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:106
|
||||
#: lib/who_need_help_web/controllers/support_html/verify.html.heex:9
|
||||
#: lib/who_need_help_web/controllers/support_html/verify.html.heex:23
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Confirm support request"
|
||||
msgstr "Confirm support request"
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_html/verify.html.heex:11
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Confirm that you submitted this notice before it is sent for review."
|
||||
msgstr "Confirm that you submitted this notice before it is sent for review."
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_html/verify.html.heex:11
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Confirm that you submitted this request before it is sent to support."
|
||||
msgstr "Confirm that you submitted this request before it is sent to support."
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_html/verify.html.heex:33
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "If you did not submit this notice, close this page. Nothing will be sent for review."
|
||||
msgstr "If you did not submit this notice, close this page. Nothing will be sent for review."
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_html/verify.html.heex:28
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "If you did not submit this request, close this page. Nothing will be sent to support."
|
||||
msgstr "If you did not submit this request, close this page. Nothing will be sent to support."
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ msgstr "Категории"
|
|||
#: lib/who_need_help_web/components/layouts.ex:95
|
||||
#: lib/who_need_help_web/components/layouts.ex:168
|
||||
#: lib/who_need_help_web/controllers/user_registration_html/new.html.heex:14
|
||||
#: lib/who_need_help_web/controllers/user_session_controller.ex:215
|
||||
#: lib/who_need_help_web/controllers/user_session_controller.ex:225
|
||||
#: lib/who_need_help_web/controllers/user_session_html/new.html.heex:10
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Log in"
|
||||
|
|
@ -580,6 +580,8 @@ msgstr ""
|
|||
"Перед публикацией подтвердите электронную почту и убедитесь, что учётная "
|
||||
"запись активна."
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_html/verify.html.heex:27
|
||||
#: lib/who_need_help_web/controllers/support_html/verify.html.heex:22
|
||||
#: lib/who_need_help_web/controllers/user_session_html/new.html.heex:57
|
||||
#: lib/who_need_help_web/controllers/user_session_html/new.html.heex:63
|
||||
#: lib/who_need_help_web/controllers/user_settings_html/confirm_email.html.heex:20
|
||||
|
|
@ -2636,6 +2638,8 @@ msgstr "Не удалось опубликовать заявку. Попроб
|
|||
msgid "Could not unblock this user. Please try again."
|
||||
msgstr "Не удалось разблокировать пользователя. Попробуйте ещё раз."
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_html/verify.html.heex:40
|
||||
#: lib/who_need_help_web/controllers/support_html/verify.html.heex:35
|
||||
#: lib/who_need_help_web/controllers/user_settings_html/confirm_email.html.heex:27
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "JavaScript is required to confirm this protected email link."
|
||||
|
|
@ -3231,7 +3235,7 @@ msgid "Removal notice updated."
|
|||
msgstr "Уведомление об удалении обновлено."
|
||||
|
||||
#: lib/who_need_help_web/components/layouts.ex:201
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:136
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:151
|
||||
#: lib/who_need_help_web/controllers/support_html/new.html.heex:16
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Report content"
|
||||
|
|
@ -3247,7 +3251,7 @@ msgstr "Сообщить о незаконном или вредоносном
|
|||
msgid "Reported locations"
|
||||
msgstr "Указанные адреса контента"
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:226
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:241
|
||||
#: lib/who_need_help_web/controllers/support_html/delete_account.html.heex:6
|
||||
#: lib/who_need_help_web/controllers/support_html/delete_account.html.heex:42
|
||||
#: lib/who_need_help_web/controllers/user_settings_html/edit.html.heex:128
|
||||
|
|
@ -3365,7 +3369,7 @@ msgstr "Обращение в поддержку обновлено."
|
|||
msgid "TAKE IT DOWN"
|
||||
msgstr "TAKE IT DOWN"
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:135
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:150
|
||||
#: lib/who_need_help_web/controllers/support_html/new.html.heex:19
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "TAKE IT DOWN request"
|
||||
|
|
@ -3393,7 +3397,7 @@ msgstr "Это запрос на удаление аккаунта Who Need Help
|
|||
msgid "Threat to life or safety"
|
||||
msgstr "Угроза жизни или безопасности"
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:103
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:118
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Too many removal notices. Please try again later."
|
||||
msgstr "Слишком много уведомлений об удалении. Повторите попытку позже."
|
||||
|
|
@ -3873,7 +3877,7 @@ msgstr "Создаём аккаунт..."
|
|||
msgid "Email me a verification link"
|
||||
msgstr "Отправить ссылку для подтверждения на email"
|
||||
|
||||
#: lib/who_need_help_web/controllers/user_session_controller.ex:183
|
||||
#: lib/who_need_help_web/controllers/user_session_controller.ex:193
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Google sign-in connected. You can use it next time."
|
||||
msgstr "Вход через Google подключён. В следующий раз можно использовать его."
|
||||
|
|
@ -3925,7 +3929,7 @@ msgstr "Подтверждено"
|
|||
msgid "We sent a verification link to %{email}. Open it to finish connecting Google."
|
||||
msgstr "Мы отправили ссылку для подтверждения на %{email}. Откройте её, чтобы завершить подключение Google."
|
||||
|
||||
#: lib/who_need_help_web/controllers/user_session_controller.ex:196
|
||||
#: lib/who_need_help_web/controllers/user_session_controller.ex:206
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "You are signed in, but Google could not be connected. Try again in account settings."
|
||||
msgstr "Вы вошли, но подключить Google не удалось. Повторите попытку в настройках аккаунта."
|
||||
|
|
@ -5359,7 +5363,7 @@ msgid "Case status"
|
|||
msgstr "Статус обращения"
|
||||
|
||||
#: lib/who_need_help_web/controllers/page_html/child_safety.html.heex:42
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:227
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:242
|
||||
#: lib/who_need_help_web/live/report_live.ex:50
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Contact support"
|
||||
|
|
@ -5370,7 +5374,7 @@ msgstr "Обратиться в поддержку"
|
|||
msgid "Content-removal notice %{reference}"
|
||||
msgstr "Уведомление об удалении контента %{reference}"
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:111
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:126
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Content-removal notice received"
|
||||
msgstr "Уведомление об удалении контента получено"
|
||||
|
|
@ -5381,8 +5385,8 @@ msgstr "Уведомление об удалении контента получ
|
|||
msgid "Conversation"
|
||||
msgstr "Переписка"
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:137
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:153
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:152
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:168
|
||||
#: lib/who_need_help_web/live/support_case_live.ex:73
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Could not send your message. Please check it and try again."
|
||||
|
|
@ -5445,7 +5449,7 @@ msgstr "Жалоб не отправлено"
|
|||
msgid "No status history is available for this older case."
|
||||
msgstr "Для этого старого обращения история статусов недоступна."
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:172
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:187
|
||||
#: lib/who_need_help_web/live/support_case_live.ex:95
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Only a resolved or closed request can be reopened."
|
||||
|
|
@ -5555,7 +5559,7 @@ msgstr "История статусов"
|
|||
msgid "Support request created"
|
||||
msgstr "Обращение в поддержку создано"
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:183
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:198
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Support request received"
|
||||
msgstr "Обращение в поддержку получено"
|
||||
|
|
@ -5591,7 +5595,7 @@ msgstr "ДОВЕРИЕ И БЕЗОПАСНОСТЬ"
|
|||
msgid "The requester states whether the medicine is paid, reserved, or still needs to be purchased."
|
||||
msgstr "Автор заявки указывает, оплачено ли лекарство, зарезервировано или его ещё нужно купить."
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:167
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:182
|
||||
#: lib/who_need_help_web/live/support_case_live.ex:88
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "The support request is open again."
|
||||
|
|
@ -5619,7 +5623,7 @@ msgstr "В этой личной истории показаны ваши жал
|
|||
msgid "This support request is no longer available."
|
||||
msgstr "Это обращение в поддержку больше недоступно."
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:143
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:158
|
||||
#: lib/who_need_help_web/live/support_case_live.ex:60
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Too many messages. Please try again later."
|
||||
|
|
@ -5656,7 +5660,7 @@ msgstr "Вы"
|
|||
msgid "Your content-removal notices"
|
||||
msgstr "Ваши уведомления об удалении контента"
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:130
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:145
|
||||
#: lib/who_need_help_web/live/support_case_live.ex:53
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Your message was sent to support."
|
||||
|
|
@ -7797,12 +7801,12 @@ msgstr "У вас нет разрешения на это действие."
|
|||
msgid "You do not have permission for this action. Role changes also require a recent sign-in."
|
||||
msgstr "У вас нет разрешения на это действие. Для изменения ролей также требуется недавний вход."
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:70
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:85
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Your email was confirmed and the notice was sent for review."
|
||||
msgstr "Ваш email подтверждён, уведомление отправлено на проверку."
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:107
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:122
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Your email was confirmed and the request was sent to support."
|
||||
msgstr "Ваш email подтверждён, обращение отправлено в поддержку."
|
||||
|
|
@ -7992,3 +7996,37 @@ msgstr "Включить уведомления Android"
|
|||
#, elixir-autogen, elixir-format
|
||||
msgid "Copy and paste this secure address into your browser:"
|
||||
msgstr "Скопируйте этот безопасный адрес и вставьте его в браузер:"
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:69
|
||||
#: lib/who_need_help_web/controllers/content_removal_html/verify.html.heex:9
|
||||
#: lib/who_need_help_web/controllers/content_removal_html/verify.html.heex:28
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Confirm content-removal notice"
|
||||
msgstr "Подтвердить уведомление об удалении контента"
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:106
|
||||
#: lib/who_need_help_web/controllers/support_html/verify.html.heex:9
|
||||
#: lib/who_need_help_web/controllers/support_html/verify.html.heex:23
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Confirm support request"
|
||||
msgstr "Подтвердить обращение в поддержку"
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_html/verify.html.heex:11
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Confirm that you submitted this notice before it is sent for review."
|
||||
msgstr "Подтвердите, что это уведомление отправили вы, прежде чем оно поступит на рассмотрение."
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_html/verify.html.heex:11
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Confirm that you submitted this request before it is sent to support."
|
||||
msgstr "Подтвердите, что это обращение отправили вы, прежде чем оно поступит в поддержку."
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_html/verify.html.heex:33
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "If you did not submit this notice, close this page. Nothing will be sent for review."
|
||||
msgstr "Если вы не отправляли это уведомление, закройте страницу. На рассмотрение ничего не поступит."
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_html/verify.html.heex:28
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "If you did not submit this request, close this page. Nothing will be sent to support."
|
||||
msgstr "Если вы не отправляли это обращение, закройте страницу. В поддержку ничего не поступит."
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ msgstr "Категорії"
|
|||
#: lib/who_need_help_web/components/layouts.ex:95
|
||||
#: lib/who_need_help_web/components/layouts.ex:168
|
||||
#: lib/who_need_help_web/controllers/user_registration_html/new.html.heex:14
|
||||
#: lib/who_need_help_web/controllers/user_session_controller.ex:215
|
||||
#: lib/who_need_help_web/controllers/user_session_controller.ex:225
|
||||
#: lib/who_need_help_web/controllers/user_session_html/new.html.heex:10
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Log in"
|
||||
|
|
@ -581,6 +581,8 @@ msgstr ""
|
|||
"Перед публікацією підтвердьте електронну пошту й переконайтеся, що обліковий"
|
||||
" запис активний."
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_html/verify.html.heex:27
|
||||
#: lib/who_need_help_web/controllers/support_html/verify.html.heex:22
|
||||
#: lib/who_need_help_web/controllers/user_session_html/new.html.heex:57
|
||||
#: lib/who_need_help_web/controllers/user_session_html/new.html.heex:63
|
||||
#: lib/who_need_help_web/controllers/user_settings_html/confirm_email.html.heex:20
|
||||
|
|
@ -2630,6 +2632,8 @@ msgstr "Не вдалося опублікувати заявку. Спробу
|
|||
msgid "Could not unblock this user. Please try again."
|
||||
msgstr "Не вдалося розблокувати користувача. Спробуйте ще раз."
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_html/verify.html.heex:40
|
||||
#: lib/who_need_help_web/controllers/support_html/verify.html.heex:35
|
||||
#: lib/who_need_help_web/controllers/user_settings_html/confirm_email.html.heex:27
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "JavaScript is required to confirm this protected email link."
|
||||
|
|
@ -3225,7 +3229,7 @@ msgid "Removal notice updated."
|
|||
msgstr "Повідомлення про видалення оновлено."
|
||||
|
||||
#: lib/who_need_help_web/components/layouts.ex:201
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:136
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:151
|
||||
#: lib/who_need_help_web/controllers/support_html/new.html.heex:16
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Report content"
|
||||
|
|
@ -3241,7 +3245,7 @@ msgstr "Повідомити про незаконний або шкідливи
|
|||
msgid "Reported locations"
|
||||
msgstr "Указані адреси контенту"
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:226
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:241
|
||||
#: lib/who_need_help_web/controllers/support_html/delete_account.html.heex:6
|
||||
#: lib/who_need_help_web/controllers/support_html/delete_account.html.heex:42
|
||||
#: lib/who_need_help_web/controllers/user_settings_html/edit.html.heex:128
|
||||
|
|
@ -3359,7 +3363,7 @@ msgstr "Звернення до підтримки оновлено."
|
|||
msgid "TAKE IT DOWN"
|
||||
msgstr "TAKE IT DOWN"
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:135
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:150
|
||||
#: lib/who_need_help_web/controllers/support_html/new.html.heex:19
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "TAKE IT DOWN request"
|
||||
|
|
@ -3387,7 +3391,7 @@ msgstr "Це запит на видалення облікового запис
|
|||
msgid "Threat to life or safety"
|
||||
msgstr "Загроза життю або безпеці"
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:103
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:118
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Too many removal notices. Please try again later."
|
||||
msgstr "Забагато повідомлень про видалення. Спробуйте пізніше."
|
||||
|
|
@ -3867,7 +3871,7 @@ msgstr "Створюємо обліковий запис..."
|
|||
msgid "Email me a verification link"
|
||||
msgstr "Надіслати посилання для підтвердження на email"
|
||||
|
||||
#: lib/who_need_help_web/controllers/user_session_controller.ex:183
|
||||
#: lib/who_need_help_web/controllers/user_session_controller.ex:193
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Google sign-in connected. You can use it next time."
|
||||
msgstr "Вхід через Google підключено. Наступного разу можна скористатися ним."
|
||||
|
|
@ -3919,7 +3923,7 @@ msgstr "Підтверджено"
|
|||
msgid "We sent a verification link to %{email}. Open it to finish connecting Google."
|
||||
msgstr "Ми надіслали посилання для підтвердження на %{email}. Відкрийте його, щоб завершити підключення Google."
|
||||
|
||||
#: lib/who_need_help_web/controllers/user_session_controller.ex:196
|
||||
#: lib/who_need_help_web/controllers/user_session_controller.ex:206
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "You are signed in, but Google could not be connected. Try again in account settings."
|
||||
msgstr "Ви ввійшли, але підключити Google не вдалося. Повторіть спробу в налаштуваннях облікового запису."
|
||||
|
|
@ -5353,7 +5357,7 @@ msgid "Case status"
|
|||
msgstr "Статус звернення"
|
||||
|
||||
#: lib/who_need_help_web/controllers/page_html/child_safety.html.heex:42
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:227
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:242
|
||||
#: lib/who_need_help_web/live/report_live.ex:50
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Contact support"
|
||||
|
|
@ -5364,7 +5368,7 @@ msgstr "Звернутися до підтримки"
|
|||
msgid "Content-removal notice %{reference}"
|
||||
msgstr "Повідомлення про видалення контенту %{reference}"
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:111
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:126
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Content-removal notice received"
|
||||
msgstr "Повідомлення про видалення контенту отримано"
|
||||
|
|
@ -5375,8 +5379,8 @@ msgstr "Повідомлення про видалення контенту от
|
|||
msgid "Conversation"
|
||||
msgstr "Розмова"
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:137
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:153
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:152
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:168
|
||||
#: lib/who_need_help_web/live/support_case_live.ex:73
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Could not send your message. Please check it and try again."
|
||||
|
|
@ -5439,7 +5443,7 @@ msgstr "Скарг не подано"
|
|||
msgid "No status history is available for this older case."
|
||||
msgstr "Для цього старого звернення історія статусів недоступна."
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:172
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:187
|
||||
#: lib/who_need_help_web/live/support_case_live.ex:95
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Only a resolved or closed request can be reopened."
|
||||
|
|
@ -5549,7 +5553,7 @@ msgstr "Історія статусів"
|
|||
msgid "Support request created"
|
||||
msgstr "Звернення до підтримки створено"
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:183
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:198
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Support request received"
|
||||
msgstr "Звернення до підтримки отримано"
|
||||
|
|
@ -5585,7 +5589,7 @@ msgstr "ДОВІРА ТА БЕЗПЕКА"
|
|||
msgid "The requester states whether the medicine is paid, reserved, or still needs to be purchased."
|
||||
msgstr "Автор заявки вказує, чи ліки вже оплачені, зарезервовані або їх ще потрібно придбати."
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:167
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:182
|
||||
#: lib/who_need_help_web/live/support_case_live.ex:88
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "The support request is open again."
|
||||
|
|
@ -5613,7 +5617,7 @@ msgstr "У цій приватній історії показано ваші с
|
|||
msgid "This support request is no longer available."
|
||||
msgstr "Це звернення до підтримки більше не доступне."
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:143
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:158
|
||||
#: lib/who_need_help_web/live/support_case_live.ex:60
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Too many messages. Please try again later."
|
||||
|
|
@ -5650,7 +5654,7 @@ msgstr "Ви"
|
|||
msgid "Your content-removal notices"
|
||||
msgstr "Ваші повідомлення про видалення контенту"
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:130
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:145
|
||||
#: lib/who_need_help_web/live/support_case_live.ex:53
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Your message was sent to support."
|
||||
|
|
@ -7791,12 +7795,12 @@ msgstr "У вас немає дозволу на цю дію."
|
|||
msgid "You do not have permission for this action. Role changes also require a recent sign-in."
|
||||
msgstr "У вас немає дозволу на цю дію. Для зміни ролей також потрібен нещодавній вхід."
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:70
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:85
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Your email was confirmed and the notice was sent for review."
|
||||
msgstr "Ваш email підтверджено, повідомлення надіслано на перевірку."
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:107
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:122
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Your email was confirmed and the request was sent to support."
|
||||
msgstr "Ваш email підтверджено, звернення надіслано до підтримки."
|
||||
|
|
@ -7986,3 +7990,37 @@ msgstr "Увімкнути сповіщення Android"
|
|||
#, elixir-autogen, elixir-format
|
||||
msgid "Copy and paste this secure address into your browser:"
|
||||
msgstr "Скопіюйте цю безпечну адресу та вставте її у браузер:"
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_controller.ex:69
|
||||
#: lib/who_need_help_web/controllers/content_removal_html/verify.html.heex:9
|
||||
#: lib/who_need_help_web/controllers/content_removal_html/verify.html.heex:28
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Confirm content-removal notice"
|
||||
msgstr "Підтвердити повідомлення про видалення контенту"
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_controller.ex:106
|
||||
#: lib/who_need_help_web/controllers/support_html/verify.html.heex:9
|
||||
#: lib/who_need_help_web/controllers/support_html/verify.html.heex:23
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Confirm support request"
|
||||
msgstr "Підтвердити звернення до підтримки"
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_html/verify.html.heex:11
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Confirm that you submitted this notice before it is sent for review."
|
||||
msgstr "Підтвердьте, що це повідомлення надіслали ви, перш ніж воно надійде на розгляд."
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_html/verify.html.heex:11
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Confirm that you submitted this request before it is sent to support."
|
||||
msgstr "Підтвердьте, що це звернення надіслали ви, перш ніж воно надійде до підтримки."
|
||||
|
||||
#: lib/who_need_help_web/controllers/content_removal_html/verify.html.heex:33
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "If you did not submit this notice, close this page. Nothing will be sent for review."
|
||||
msgstr "Якщо ви не надсилали це повідомлення, закрийте сторінку. На розгляд нічого не надійде."
|
||||
|
||||
#: lib/who_need_help_web/controllers/support_html/verify.html.heex:28
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "If you did not submit this request, close this page. Nothing will be sent to support."
|
||||
msgstr "Якщо ви не надсилали це звернення, закрийте сторінку. До підтримки нічого не надійде."
|
||||
|
|
|
|||
|
|
@ -47,7 +47,8 @@ defmodule WhoNeedHelp.SupportAndContentRemovalTest do
|
|||
assert_email_sent(fn email ->
|
||||
matches_request =
|
||||
email.subject =~ request.reference and
|
||||
email.text_body =~ "/support/cases/#{request.id}/verify?token="
|
||||
email.text_body =~ "/support/cases/#{request.id}/verify#token=" and
|
||||
not String.contains?(email.text_body, "/verify?token=")
|
||||
|
||||
if matches_request, do: send(test_pid, {:support_acknowledgement, email})
|
||||
matches_request
|
||||
|
|
@ -57,14 +58,14 @@ defmodule WhoNeedHelp.SupportAndContentRemovalTest do
|
|||
|
||||
[confirmation_url] =
|
||||
Regex.run(
|
||||
~r{https?://[^\s]+/support/cases/#{Regex.escape(request.id)}/verify\?token=[^\s]+},
|
||||
~r{https?://[^\s]+/support/cases/#{Regex.escape(request.id)}/verify#token=[^\s]+},
|
||||
email.text_body
|
||||
)
|
||||
|
||||
confirmation_token =
|
||||
confirmation_url
|
||||
|> URI.parse()
|
||||
|> Map.fetch!(:query)
|
||||
|> Map.fetch!(:fragment)
|
||||
|> URI.decode_query()
|
||||
|> Map.fetch!("token")
|
||||
|
||||
|
|
@ -657,7 +658,9 @@ defmodule WhoNeedHelp.SupportAndContentRemovalTest do
|
|||
assert_email_sent(fn email ->
|
||||
email.subject =~ "Confirm Who Need Help removal notice" and
|
||||
email.text_body =~ notice.reference and
|
||||
email.text_body =~ "has not been added to the staff review queue yet"
|
||||
email.text_body =~ "has not been added to the staff review queue yet" and
|
||||
email.text_body =~ "/legal/content-removal/#{notice.id}/verify#token=" and
|
||||
not String.contains?(email.text_body, "/verify?token=")
|
||||
end)
|
||||
|
||||
moderator_scope = moderator_scope()
|
||||
|
|
|
|||
|
|
@ -171,7 +171,7 @@ defmodule WhoNeedHelpWeb.SupportControllerTest do
|
|||
assert_email_sent()
|
||||
end
|
||||
|
||||
test "confirmation endpoints exchange short-lived confirmation links for status links", %{
|
||||
test "confirmation pages require an explicit POST before exposing cases to staff", %{
|
||||
conn: conn
|
||||
} do
|
||||
assert {:ok, support_request} =
|
||||
|
|
@ -183,10 +183,37 @@ defmodule WhoNeedHelpWeb.SupportControllerTest do
|
|||
"The confirmation endpoint must redirect to a separate private status link."
|
||||
})
|
||||
|
||||
support_conn =
|
||||
support_token = WhoNeedHelp.Support.confirmation_token(support_request)
|
||||
|
||||
support_page =
|
||||
get(
|
||||
conn,
|
||||
~p"/support/cases/#{support_request.id}/verify?token=#{WhoNeedHelp.Support.confirmation_token(support_request)}"
|
||||
~p"/support/cases/#{support_request.id}/verify?token=#{support_token}"
|
||||
)
|
||||
|
||||
support_html = html_response(support_page, 200)
|
||||
assert support_html =~ "Confirm support request"
|
||||
assert support_html =~ ~s(id="support-confirmation-fragment-form")
|
||||
assert support_html =~ ~s(id="support-confirmation-fragment-token")
|
||||
refute support_html =~ support_token
|
||||
refute Repo.get!(SupportRequest, support_request.id).contact_verified_at
|
||||
|
||||
assert response(
|
||||
post(
|
||||
recycle(support_page),
|
||||
~p"/support/cases/#{support_request.id}/verify",
|
||||
%{}
|
||||
),
|
||||
404
|
||||
)
|
||||
|
||||
refute Repo.get!(SupportRequest, support_request.id).contact_verified_at
|
||||
|
||||
support_conn =
|
||||
post(
|
||||
recycle(support_page),
|
||||
~p"/support/cases/#{support_request.id}/verify",
|
||||
%{"token" => support_token}
|
||||
)
|
||||
|
||||
support_location = redirected_to(support_conn)
|
||||
|
|
@ -208,11 +235,25 @@ defmodule WhoNeedHelpWeb.SupportControllerTest do
|
|||
"accurate_complete" => "true"
|
||||
})
|
||||
|
||||
removal_conn =
|
||||
removal_token = WhoNeedHelp.ContentRemoval.confirmation_token(removal_notice)
|
||||
|
||||
removal_page =
|
||||
conn
|
||||
|> recycle()
|
||||
|> get(
|
||||
~p"/legal/content-removal/#{removal_notice.id}/verify?token=#{WhoNeedHelp.ContentRemoval.confirmation_token(removal_notice)}"
|
||||
|> get(~p"/legal/content-removal/#{removal_notice.id}/verify?token=#{removal_token}")
|
||||
|
||||
removal_html = html_response(removal_page, 200)
|
||||
assert removal_html =~ "Confirm content-removal notice"
|
||||
assert removal_html =~ ~s(id="content-removal-confirmation-fragment-form")
|
||||
assert removal_html =~ ~s(id="content-removal-confirmation-fragment-token")
|
||||
refute removal_html =~ removal_token
|
||||
refute Repo.get!(WhoNeedHelp.ContentRemoval.Notice, removal_notice.id).contact_verified_at
|
||||
|
||||
removal_conn =
|
||||
post(
|
||||
recycle(removal_page),
|
||||
~p"/legal/content-removal/#{removal_notice.id}/verify",
|
||||
%{"token" => removal_token}
|
||||
)
|
||||
|
||||
removal_location = redirected_to(removal_conn)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user