mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-19 01:26:08 +10:00
Merge branch 'rs-improve-grace-period' into 'master'
Don't show any "2FA required" message if it's not actually required Prior, if the user had enabled and then disabled 2FA, they would be shown a "You must enable Two-factor Authentication for your account." message when going back to re-activate it, even if 2FA enforcement was disabled. See merge request !3014
This commit is contained in:
@@ -12,11 +12,13 @@ class Profiles::TwoFactorAuthsController < Profiles::ApplicationController
|
||||
|
||||
current_user.save! if current_user.changed?
|
||||
|
||||
if two_factor_grace_period_expired?
|
||||
flash.now[:alert] = 'You must enable Two-factor Authentication for your account.'
|
||||
else
|
||||
grace_period_deadline = current_user.otp_grace_period_started_at + two_factor_grace_period.hours
|
||||
flash.now[:alert] = "You must enable Two-factor Authentication for your account before #{l(grace_period_deadline)}."
|
||||
if two_factor_authentication_required?
|
||||
if two_factor_grace_period_expired?
|
||||
flash.now[:alert] = 'You must enable Two-factor Authentication for your account.'
|
||||
else
|
||||
grace_period_deadline = current_user.otp_grace_period_started_at + two_factor_grace_period.hours
|
||||
flash.now[:alert] = "You must enable Two-factor Authentication for your account before #{l(grace_period_deadline)}."
|
||||
end
|
||||
end
|
||||
|
||||
@qr_code = build_qr_code
|
||||
|
||||
+6
-5
@@ -362,11 +362,12 @@ class User < ActiveRecord::Base
|
||||
|
||||
def disable_two_factor!
|
||||
update_attributes(
|
||||
two_factor_enabled: false,
|
||||
encrypted_otp_secret: nil,
|
||||
encrypted_otp_secret_iv: nil,
|
||||
encrypted_otp_secret_salt: nil,
|
||||
otp_backup_codes: nil
|
||||
two_factor_enabled: false,
|
||||
encrypted_otp_secret: nil,
|
||||
encrypted_otp_secret_iv: nil,
|
||||
encrypted_otp_secret_salt: nil,
|
||||
otp_grace_period_started_at: nil,
|
||||
otp_backup_codes: nil
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@ FactoryGirl.define do
|
||||
before(:create) do |user|
|
||||
user.two_factor_enabled = true
|
||||
user.otp_secret = User.generate_otp_secret(32)
|
||||
user.otp_grace_period_started_at = Time.now
|
||||
user.generate_otp_backup_codes!
|
||||
end
|
||||
end
|
||||
|
||||
@@ -268,6 +268,7 @@ describe User, models: true do
|
||||
expect(user).to be_two_factor_enabled
|
||||
expect(user.encrypted_otp_secret).not_to be_nil
|
||||
expect(user.otp_backup_codes).not_to be_nil
|
||||
expect(user.otp_grace_period_started_at).not_to be_nil
|
||||
|
||||
user.disable_two_factor!
|
||||
|
||||
@@ -276,6 +277,7 @@ describe User, models: true do
|
||||
expect(user.encrypted_otp_secret_iv).to be_nil
|
||||
expect(user.encrypted_otp_secret_salt).to be_nil
|
||||
expect(user.otp_backup_codes).to be_nil
|
||||
expect(user.otp_grace_period_started_at).to be_nil
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user