Add convenience methods to User for getting and setting 2FA status
This commit is contained in:
parent
7964e7d6a1
commit
6c8f0fe906
|
@ -300,6 +300,18 @@ class User < ActiveRecord::Base
|
|||
@reset_token
|
||||
end
|
||||
|
||||
# Check if the user has enabled Two-factor Authentication
|
||||
def two_factor_enabled?
|
||||
otp_required_for_login
|
||||
end
|
||||
|
||||
# Set whether or not Two-factor Authentication is enabled for the current user
|
||||
#
|
||||
# setting - Boolean
|
||||
def two_factor_enabled=(setting)
|
||||
self.otp_required_for_login = setting
|
||||
end
|
||||
|
||||
def namespace_uniq
|
||||
namespace_name = self.username
|
||||
existing_namespace = Namespace.by_path(namespace_name)
|
||||
|
|
|
@ -30,7 +30,7 @@ FactoryGirl.define do
|
|||
|
||||
trait :two_factor do
|
||||
before(:create) do |user|
|
||||
user.otp_required_for_login = true
|
||||
user.two_factor_enabled = true
|
||||
user.otp_secret = User.generate_otp_secret(32)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -210,6 +210,30 @@ describe User do
|
|||
end
|
||||
end
|
||||
|
||||
describe '#two_factor_enabled' do
|
||||
it 'returns two-factor authentication status' do
|
||||
enabled = build_stubbed(:user, two_factor_enabled: true)
|
||||
disabled = build_stubbed(:user)
|
||||
|
||||
expect(enabled).to be_two_factor_enabled
|
||||
expect(disabled).not_to be_two_factor_enabled
|
||||
end
|
||||
end
|
||||
|
||||
describe '#two_factor_enabled=' do
|
||||
it 'enables two-factor authentication' do
|
||||
user = build_stubbed(:user, two_factor_enabled: false)
|
||||
expect { user.two_factor_enabled = true }.
|
||||
to change { user.two_factor_enabled? }.to(true)
|
||||
end
|
||||
|
||||
it 'disables two-factor authentication' do
|
||||
user = build_stubbed(:user, two_factor_enabled: true)
|
||||
expect { user.two_factor_enabled = false }.
|
||||
to change { user.two_factor_enabled? }.to(false)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'authentication token' do
|
||||
it "should have authentication token" do
|
||||
user = create(:user)
|
||||
|
|
Loading…
Reference in New Issue