mirror of
https://github.com/heartcombo/devise.git
synced 2022-11-09 12:18:31 -05:00
use 'devise.skip_trackable' instead of DNT headers
This commit is contained in:
parent
89b53ea39c
commit
56f7fbf2d1
2 changed files with 5 additions and 14 deletions
|
@ -3,7 +3,7 @@
|
|||
# and on authentication. Retrieving the user from session (:fetch) does
|
||||
# not trigger it.
|
||||
Warden::Manager.after_set_user :except => :fetch do |record, warden, options|
|
||||
if record.respond_to?(:update_tracked_fields!) && warden.authenticated?(options[:scope]) && warden.request.headers['X-Do-Not-Track'].to_s != '1' && warden.request.headers['DNT'].to_s != '1'
|
||||
if record.respond_to?(:update_tracked_fields!) && warden.authenticated?(options[:scope]) && !warden.request.env['devise.skip_trackable']
|
||||
record.update_tracked_fields!(warden.request)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -62,29 +62,20 @@ class TrackableHooksTest < ActionController::IntegrationTest
|
|||
end
|
||||
end
|
||||
|
||||
test "respect X-Do-Not-Track and DNT headers" do
|
||||
test "do not track if devise.skip_trackable is set" do
|
||||
user = create_user
|
||||
sign_in_as_user do
|
||||
header "X-Do-Not-Track" , "1"
|
||||
header "DNT" , "0"
|
||||
header 'devise.skip_trackable', '1'
|
||||
end
|
||||
user.reload
|
||||
assert_equal 0, user.sign_in_count
|
||||
visit destroy_user_session_path
|
||||
|
||||
sign_in_as_user do
|
||||
header "X-Do-Not-Track" , "0"
|
||||
header "DNT" , "1"
|
||||
end
|
||||
user.reload
|
||||
assert_equal 0, user.sign_in_count
|
||||
visit destroy_user_session_path
|
||||
|
||||
sign_in_as_user do
|
||||
header "X-Do-Not-Track" , "0"
|
||||
header "DNT" , "0"
|
||||
header 'devise.skip_trackable', false
|
||||
end
|
||||
user.reload
|
||||
assert_equal 1, user.sign_in_count
|
||||
end
|
||||
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue