Skip to content

Commit

Permalink
Merge pull request #1077 from sul-dlss/warden
Browse files Browse the repository at this point in the history
Push User initialization down to warden
  • Loading branch information
thatbudakguy authored Apr 2, 2024
2 parents 3c24a59 + 4429fff commit 8878df3
Show file tree
Hide file tree
Showing 25 changed files with 45 additions and 38 deletions.
3 changes: 1 addition & 2 deletions app/controllers/application_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@ class ApplicationController < ActionController::Base
class_attribute :ils_patron_model_class, default: Settings.ils.patron_model.constantize

def current_user
session_data = request.env['warden'].user
session_data && User.new(session_data)
request.env['warden'].user
end

def current_user?
Expand Down
14 changes: 11 additions & 3 deletions config/initializers/warden.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# frozen_string_literal: true

Warden::Manager.serialize_into_session do |user|
user&.as_json
end

Warden::Manager.serialize_from_session do |json|
User.new(json) if json
end

Warden::Strategies.add(:shibboleth) do
def valid?
uid.present?
Expand All @@ -10,7 +18,7 @@ def authenticate!

if response&.key?('key') || response&.key?('id')
u = { username: uid, patron_key: response['key'] || response['id'], shibboleth: true }
success!(u)
success!(User.new(u))
else
fail!('Could not log in')
end
Expand All @@ -33,7 +41,7 @@ def authenticate!

if response&.key?('key') || response&.key?('id')
u = { username: uid, patron_key: response['key'] || response['id'] }
success!(u)
success!(User.new(u))
else
fail!('Could not log in')
end
Expand All @@ -56,7 +64,7 @@ def authenticate!

if response&.key?('patronKey') || response&.key?('id')
u = { username: params['library_id'], patron_key: response['patronKey'] || response['id'] }
success!(u)
success!(User.new(u))
else
fail!('Could not log in')
end
Expand Down
2 changes: 1 addition & 1 deletion spec/controllers/application_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
let(:mock_client) { instance_double(FolioClient) }

let(:user) do
{ username: 'somesunetid', patron_key: '513a9054-5897-11ee-8c99-0242ac120002' }
User.new(username: 'somesunetid', patron_key: '513a9054-5897-11ee-8c99-0242ac120002')
end

before do
Expand Down
4 changes: 2 additions & 2 deletions spec/controllers/checkouts_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

context 'with an authenticated request' do
let(:user) do
{ username: 'somesunetid', patron_key: '513a9054-5897-11ee-8c99-0242ac120002' }
User.new(username: 'somesunetid', patron_key: '513a9054-5897-11ee-8c99-0242ac120002')
end

let(:checkouts) do
Expand Down Expand Up @@ -63,7 +63,7 @@

context 'with an authenticated request for group checkouts' do
let(:user) do
{ username: 'somesunetid', patron_key: '513a9054-5897-11ee-8c99-0242ac120002' }
User.new(username: 'somesunetid', patron_key: '513a9054-5897-11ee-8c99-0242ac120002')
end

let(:checkouts) do
Expand Down
4 changes: 2 additions & 2 deletions spec/controllers/contact_forms_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@
)
end
let(:user) do
{ username: 'somesunetid', 'patronKey' => '123' }
User.new(username: 'somesunetid', 'patronKey' => '123')
end

before do
allow(FolioClient).to receive(:new).and_return(mock_client)
login_as(username: 'stub_user')
login_as(User.new(username: 'stub_user'))
warden.set_user(user)
headers = { HTTP_REFERER: root_path }
request.headers.merge! headers
Expand Down
4 changes: 2 additions & 2 deletions spec/controllers/fines_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

context 'with an authenticated request' do
let(:user) do
{ username: 'somesunetid', patron_key: '513a9054-5897-11ee-8c99-0242ac120002' }
User.new(username: 'somesunetid', patron_key: '513a9054-5897-11ee-8c99-0242ac120002')
end

