0
0
Fork 0

Add option to disable two factor auth in admin accounts panel. (#2584)

* Add option to disable two factor auth in admin accounts panel.
Closes #2578

* Add @mjankowski's suggestions.
* Moves destroy actions behind User#disable_two_factor!
* Adds spec coverage for Admin:TwoFactorAuthenticationsController and User#disable_two_factor!
This commit is contained in:
Kaylee 2017-05-02 20:07:12 +01:00 committed by Eugen Rochko
parent b5eec34230
commit 7880671f35
7 changed files with 62 additions and 0 deletions

View file

@ -0,0 +1,17 @@
require 'rails_helper'
describe Admin::TwoFactorAuthenticationsController do
render_views
let(:user) { Fabricate(:user) }
before do
sign_in Fabricate(:user, admin: true), scope: :user
end
describe 'DELETE #destroy' do
it 'redirects to admin accounts page' do
delete :destroy, params: { user_id: user.id }
expect(response).to redirect_to(admin_accounts_path)
end
end
end

View file

@ -126,6 +126,20 @@ RSpec.describe User, type: :model do
end
end
describe '#disable_two_factor!' do
it 'sets otp_required_for_login to false' do
user = Fabricate.build(:user, otp_required_for_login: true)
user.disable_two_factor!
expect(user.otp_required_for_login).to be false
end
it 'clears otp_backup_codes' do
user = Fabricate.build(:user, otp_backup_codes: %w[dummy dummy])
user.disable_two_factor!
expect(user.otp_backup_codes.empty?).to be true
end
end
describe 'whitelist' do
around(:each) do |example|
old_whitelist = Rails.configuration.x.email_whitelist