Sha256: 389000a2025148eea751e252cf99ccd39d32b1c4491ee5ee50c678e1ba07a5da
Contents?: true
Size: 927 Bytes
Versions: 22
Compression:
Stored size: 927 Bytes
Contents
module Clearance # Middleware which allows signing in by passing as=USER_ID in a query # parameter. # # Designed to eliminate time in integration tests wasted by visiting and # submitting the sign in form. # # Configuration: # # # config/environments/test.rb # MyRailsApp::Application.configure do # # ... # config.middleware.use Clearance::BackDoor # # ... # end # # Usage: # # visit new_feedback_path(as: user) class BackDoor def initialize(app) @app = app end def call(env) sign_in_through_the_back_door(env) @app.call(env) end private def sign_in_through_the_back_door(env) params = Rack::Utils.parse_query(env['QUERY_STRING']) user_id = params['as'] if user_id.present? user = Clearance.configuration.user_model.find(user_id) env[:clearance].sign_in(user) end end end end
Version data entries
22 entries across 22 versions & 1 rubygems