Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 1 addition & 5 deletions app/helpers/session_timeout_warning_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,6 @@ def timeout_refresh_path
end

def session_modal
if user_fully_authenticated?
FullySignedInModalPresenter.new(view_context: self, expiration: expires_at)
else
PartiallySignedInModalPresenter.new(view_context: self, expiration: expires_at)
end
SessionTimeoutModalPresenter.new(user_fully_authenticated: user_fully_authenticated?)
end
end
42 changes: 0 additions & 42 deletions app/presenters/fully_signed_in_modal_presenter.rb

This file was deleted.

42 changes: 0 additions & 42 deletions app/presenters/partially_signed_in_modal_presenter.rb

This file was deleted.

18 changes: 18 additions & 0 deletions app/presenters/session_timeout_modal_presenter.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
class SessionTimeoutModalPresenter
def initialize(user_fully_authenticated:)
@user_fully_authenticated = user_fully_authenticated
end

def translation_scope
if user_fully_authenticated?
[:notices, :timeout_warning, :signed_in]
else
[:notices, :timeout_warning, :partially_signed_in]
end
end

private

attr_reader :user_fully_authenticated
alias_method :user_fully_authenticated?, :user_fully_authenticated
end
54 changes: 46 additions & 8 deletions app/views/session_timeout/_warning.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,54 @@
<hr class="margin-bottom-4 border-info border-width-05" />
<div class="margin-bottom-6">
<p>
<%= modal_presenter.message %>
<%= t(
# i18n-tasks-use t('notices.timeout_warning.signed_in.message_html')
# i18n-tasks-use t('notices.timeout_warning.partially_signed_in.message_html')
'message_html',
scope: modal_presenter.translation_scope,
time_left_in_session: render(
CountdownComponent.new(
expiration: Time.zone.now,
start_immediately: false,
),
),
) %>
</p>
<p class="usa-sr-only" id="<%= c.description_id %>" role="timer" aria-live="polite" aria-atomic="true">
<%= modal_presenter.sr_message %>
<%= t(
# i18n-tasks-use t('notices.timeout_warning.signed_in.live_region_message_html')
# i18n-tasks-use t('notices.timeout_warning.partially_signed_in.live_region_message_html')
'live_region_message_html',
scope: modal_presenter.translation_scope,
time_left_in_session: render(
CountdownComponent.new(
expiration: Time.zone.now,
update_interval: 30.seconds,
start_immediately: false,
),
),
) %>
</p>
</div>
<%= button_tag modal_presenter.continue,
id: 'session-keepalive-btn',
class: 'usa-button usa-button--big usa-button--full-width margin-bottom-2' %>
<%= link_to modal_presenter.sign_out,
destroy_user_session_path,
class: 'usa-button usa-button--big usa-button--full-width usa-button--outline' %>
<%= render ButtonComponent.new(
type: :button,
id: 'session-keepalive-btn',
big: true,
full_width: true,
class: 'margin-bottom-2',
).with_content(
# i18n-tasks-use t('notices.timeout_warning.signed_in.continue')
# i18n-tasks-use t('notices.timeout_warning.partially_signed_in.continue')
t('continue', scope: modal_presenter.translation_scope),
) %>
<%= render ButtonComponent.new(
action: ->(**tag_options, &block) { link_to(destroy_user_session_path, **tag_options, &block) },
big: true,
full_width: true,
outline: true,
).with_content(
# i18n-tasks-use t('notices.timeout_warning.signed_in.sign_out')
# i18n-tasks-use t('notices.timeout_warning.partially_signed_in.sign_out')
t('sign_out', scope: modal_presenter.translation_scope),
) %>
<% end %>
10 changes: 6 additions & 4 deletions config/locales/notices/en.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,18 +47,20 @@ en:
timeout_warning:
partially_signed_in:
continue: Continue sign in
live_region_message_html: You will be signed out in %{time_left_in_session}.
Select “keep me signed in” to stay logged in. Select “sign me out” to
sign out.
message_html: For your security, in %{time_left_in_session} we will cancel your
sign in.
sign_out: Cancel sign in
sr_message_html: You will be signed out in %{time_left_in_session}. Select “keep
me signed in” to stay logged in. Select “sign me out” to sign out.
signed_in:
continue: Keep me signed in
live_region_message_html: You will be signed out in %{time_left_in_session}.
Select “keep me signed in” to stay logged in. Select “sign me out” to
sign out.
message_html: For your security, we will sign you out in %{time_left_in_session}
unless you tell us otherwise.
sign_out: Sign me out
sr_message_html: You will be signed out in %{time_left_in_session}. Select “keep
me signed in” to stay logged in. Select “sign me out” to sign out.
totp_configured: An authentication app was added to your account.
totp_disabled: Your authentication app was deleted from your account.
use_diff_email:
Expand Down
12 changes: 6 additions & 6 deletions config/locales/notices/es.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,19 +49,19 @@ es:
timeout_warning:
partially_signed_in:
continue: Continuar el inicio de sesión
live_region_message_html: Tu sesión se cerrará en %{time_left_in_session}.
Selecciona “seguir conectado” para mantener tu sesión activa.
Seleccione “desconécteme” para cerrar la sesión.
message_html: Para su seguridad, en %{time_left_in_session} cancelaremos su acceso.
sign_out: Cancelar el inicio de sesión
sr_message_html: Tu sesión se cerrará en %{time_left_in_session}. Selecciona
“seguir conectado” para mantener tu sesión activa. Seleccione
“desconécteme” para cerrar la sesión.
signed_in:
continue: Manténgame conectado
live_region_message_html: Tu sesión se cerrará en %{time_left_in_session}.
Selecciona “seguir conectado” para mantener tu sesión activa.
Seleccione “desconécteme” para cerrar la sesión.
message_html: Para su seguridad, terminaremos su sesión en
%{time_left_in_session} a menos que nos indique lo contrario.
sign_out: Desconécteme
sr_message_html: Tu sesión se cerrará en %{time_left_in_session}. Selecciona
“seguir conectado” para mantener tu sesión activa. Seleccione
“desconécteme” para cerrar la sesión.
totp_configured: Una aplicación de autenticación fue agregada a tu cuenta.
totp_disabled: Tu aplicación de autenticación fue eliminada de tu cuenta.
use_diff_email:
Expand Down
12 changes: 6 additions & 6 deletions config/locales/notices/fr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,20 +49,20 @@ fr:
timeout_warning:
partially_signed_in:
continue: Continuer la connexion
live_region_message_html: Vous serez déconnecté dans %{time_left_in_session}.
Sélectionnez « garder ma connexion » pour rester connecté.
Sélectionnez « déconnectez-moi » pour vous déconnecter.
message_html: Pour votre sécurité, nous annulerons votre connexion dans
%{time_left_in_session}.
sign_out: Annuler la connexion
sr_message_html: Vous serez déconnecté dans %{time_left_in_session}.
Sélectionnez « garder ma connexion » pour rester connecté.
Sélectionnez « déconnectez-moi » pour vous déconnecter.
signed_in:
continue: Gardez ma connexion active
live_region_message_html: Vous serez déconnecté dans %{time_left_in_session}.
Sélectionnez « garder ma connexion » pour rester connecté.
Sélectionnez « déconnectez-moi » pour vous déconnecter.
message_html: Pour votre sécurité, nous vous déconnecterons dans
%{time_left_in_session}, sauf en cas d’avis contraire de votre part.
sign_out: Déconnectez-moi
sr_message_html: Vous serez déconnecté dans %{time_left_in_session}.
Sélectionnez « garder ma connexion » pour rester connecté.
Sélectionnez « déconnectez-moi » pour vous déconnecter.
totp_configured: Une application d’authentification a été ajoutée à votre compte.
totp_disabled: Votre application d’authentification a été supprimée de votre compte.
use_diff_email:
Expand Down
46 changes: 0 additions & 46 deletions spec/presenters/fully_signed_in_modal_presenter_spec.rb

This file was deleted.

46 changes: 0 additions & 46 deletions spec/presenters/partially_signed_in_modal_presenter_spec.rb

This file was deleted.

27 changes: 27 additions & 0 deletions spec/presenters/session_timeout_modal_presenter_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
require 'rails_helper'

describe SessionTimeoutModalPresenter do
let(:user_fully_authenticated) { nil }

subject(:presenter) { described_class.new(user_fully_authenticated:) }

describe '#translation_scope' do
subject(:translation_scope) { presenter.translation_scope }

context 'without fully authenticated user' do
let(:user_fully_authenticated) { false }

it 'returns the partially signed in locale scope' do
expect(translation_scope).to eq([:notices, :timeout_warning, :partially_signed_in])
end
end

context 'with fully authenticated user' do
let(:user_fully_authenticated) { true }

it 'returns the fully signed in locale scope' do
expect(translation_scope).to eq([:notices, :timeout_warning, :signed_in])
end
end
end
end