summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2017-05-08 11:06:54 +0000
committerSean McGivern <sean@mcgivern.me.uk>2017-05-08 11:06:54 +0000
commit09e2c1afb1782512de4bf4a5e90275300a3bf08d (patch)
treef2898b89af2ce102efdde2c79aa8981654f9a60a
parente6b2baf216c38c0900ecf90547351ff16f3cd0de (diff)
parentc175c30da76da5e976ac6351a11568b5d0b23d12 (diff)
downloadgitlab-ce-09e2c1afb1782512de4bf4a5e90275300a3bf08d.tar.gz
Merge branch 'sh-fix-almost-there-spec-mysql' into 'master'
Fix sub-second timing comparison error for Devise confirmation period Closes gitlab-ee#2362 See merge request !11156
-rw-r--r--app/models/user.rb9
1 files changed, 9 insertions, 0 deletions
diff --git a/app/models/user.rb b/app/models/user.rb
index accaa91b805..4e5f94683b8 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -1000,6 +1000,15 @@ class User < ActiveRecord::Base
devise_mailer.send(notification, self, *args).deliver_later
end
+ # This works around a bug in Devise 4.2.0 that erroneously causes a user to
+ # be considered active in MySQL specs due to a sub-second comparison
+ # issue. For more details, see: https://gitlab.com/gitlab-org/gitlab-ee/issues/2362#note_29004709
+ def confirmation_period_valid?
+ return false if self.class.allow_unconfirmed_access_for == 0.days
+
+ super
+ end
+
def ensure_external_user_rights
return unless external?