let(:checkouts) do
Expand Down Expand Up @@ -59,7 +59,7 @@

context 'with an authenticated request for group fines' do
let(:user) do
{ username: 'somesunetid', patron_key: '513a9054-5897-11ee-8c99-0242ac120002' }
User.new(username: 'somesunetid', patron_key: '513a9054-5897-11ee-8c99-0242ac120002')
end

let(:checkouts) do
Expand Down
4 changes: 2 additions & 2 deletions spec/controllers/payments_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
require 'rails_helper'

RSpec.describe PaymentsController do
let(:user) { { username: 'somesunetid', patron_key: '513a9054-5897-11ee-8c99-0242ac120002' } }
let(:mock_patron) { instance_double(Folio::Patron, group?: false, key: user[:patron_key], payments:) }
let(:user) { User.new(username: 'somesunetid', patron_key: '513a9054-5897-11ee-8c99-0242ac120002') }
let(:mock_patron) { instance_double(Folio::Patron, group?: false, key: user.patron_key, payments:) }
let(:mock_client) { instance_double(FolioClient, ping: true, pay_fines: nil) }
let(:mock_graphql_client_response) do
[
Expand Down
2 changes: 1 addition & 1 deletion spec/controllers/renewals_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
instance_double(FolioClient, renew_item_by_id: api_response, ping: true)
end
let(:user) do
{ username: 'somesunetid', patron_key: '513a9054-5897-11ee-8c99-0242ac120002' }
User.new(username: 'somesunetid', patron_key: '513a9054-5897-11ee-8c99-0242ac120002')
end

let(:mock_patron) do
Expand Down
4 changes: 2 additions & 2 deletions spec/controllers/requests_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

context 'with an authenticated request' do
let(:user) do
{ username: 'somesunetid', patron_key: '513a9054-5897-11ee-8c99-0242ac120002' }
User.new(username: 'somesunetid', patron_key: '513a9054-5897-11ee-8c99-0242ac120002')
end

let(:requests) do
Expand Down Expand Up @@ -201,7 +201,7 @@

context 'with an authenticated request for group requests' do
let(:user) do
{ username: 'somesunetid', patron_key: '513a9054-5897-11ee-8c99-0242ac120002' }
User.new(username: 'somesunetid', patron_key: '513a9054-5897-11ee-8c99-0242ac120002')
end

let(:requests) do
Expand Down
2 changes: 1 addition & 1 deletion spec/controllers/reset_pins_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
end

let(:user) do
{ username: 'somesunetid', patron_key: '513a9054-5897-11ee-8c99-0242ac120002' }
User.new(username: 'somesunetid', patron_key: '513a9054-5897-11ee-8c99-0242ac120002')
end

it 'index logs out and redirects to the logout url' do
Expand Down
8 changes: 4 additions & 4 deletions spec/controllers/sessions_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

context 'with an authenticated request' do
let(:user) do
{ username: 'somesunetid', patron_key: '513a9054-5897-11ee-8c99-0242ac120002' }
User.new(username: 'somesunetid', patron_key: '513a9054-5897-11ee-8c99-0242ac120002')
end

before do
Expand Down Expand Up @@ -39,7 +39,7 @@

context 'with a shibboleth authenticated request' do
let(:user) do
{ 'shibboleth' => true }
User.new(shibboleth: true)
end

before do
Expand Down Expand Up @@ -92,7 +92,7 @@
it 'logs in the user' do
post(:login_by_library_id, params: { library_id: 'abc', pin: '123' })

expect(warden.user).to include username: 'abc', patron_key: 1
expect(warden.user).to have_attributes username: 'abc', patron_key: 1
end

it 'redirects the user to the summary page' do
Expand Down Expand Up @@ -123,7 +123,7 @@
it 'logs in the user' do
get(:login_by_sunetid)

expect(warden.user).to include username: 'test123', patron_key: '513a9054-5897-11ee-8c99-0242ac120002'
expect(warden.user).to have_attributes username: 'test123', patron_key: '513a9054-5897-11ee-8c99-0242ac120002'
end

it 'redirects the user to the summary page' do
Expand Down
2 changes: 1 addition & 1 deletion spec/controllers/summaries_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
let(:mock_client) { instance_double(FolioClient, ping: true) }

let(:user) do
{ username: 'somesunetid', patron_key: '513a9054-5897-11ee-8c99-0242ac120002' }
User.new(username: 'somesunetid', patron_key: '513a9054-5897-11ee-8c99-0242ac120002')
end

before do
Expand Down
2 changes: 1 addition & 1 deletion spec/features/checkouts_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
allow(FolioClient).to receive(:new) { mock_client }
allow(mock_client).to receive_messages(patron_info:)
allow(Folio::LoanPolicy).to receive(:new).and_return(loan_policy)
login_as(username: 'stub_user', patron_key: '513a9054-5897-11ee-8c99-0242ac120002')
login_as(User.new(username: 'stub_user', patron_key: '513a9054-5897-11ee-8c99-0242ac120002'))
end

it 'has checkout data' do
Expand Down
4 changes: 2 additions & 2 deletions spec/features/contact_form_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

context 'with user logged in' do
before do
login_as(username: 'stub_user', patron_key: '513a9054-5897-11ee-8c99-0242ac120002')
login_as(User.new(username: 'stub_user', patron_key: '513a9054-5897-11ee-8c99-0242ac120002'))

visit root_path
end
Expand Down Expand Up @@ -94,7 +94,7 @@
end

describe 'form header' do
before { login_as(username: 'stub_user', patron_key: '513a9054-5897-11ee-8c99-0242ac120002') }
before { login_as(User.new(username: 'stub_user', patron_key: '513a9054-5897-11ee-8c99-0242ac120002')) }

context 'when the standard Circ & Privs link' do
before { visit contact_path }
Expand Down
2 changes: 1 addition & 1 deletion spec/features/feedback_form_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@

context 'without js' do
before do
login_as(username: 'stub_user', patron_key: '513a9054-5897-11ee-8c99-0242ac120002')
login_as(User.new(username: 'stub_user', patron_key: '513a9054-5897-11ee-8c99-0242ac120002'))

visit root_path
end
Expand Down
2 changes: 1 addition & 1 deletion spec/features/fines_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
before do
allow(FolioClient).to receive(:new) { mock_client }
allow(mock_client).to receive_messages(patron_info:)
login_as(username: 'stub_user', patron_key: '513a9054-5897-11ee-8c99-0242ac120002')
login_as(User.new(username: 'stub_user', patron_key: '513a9054-5897-11ee-8c99-0242ac120002'))
end

context 'with fines' do
Expand Down
2 changes: 1 addition & 1 deletion spec/features/internal_flash_message_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
before do
allow(FolioClient).to receive(:new).and_return(mock_client)
allow(mock_client).to receive_messages(patron_info:)
login_as(username: 'stub_user', patron_key: '513a9054-5897-11ee-8c99-0242ac120002')
login_as(User.new(username: 'stub_user', patron_key: '513a9054-5897-11ee-8c99-0242ac120002'))
end

context 'when message is set' do
Expand Down
2 changes: 1 addition & 1 deletion spec/features/navigation_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
allow(FolioClient).to receive(:new) { mock_client }
allow(mock_client).to receive_messages(patron_info:)
allow(Folio::LoanPolicy).to receive(:new).and_return(build(:grad_mono_loans))
login_as(username: 'stub_user', patron_key: '513a9054-5897-11ee-8c99-0242ac120002')
login_as(User.new(username: 'stub_user', patron_key: '513a9054-5897-11ee-8c99-0242ac120002'))
end

it 'the root path navigates to the Summary page' do
Expand Down
2 changes: 1 addition & 1 deletion spec/features/payments_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
before do
allow(FolioClient).to receive(:new) { mock_client }
allow(mock_client).to receive_messages(patron_info:)
login_as(username: 'stub_user', patron_key: '513a9054-5897-11ee-8c99-0242ac120002')
login_as(User.new(username: 'stub_user', patron_key: '513a9054-5897-11ee-8c99-0242ac120002'))

visit fines_path
end
Expand Down
2 changes: 1 addition & 1 deletion spec/features/proxy_user_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
allow(mock_client).to receive(:patron_info).with('ec52d62d-9f0e-4ea5-856f-a1accb0121d1').and_return(sponsor)
allow(Folio::ServicePoint).to receive_messages(all: service_points)
allow(Folio::LoanPolicy).to receive(:new).and_return(build(:grad_mono_loans))
login_as(username: 'stub_user', patron_key: 'bdfa62a1-758c-4389-ae81-8ddb37860f9b')
login_as(User.new(username: 'stub_user', patron_key: 'bdfa62a1-758c-4389-ae81-8ddb37860f9b'))
end

it 'has a tab to switch between user and group' do
Expand Down
2 changes: 1 addition & 1 deletion spec/features/renew_item_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
due_date: '2021-01-09T07:59:59.000+00:00',
renewal_count: 0))

