summaryrefslogtreecommitdiff
path: root/app/models/user.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/user.rb')
-rw-r--r--app/models/user.rb9
1 files changed, 5 insertions, 4 deletions
diff --git a/app/models/user.rb b/app/models/user.rb
index 05f636c020a..0b358fd4b19 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -40,14 +40,15 @@ class User < ActiveRecord::Base
devise :lockable, :recoverable, :rememberable, :trackable,
:validatable, :omniauthable, :confirmable, :registerable
- # Limit trackable fields to update at most once every hour
- alias_method :devise_update_tracked_fields!, :update_tracked_fields!
-
+ # Override Devise::Models::Trackable#update_tracked_fields!
+ # to limit database writes to at most once every hour
def update_tracked_fields!(request)
+ update_tracked_fields(request)
+
lease = Gitlab::ExclusiveLease.new("user_update_tracked_fields:#{id}", timeout: 1.hour.to_i)
return unless lease.try_obtain
- devise_update_tracked_fields!(request)
+ save(validate: false)
end
attr_accessor :force_random_password