Fix user disabling changing activity timestamps, fix nil error (#12943)

This commit is contained in:
Eugen Rochko 2020-01-25 05:22:35 +01:00 committed by GitHub
parent b89e6cfe70
commit 71921f6bc3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 3 additions and 18 deletions

View file

@ -128,9 +128,7 @@ class User < ApplicationRecord
end end
def disable! def disable!
update!(disabled: true, update!(disabled: true)
last_sign_in_at: current_sign_in_at,
current_sign_in_at: nil)
end end
def enable! 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 << [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 << [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
end end

View file

@ -322,20 +322,7 @@ RSpec.describe User, type: :model do
end end
it 'disables user' do 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
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)
end end
end end