Selaa lähdekoodia

Redirect to 2FA creation page when otp_secret is not available (#6314)

master
Aboobacker MK 6 vuotta sitten
committed by Eugen Rochko
vanhempi
commit
112b1fa265
3 muutettua tiedostoa jossa 13 lisäystä ja 1 poistoa
  1. +1
    -1
      Gemfile.lock
  2. +5
    -0
      app/controllers/settings/two_factor_authentication/confirmations_controller.rb
  3. +7
    -0
      spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb

+ 1
- 1
Gemfile.lock Näytä tiedosto

@@ -70,7 +70,7 @@ GEM
coderay (>= 1.0.0)
erubi (>= 1.0.0)
rack (>= 0.9.0)
binding_of_caller (0.7.3)
binding_of_caller (0.8.0)
debug_inspector (>= 0.0.1)
bootsnap (1.1.5)
msgpack (~> 1.0)


+ 5
- 0
app/controllers/settings/two_factor_authentication/confirmations_controller.rb Näytä tiedosto

@@ -6,6 +6,7 @@ module Settings
layout 'admin'

before_action :authenticate_user!
before_action :ensure_otp_secret

def new
prepare_two_factor_form
@@ -38,6 +39,10 @@ module Settings
@provision_url = current_user.otp_provisioning_uri(current_user.email, issuer: Rails.configuration.x.local_domain)
@qrcode = RQRCode::QRCode.new(@provision_url)
end

def ensure_otp_secret
redirect_to settings_two_factor_authentication_path unless current_user.otp_secret
end
end
end
end

+ 7
- 0
spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb Näytä tiedosto

@@ -6,6 +6,7 @@ describe Settings::TwoFactorAuthentication::ConfirmationsController do
render_views

let(:user) { Fabricate(:user, email: 'local-part@domain', otp_secret: 'thisisasecretforthespecofnewview') }
let(:user_without_otp_secret) { Fabricate(:user, email: 'local-part@domain') }

shared_examples 'renders :new' do
it 'renders the new view' do
@@ -33,6 +34,12 @@ describe Settings::TwoFactorAuthentication::ConfirmationsController do
get :new
expect(response).to redirect_to('/auth/sign_in')
end

it 'redirects if user do not have otp_secret' do
sign_in user_without_otp_secret, scope: :user
get :new
expect(response).to redirect_to('/settings/two_factor_authentication')
end
end

describe 'POST #create' do


Ladataan…
Peruuta
Tallenna