Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/rpi_auth/controllers/current_user.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ module CurrentUser
end

def current_user
return @current_user if @current_user
return nil unless session[:current_user]
return @current_user if @current_user

@current_user = RpiAuth.user_model.new(session[:current_user])
end
Expand Down
6 changes: 6 additions & 0 deletions spec/dummy/app/controllers/home_controller.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
class HomeController < ApplicationController
def show
end

def reset_user
current_user
reset_session
render :show
end
end
1 change: 1 addition & 0 deletions spec/dummy/config/routes.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
Rails.application.routes.draw do
# For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
root to: 'home#show'
get '/reset-user', to: 'home#reset_user'

resource :session, only: %i[create]

Expand Down
9 changes: 9 additions & 0 deletions spec/dummy/spec/requests/auth_request_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,15 @@
expect(session.id).not_to eq previous_id
end

it 'does not use cached user if session is reset' do
post '/auth/rpi'
follow_redirect!

get reset_user_path

expect(response.body).to include('Log in')
end

context 'when session_keys_to_persist is set' do
let(:session_keys_to_persist) { 'foo' }

Expand Down
Loading