login_as(username: 'stub_user', patron_key: 'ec52d62d-9f0e-4ea5-856f-a1accb0121d1')
login_as(User.new(username: 'stub_user', patron_key: 'ec52d62d-9f0e-4ea5-856f-a1accb0121d1'))
end

it 'enabled through checkout page' do
Expand Down
4 changes: 2 additions & 2 deletions spec/features/requests_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
all: service_points
)

login_as(username: 'stub_user', patron_key: '513a9054-5897-11ee-8c99-0242ac120002')
login_as(User.new(username: 'stub_user', patron_key: '513a9054-5897-11ee-8c99-0242ac120002'))
end

it 'has ready for pickup request data' do
Expand Down Expand Up @@ -109,7 +109,7 @@
end

before do
login_as(username: 'stub_user', patron_key: '513a9054-5897-11ee-8c99-0242ac120002')
login_as(User.new(username: 'stub_user', patron_key: '513a9054-5897-11ee-8c99-0242ac120002'))
end

it 'does not render table headers' do
Expand Down
2 changes: 1 addition & 1 deletion spec/features/reset_pin_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

context 'when logged in' do
before do
login_as(username: 'stub_user', patron_key: '50e8400-e29b-41d4-a716-446655440000')
login_as(User.new(username: 'stub_user', patron_key: '50e8400-e29b-41d4-a716-446655440000'))
end

