diff --git a/.erb-lint.yml b/.erb-lint.yml index efe20705430..aae60fce722 100644 --- a/.erb-lint.yml +++ b/.erb-lint.yml @@ -11,10 +11,6 @@ linters: - '*/app/views/accounts/_connected_app.html.erb' - '*/app/views/accounts/_emails.html.erb' - '*/app/views/accounts/_identity_item.html.erb' - - '*/app/views/accounts/_password_reset.html.erb' - - '*/app/views/accounts/_pending_profile_bounced_gpo.html.erb' - - '*/app/views/accounts/_pending_profile_gpo.html.erb' - - '*/app/views/accounts/_personal_key.html.erb' - '*/app/views/accounts/_phone.html.erb' - '*/app/views/accounts/_piv_cac.html.erb' - '*/app/views/accounts/_webauthn.html.erb' diff --git a/app/controllers/accounts/connected_accounts_controller.rb b/app/controllers/accounts/connected_accounts_controller.rb index 6c2a5db033f..4a60e70ccbd 100644 --- a/app/controllers/accounts/connected_accounts_controller.rb +++ b/app/controllers/accounts/connected_accounts_controller.rb @@ -9,6 +9,8 @@ def show @view_model = AccountShow.new( decrypted_pii: nil, personal_key: flash[:personal_key], + sp_session_request_url: sp_session_request_url_without_prompt_login, + sp_name: decorated_session.sp_name, decorated_user: current_user.decorate, locked_for_session: pii_locked_for_session?(current_user), ) diff --git a/app/controllers/accounts/history_controller.rb b/app/controllers/accounts/history_controller.rb index ff60ea139bf..5919aadb0d1 100644 --- a/app/controllers/accounts/history_controller.rb +++ b/app/controllers/accounts/history_controller.rb @@ -9,6 +9,8 @@ def show @view_model = AccountShow.new( decrypted_pii: nil, personal_key: flash[:personal_key], + sp_session_request_url: sp_session_request_url_without_prompt_login, + sp_name: decorated_session.sp_name, decorated_user: current_user.decorate, locked_for_session: pii_locked_for_session?(current_user), ) diff --git a/app/controllers/accounts/two_factor_authentication_controller.rb b/app/controllers/accounts/two_factor_authentication_controller.rb index ba93183a373..94119e693ef 100644 --- a/app/controllers/accounts/two_factor_authentication_controller.rb +++ b/app/controllers/accounts/two_factor_authentication_controller.rb @@ -10,6 +10,8 @@ def show @view_model = AccountShow.new( decrypted_pii: nil, personal_key: flash[:personal_key], + sp_session_request_url: sp_session_request_url_without_prompt_login, + sp_name: decorated_session.sp_name, decorated_user: current_user.decorate, locked_for_session: pii_locked_for_session?(current_user), ) diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index e327e8dbf43..7d5394d58c3 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -11,6 +11,8 @@ def show @view_model = AccountShow.new( decrypted_pii: cacher.fetch, personal_key: flash[:personal_key], + sp_session_request_url: sp_session_request_url_without_prompt_login, + sp_name: decorated_session.sp_name, decorated_user: current_user.decorate, locked_for_session: pii_locked_for_session?(current_user), ) diff --git a/app/controllers/events_controller.rb b/app/controllers/events_controller.rb index c7b6e6f885f..8686b1e62ec 100644 --- a/app/controllers/events_controller.rb +++ b/app/controllers/events_controller.rb @@ -10,6 +10,8 @@ def show @view_model = AccountShow.new( decrypted_pii: nil, personal_key: nil, + sp_session_request_url: sp_session_request_url_without_prompt_login, + sp_name: decorated_session.sp_name, decorated_user: current_user.decorate, locked_for_session: pii_locked_for_session?(current_user), ) diff --git a/app/view_models/account_show.rb b/app/view_models/account_show.rb index da0bfdd61bf..855df2b7414 100644 --- a/app/view_models/account_show.rb +++ b/app/view_models/account_show.rb @@ -1,10 +1,14 @@ class AccountShow - attr_reader :decorated_user, :decrypted_pii, :personal_key, :locked_for_session, :pii + attr_reader :decorated_user, :decrypted_pii, :personal_key, :locked_for_session, :pii, + :sp_session_request_url, :sp_name - def initialize(decrypted_pii:, personal_key:, decorated_user:, locked_for_session:) + def initialize(decrypted_pii:, personal_key:, sp_session_request_url:, sp_name:, decorated_user:, + locked_for_session:) @decrypted_pii = decrypted_pii @personal_key = personal_key @decorated_user = decorated_user + @sp_name = sp_name + @sp_session_request_url = sp_session_request_url @locked_for_session = locked_for_session @pii = determine_pii end @@ -30,6 +34,20 @@ def show_manage_personal_key_partial? end end + def show_service_provider_continue_partial? + sp_name.present? && sp_session_request_url.present? + end + + def show_gpo_partial? + decorated_user.pending_profile_requires_verification? + end + + def showing_any_partials? + show_service_provider_continue_partial? || show_manage_personal_key_partial? || + show_pii_partial? || show_password_reset_partial? || show_personal_key_partial? || + show_gpo_partial? + end + def backup_codes_generated_at decorated_user.user.backup_code_configurations.order(created_at: :asc).first&.created_at end diff --git a/app/views/accounts/_password_reset.html.erb b/app/views/accounts/_password_reset.html.erb index 5c248d45449..219ee48c5bf 100644 --- a/app/views/accounts/_password_reset.html.erb +++ b/app/views/accounts/_password_reset.html.erb @@ -1,8 +1,4 @@ -<%= render 'shared/alert', { - type: 'warning', - class: 'margin-bottom-8', - text_tag: 'div', -} do %> +<%= render 'shared/alert', { type: 'warning', text_tag: 'div' } do %>
<%= t('account.index.reactivation.instructions') %>
diff --git a/app/views/accounts/_pending_profile_bounced_gpo.html.erb b/app/views/accounts/_pending_profile_bounced_gpo.html.erb index 2bb4f0f6ce6..6291582f886 100644 --- a/app/views/accounts/_pending_profile_bounced_gpo.html.erb +++ b/app/views/accounts/_pending_profile_bounced_gpo.html.erb @@ -1,8 +1,4 @@ -<%= render 'shared/alert', { - type: 'warning', - class: 'margin-bottom-8', - text_tag: 'div', -} do %> +<%= render 'shared/alert', { type: 'warning', text_tag: 'div' } do %><%= t('account.index.verification.bounced') %>
diff --git a/app/views/accounts/_pending_profile_gpo.html.erb b/app/views/accounts/_pending_profile_gpo.html.erb index 38ad9b713ad..413e069eda1 100644 --- a/app/views/accounts/_pending_profile_gpo.html.erb +++ b/app/views/accounts/_pending_profile_gpo.html.erb @@ -1,8 +1,4 @@ -<%= render 'shared/alert', { - type: 'warning', - class: 'margin-bottom-8', - text_tag: 'div', -} do %> +<%= render 'shared/alert', { type: 'warning', text_tag: 'div' } do %><%= t('account.index.verification.instructions') %>
diff --git a/app/views/accounts/_personal_key.html.erb b/app/views/accounts/_personal_key.html.erb index a757ac96739..09c6adb4de2 100644 --- a/app/views/accounts/_personal_key.html.erb +++ b/app/views/accounts/_personal_key.html.erb @@ -1,8 +1,4 @@ -<%= render 'shared/alert', { - type: 'warning', - class: 'margin-bottom-8', - text_tag: 'div', -} do %> +<%= render 'shared/alert', { type: 'warning', class: 'margin-bottom-2', text_tag: 'div' } do %><%= t('idv.messages.personal_key') %>
diff --git a/app/views/accounts/_service_provider_continue.html.erb b/app/views/accounts/_service_provider_continue.html.erb new file mode 100644 index 00000000000..2b0e9d8f120 --- /dev/null +++ b/app/views/accounts/_service_provider_continue.html.erb @@ -0,0 +1,3 @@ +<%= render 'shared/alert', { type: 'info', text_tag: 'div' } do %> + <%= link_to(t('account.index.continue_to_service_provider', service_provider: view_model.sp_name), view_model.sp_session_request_url) %> +<% end %> diff --git a/app/views/accounts/show.html.erb b/app/views/accounts/show.html.erb index 4c4837219ee..a0e8707b8a9 100644 --- a/app/views/accounts/show.html.erb +++ b/app/views/accounts/show.html.erb @@ -1,18 +1,27 @@ <% title t('titles.account') %> -<% if @view_model.show_personal_key_partial? %> - <%= render 'accounts/personal_key', view_model: @view_model %> -<% end %> -<% if @view_model.show_password_reset_partial? %> - <%= render 'accounts/password_reset', view_model: @view_model %> -<% end %> +<% if @view_model.showing_any_partials? %> +