about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2020-01-25 05:22:35 +0100
committerGitHub <noreply@github.com>2020-01-25 05:22:35 +0100
commit71921f6bc35b3bbcca8147b20befea113a21dd1f (patch)
tree816524f59bc3b6ebca536cfea55619ffcf695638
parentb89e6cfe7071901a43d1bfbde9dc7b872443e1b2 (diff)
Fix user disabling changing activity timestamps, fix nil error (#12943)
-rw-r--r--app/models/user.rb6
-rw-r--r--spec/models/user_spec.rb15
2 files changed, 3 insertions, 18 deletions
diff --git a/app/models/user.rb b/app/models/user.rb
index 058a8d5f8..85ee5cd06 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -128,9 +128,7 @@ class User < ApplicationRecord
   end
 
   def disable!
-    update!(disabled: true,
-            last_sign_in_at: current_sign_in_at,
-            current_sign_in_at: nil)
+    update!(disabled: true)
   end
 
   def enable!
@@ -301,7 +299,7 @@ class User < ApplicationRecord
       arr << [current_sign_in_at, current_sign_in_ip] if current_sign_in_ip.present?
       arr << [last_sign_in_at, last_sign_in_ip] if last_sign_in_ip.present?
 
-      arr.sort_by(&:first).uniq(&:last).reverse!
+      arr.sort_by { |pair| pair.first || Time.now.utc }.uniq(&:last).reverse!
     end
   end
 
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index d7c0b5359..5686ec909 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -322,20 +322,7 @@ RSpec.describe User, type: :model do
     end
 
     it 'disables user' do
-      expect(user).to have_attributes(disabled: true, current_sign_in_at: nil, last_sign_in_at: current_sign_in_at)
-    end
-  end
-
-  describe '#disable!' do
-    subject(:user) { Fabricate(:user, disabled: false, current_sign_in_at: current_sign_in_at, last_sign_in_at: nil) }
-    let(:current_sign_in_at) { Time.zone.now }
-
-    before do
-      user.disable!
-    end
-
-    it 'disables user' do
-      expect(user).to have_attributes(disabled: true, current_sign_in_at: nil, last_sign_in_at: current_sign_in_at)
+      expect(user).to have_attributes(disabled: true)
     end
   end