it 'logs out user and redirects to root' do
Expand Down
2 changes: 1 addition & 1 deletion spec/features/sponsor_user_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
travel_to Time.zone.parse('2023-06-13T07:00:00.000+00:00')
allow(FolioClient).to receive(:new) { mock_client }
allow(mock_client).to receive_messages(patron_info:)
login_as(username: 'stub_user', patron_key: 'ec52d62d-9f0e-4ea5-856f-a1accb0121d1')
login_as(User.new(username: 'stub_user', patron_key: 'ec52d62d-9f0e-4ea5-856f-a1accb0121d1'))

visit summaries_path
end
Expand Down
2 changes: 1 addition & 1 deletion spec/features/summaries_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
allow(Folio::LoanPolicy).to receive(:new).and_return(build(:grad_mono_loans))
allow(mock_client).to receive_messages(patron_info:)
allow(mock_client).to receive(:patron_info).with('ec52d62d-9f0e-4ea5-856f-a1accb0121d1').and_return(sponsor)
login_as(username: 'stub_user', patron_key: 'd7b67ab1-a3f2-45a9-87cc-d867bca8315f')
login_as(User.new(username: 'stub_user', patron_key: 'd7b67ab1-a3f2-45a9-87cc-d867bca8315f'))

visit summaries_path
end
Expand Down

0 comments on commit 8878df3

Please sign in to comment.