diff options
| author | Miquel Sabaté Solà <msabate@suse.com> | 2024-03-15 23:14:43 +0100 |
|---|---|---|
| committer | Miquel Sabaté Solà <msabate@suse.com> | 2024-03-15 23:14:43 +0100 |
| commit | 1e6bf953680bf03d4b797cf9b8f7235546b2c578 (patch) | |
| tree | 454618355052363631d6fff280ae94df3b9d5929 | |
| parent | 87c3ff44381d270f3a4f4c384f674f85a7f178a1 (diff) | |
| download | operum-1e6bf953680bf03d4b797cf9b8f7235546b2c578.tar.gz operum-1e6bf953680bf03d4b797cf9b8f7235546b2c578.zip | |
Ensure that the last search is honored
Signed-off-by: Miquel Sabaté Solà <msabate@suse.com>
| -rw-r--r-- | app/controllers/application_controller.rb | 11 | ||||
| -rw-r--r-- | app/controllers/sessions_controller.rb | 2 | ||||
| -rw-r--r-- | test/system/sessions_test.rb | 13 |
3 files changed, 25 insertions, 1 deletions
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index fbe614c..80d4415 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -19,4 +19,15 @@ class ApplicationController < ActionController::Base def set_searches @searches = Search.order(:name) end + + # Redirect to the search that was last used by the current user. + def redirect_to_search! + search_id = current_user&.last_search_id + + if search_id + redirect_to search_path(search_id) + else + redirect_to root_url + end + end end diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb index b79e3dd..d80e38c 100644 --- a/app/controllers/sessions_controller.rb +++ b/app/controllers/sessions_controller.rb @@ -13,7 +13,7 @@ class SessionsController < ApplicationController user = User.find_by(username: params[:username]) if user&.authenticate(params[:password]) session[:user_id] = user.id - redirect_to root_url + redirect_to_search! else redirect_to root_url, alert: t('sessions.wrong-credentials') end diff --git a/test/system/sessions_test.rb b/test/system/sessions_test.rb index 2d01eef..6722de0 100644 --- a/test/system/sessions_test.rb +++ b/test/system/sessions_test.rb @@ -24,4 +24,17 @@ class SessionsTest < ApplicationSystemTestCase assert_text I18n.t('sessions.title') end + + test 'keeps the last search on sign in' do + sign_in! + + assert_equal current_url, root_url + + click_on searches(:search1).name + click_on I18n.t('sessions.sign-out') + + sign_in! + + assert_equal current_url, search_url(searches(:search1)) + end end |
