Remove IP tracking columns from users table (#16409)
This commit is contained in:
parent
b52fdb4c6f
commit
8e84ebf0cb
19 changed files with 141 additions and 75 deletions
|
@ -1,11 +1,8 @@
|
|||
require 'devise/strategies/authenticatable'
|
||||
|
||||
Warden::Manager.after_set_user except: :fetch do |user, warden|
|
||||
if user.session_active?(warden.cookies.signed['_session_id'] || warden.raw_session['auth_id'])
|
||||
session_id = warden.cookies.signed['_session_id'] || warden.raw_session['auth_id']
|
||||
else
|
||||
session_id = user.activate_session(warden.request)
|
||||
end
|
||||
session_id = warden.cookies.signed['_session_id'] || warden.raw_session['auth_id']
|
||||
session_id = user.activate_session(warden.request) unless user.session_activations.active?(session_id)
|
||||
|
||||
warden.cookies.signed['_session_id'] = {
|
||||
value: session_id,
|
||||
|
@ -17,9 +14,13 @@ Warden::Manager.after_set_user except: :fetch do |user, warden|
|
|||
end
|
||||
|
||||
Warden::Manager.after_fetch do |user, warden|
|
||||
if user.session_active?(warden.cookies.signed['_session_id'] || warden.raw_session['auth_id'])
|
||||
session_id = warden.cookies.signed['_session_id'] || warden.raw_session['auth_id']
|
||||
|
||||
if session_id && (session = user.session_activations.find_by(session_id: session_id))
|
||||
session.update(ip: warden.request.remote_ip) if session.ip != warden.request.remote_ip
|
||||
|
||||
warden.cookies.signed['_session_id'] = {
|
||||
value: warden.cookies.signed['_session_id'] || warden.raw_session['auth_id'],
|
||||
value: session_id,
|
||||
expires: 1.year.from_now,
|
||||
httponly: true,
|
||||
secure: (Rails.env.production? || ENV['LOCAL_HTTPS'] == 'true'),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue