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
Original file line number Diff line number Diff line change
Expand Up @@ -314,6 +314,7 @@ def presenter_for_two_factor_authentication_method
TwoFactorAuthCode.const_get("#{type}_delivery_presenter".classify).new(
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

!!!! I do not like this dynamic access.... story for another time

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeahhhhh, this and passing view_context around are things I'd like to change

data: data,
view: view_context,
service_provider: current_sp,
remember_device_default: remember_device_default,
)
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ def show
@presenter = TwoFactorAuthCode::BackupCodePresenter.new(
view: view_context,
data: { current_user: current_user },
service_provider: current_sp,
remember_device_default: remember_device_default,
)
@backup_code_form = BackupCodeVerificationForm.new(current_user)
Expand Down Expand Up @@ -43,6 +44,7 @@ def presenter_for_two_factor_authentication_method
TwoFactorAuthCode::BackupCodePresenter.new(
view: view_context,
data: { current_user: current_user },
service_provider: current_sp,
)
end

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ def presenter_for_two_factor_authentication_method
TwoFactorAuthCode::PivCacAuthenticationPresenter.new(
view: view_context,
data: piv_cac_view_data,
service_provider: current_sp,
remember_device_default: remember_device_default,
)
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ def presenter_for_two_factor_authentication_method
view: view_context,
data: { credential_ids: credential_ids,
user_opted_remember_device_cookie: user_opted_remember_device_cookie },
service_provider: current_sp,
remember_device_default: remember_device_default,
platform_authenticator: params[:platform].to_s == 'true',
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,12 @@ class GenericDeliveryPresenter

attr_reader :code_value, :reauthn

def initialize(data:, view:, remember_device_default: true)
def initialize(data:, view:, service_provider:, remember_device_default: true)
data.each do |key, value|
instance_variable_set("@#{key}", value)
end
@view = view
@service_provider = service_provider
@remember_device_default = remember_device_default
end

Expand Down Expand Up @@ -52,7 +53,7 @@ def url_options
def service_provider_mfa_policy
@service_provider_mfa_policy ||= ServiceProviderMfaPolicy.new(
user: @view.current_user,
service_provider: ServiceProvider.find_by(issuer: @view.sp_session[:issuer]),
service_provider: @service_provider,
auth_method: @view.user_session[:auth_method],
aal_level_requested: @view.sp_session[:aal_level_requested],
piv_cac_requested: @view.sp_session[:piv_cac_requested],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,15 @@ class WebauthnAuthenticationPresenter < TwoFactorAuthCode::GenericDeliveryPresen

attr_reader :credential_ids, :user_opted_remember_device_cookie

def initialize(data:, view:, remember_device_default: true, platform_authenticator: false)
def initialize(data:, view:, service_provider:, remember_device_default: true,
platform_authenticator: false)
@platform_authenticator = platform_authenticator
super(data: data, view: view, remember_device_default: remember_device_default)
super(
data: data,
view: view,
service_provider: service_provider,
remember_device_default: remember_device_default,
)
end

def webauthn_help
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
TwoFactorAuthCode::PhoneDeliveryPresenter.new(
data: presenter_data,
view: ActionController::Base.new.view_context,
service_provider: nil,
)
allow(FeatureManagement).to receive(:prefill_otp_codes?).and_return(true)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
let(:view) { ActionController::Base.new.view_context }
let(:presenter) do
TwoFactorAuthCode::AuthenticatorDeliveryPresenter.
new(data: {}, view: view)
new(data: {}, view: view, service_provider: nil)
end

describe '#header' do
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
let(:presenter) do
arguments = {}
view = ActionController::Base.new.view_context
TwoFactorAuthCode::BackupCodePresenter.new(data: arguments, view: view)
TwoFactorAuthCode::BackupCodePresenter.new(data: arguments, view: view, service_provider: nil)
end

describe '#fallback_question' do
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@
end

def presenter_with(arguments = {}, view = ActionController::Base.new.view_context)
TwoFactorAuthCode::GenericDeliveryPresenter.new(data: arguments, view: view)
TwoFactorAuthCode::GenericDeliveryPresenter.new(
data: arguments,
view: view,
service_provider: nil,
)
end
end
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
TwoFactorAuthCode::PhoneDeliveryPresenter.new(
data: data,
view: view,
service_provider: nil,
)
end

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,6 @@
include Rails.application.routes.url_helpers
include ActionView::Helpers::TagHelper

def presenter_with(arguments = {}, view = ActionController::Base.new.view_context)
TwoFactorAuthCode::PivCacAuthenticationPresenter.new(data: arguments, view: view)
end

let(:user_email) { 'user@example.com' }
let(:reauthn) {}
let(:presenter) { presenter_with(reauthn: reauthn, user_email: user_email) }
Expand Down Expand Up @@ -172,6 +168,10 @@ def presenter_with(arguments = {}, view = ActionController::Base.new.view_contex
end

def presenter_with(arguments = {}, view = ActionController::Base.new.view_context)
TwoFactorAuthCode::PivCacAuthenticationPresenter.new(data: arguments, view: view)
TwoFactorAuthCode::PivCacAuthenticationPresenter.new(
data: arguments,
view: view,
service_provider: nil,
)
end
end
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
let(:reauthn) {}
let(:presenter) do
TwoFactorAuthCode::WebauthnAuthenticationPresenter.
new(data: { reauthn: reauthn }, view: view, platform_authenticator: platform_authenticator)
new(data: { reauthn: reauthn }, service_provider: nil,
view: view, platform_authenticator: platform_authenticator)
end

let(:allow_user_to_switch_method) { false }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
@presenter = TwoFactorAuthCode::PhoneDeliveryPresenter.new(
data: presenter_data,
view: view,
service_provider: nil,
)
allow(@presenter).to receive(:reauthn).and_return(false)
end
Expand Down Expand Up @@ -115,6 +116,7 @@
@presenter = TwoFactorAuthCode::PhoneDeliveryPresenter.new(
data: data,
view: view,
service_provider: nil,
)

render
Expand All @@ -132,6 +134,7 @@
@presenter = TwoFactorAuthCode::PhoneDeliveryPresenter.new(
data: totp_data,
view: view,
service_provider: nil,
)

render
Expand Down Expand Up @@ -189,6 +192,7 @@
@presenter = TwoFactorAuthCode::PhoneDeliveryPresenter.new(
data: voice_data,
view: view,
service_provider: nil,
)
end

Expand Down Expand Up @@ -225,6 +229,7 @@
@presenter = TwoFactorAuthCode::PhoneDeliveryPresenter.new(
data: data,
view: view,
service_provider: nil,
)

render
Expand All @@ -240,6 +245,7 @@
@presenter = TwoFactorAuthCode::PhoneDeliveryPresenter.new(
data: data,
view: view,
service_provider: nil,
)

render
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
before do
allow(view).to receive(:current_user).and_return(user)
@presenter = TwoFactorAuthCode::AuthenticatorDeliveryPresenter.new(
data: presenter_data, view: ActionController::Base.new.view_context,
data: presenter_data, view: ActionController::Base.new.view_context, service_provider: nil,
)
allow(@presenter).to receive(:reauthn).and_return(false)

Expand Down
1 change: 1 addition & 0 deletions spec/views/users/totp_setup/new.html.erb_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@
@presenter = TwoFactorAuthCode::AuthenticatorDeliveryPresenter.new(
view: view,
data: { current_user: user },
service_provider: nil,
)

render
Expand Down