diff --git a/app/controllers/users/sessions_controller.rb b/app/controllers/users/sessions_controller.rb index 5a5f13b98dc..9819ac4b3e3 100644 --- a/app/controllers/users/sessions_controller.rb +++ b/app/controllers/users/sessions_controller.rb @@ -23,6 +23,7 @@ def new @request_id = request_id_if_valid @ial = sp_session_ial + @browser_is_ie11 = browser_is_ie11? super end @@ -154,6 +155,10 @@ def remaining_session_time expires_at.to_i - Time.zone.now.to_i end + def browser_is_ie11? + BrowserCache.parse(request.user_agent).ie?(11) + end + def alive? return false unless session && expires_at session_alive = expires_at > now diff --git a/app/views/devise/sessions/new.html.erb b/app/views/devise/sessions/new.html.erb index 156b94e5597..694c1f64bc4 100644 --- a/app/views/devise/sessions/new.html.erb +++ b/app/views/devise/sessions/new.html.erb @@ -1,5 +1,11 @@ <% title t('titles.visitors.index') %> - +<% if @browser_is_ie11 %> + <%= render AlertComponent.new( + type: :warning, + class: 'margin-bottom-2', + message: t('account.login.ie_not_supported', date: I18n.l(IdentityConfig.store.ie11_support_end_date, format: :event_date)), + ) %> +<% end %> <%= render 'shared/maintenance_window_alert' %> <% if decorated_session.sp_name %> diff --git a/config/application.yml.default b/config/application.yml.default index aa7ab3f59a5..8a0888afeff 100644 --- a/config/application.yml.default +++ b/config/application.yml.default @@ -113,6 +113,7 @@ idv_native_camera_a_b_testing_enabled: false idv_native_camera_a_b_testing_percent: 10 idv_send_link_attempt_window_in_minutes: 10 idv_send_link_max_attempts: 5 +ie11_support_end_date: '2022-12-31' idv_sp_required: false in_person_proofing_enabled: false in_person_enrollment_validity_in_days: 30 diff --git a/config/locales/account/en.yml b/config/locales/account/en.yml index f5f5c075df3..293f5969a4d 100644 --- a/config/locales/account/en.yml +++ b/config/locales/account/en.yml @@ -71,6 +71,7 @@ en: delete_account: Delete regenerate_personal_key: Reset login: + ie_not_supported: Internet Explorer 11 will not be supported after %{date} piv_cac: Sign in with your government employee ID navigation: access_services: Access your government benefits and services from your diff --git a/config/locales/account/es.yml b/config/locales/account/es.yml index 30f02a3ca05..12440508f5d 100644 --- a/config/locales/account/es.yml +++ b/config/locales/account/es.yml @@ -72,6 +72,7 @@ es: delete_account: Eliminar regenerate_personal_key: Restablecer login: + ie_not_supported: Internet Explorer 11 dejará de ser compatible después del %{date} piv_cac: Inicie sesión con su identificación de empleado del gobierno navigation: access_services: Acceda a los beneficios y servicios de su gobierno desde su diff --git a/config/locales/account/fr.yml b/config/locales/account/fr.yml index bd0884fed08..acddec2244c 100644 --- a/config/locales/account/fr.yml +++ b/config/locales/account/fr.yml @@ -77,6 +77,7 @@ fr: delete_account: Effacer regenerate_personal_key: Réinitialiser login: + ie_not_supported: Internet Explorer 11 ne sera pas pris en charge après le %{date} piv_cac: Connectez-vous avec votre ID d’employé du gouvernement navigation: access_services: Accédez à vos avantages et services gouvernementaux depuis diff --git a/lib/identity_config.rb b/lib/identity_config.rb index bec9abfec42..deae7c3fa3c 100644 --- a/lib/identity_config.rb +++ b/lib/identity_config.rb @@ -193,6 +193,7 @@ def self.build_store(config_map) config.add(:idv_send_link_attempt_window_in_minutes, type: :integer) config.add(:idv_send_link_max_attempts, type: :integer) config.add(:idv_sp_required, type: :boolean) + config.add(:ie11_support_end_date, type: :timestamp) config.add(:in_person_proofing_enabled, type: :boolean) config.add(:in_person_enrollment_validity_in_days, type: :integer) config.add(:in_person_results_delay_in_hours, type: :integer)