From 4380fecd7359675a4864aa2224cefd8cb64ab4f8 Mon Sep 17 00:00:00 2001 From: Martin Date: Thu, 14 Dec 2023 10:07:34 +0100 Subject: [PATCH 1/3] =?UTF-8?q?amelioration(expert.sign-in):=20ETQ=20exper?= =?UTF-8?q?t,=20je=20suis=20redirig=C3=A9=20vers=20la=20page=20listant=20l?= =?UTF-8?q?es=20avis=20a=20donner=20ap=20connexion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/root_controller.rb | 2 ++ spec/controllers/root_controller_spec.rb | 10 ++++++++++ spec/system/experts/expert_spec.rb | 7 +++---- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/app/controllers/root_controller.rb b/app/controllers/root_controller.rb index 588c8c2df..6deb4cf13 100644 --- a/app/controllers/root_controller.rb +++ b/app/controllers/root_controller.rb @@ -6,6 +6,8 @@ class RootController < ApplicationController return redirect_to admin_procedures_path elsif instructeur_signed_in? return redirect_to instructeur_procedures_path + elsif expert_signed_in? + return redirect_to expert_all_avis_path elsif user_signed_in? return redirect_to dossiers_path elsif super_admin_signed_in? diff --git a/spec/controllers/root_controller_spec.rb b/spec/controllers/root_controller_spec.rb index 80d695886..06981a314 100644 --- a/spec/controllers/root_controller_spec.rb +++ b/spec/controllers/root_controller_spec.rb @@ -9,6 +9,16 @@ describe RootController, type: :controller do it { expect(subject).to redirect_to(dossiers_path) } end + context 'when Expert is connected' do + let(:expert) { create(:expert) } + + before do + sign_in(expert.user) + end + + it { expect(subject).to redirect_to(expert_all_avis_path) } + end + context 'when Instructeur is connected' do let(:instructeur) { create(:instructeur) } let(:procedure) { create(:procedure, :published) } diff --git a/spec/system/experts/expert_spec.rb b/spec/system/experts/expert_spec.rb index 74e187ab5..4a9e91952 100644 --- a/spec/system/experts/expert_spec.rb +++ b/spec/system/experts/expert_spec.rb @@ -37,7 +37,7 @@ describe 'Inviting an expert:' do sign_in_with avis.expert.email, password expect(page).to have_content('Connecté(e).') - expect(page).to have_current_path(dossiers_path) # Ideally we'd want `expert_all_avis_path` instead + expect(page).to have_current_path(expert_all_avis_path) end end @@ -52,9 +52,8 @@ describe 'Inviting an expert:' do expect(page).to have_current_path(new_user_session_path) login_as avis.expert.user, scope: :user sign_in_with(avis.expert.email, 'This is a very complicated password !') - click_on 'Passer en expert' - expect(page).to have_current_path(expert_all_avis_path) - expect(page).to have_text('1 avis à donner') + click_on 'Passer en usager' + expect(page).to have_current_path(dossiers_path) end end From 6def2609f145788315b35b780359d579f3f07ee0 Mon Sep 17 00:00:00 2001 From: Martin Date: Thu, 14 Dec 2023 10:10:20 +0100 Subject: [PATCH 2/3] =?UTF-8?q?amelioration(liens-suivis):=20persiste=20la?= =?UTF-8?q?=20page=20a=20laquelle=20il=20doit=20etre=20redirig=C3=A9=20apr?= =?UTF-8?q?es=20une=20connexion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/targeted_user_links_controller.rb | 10 ++++++++++ .../controllers/targeted_user_links_controller_spec.rb | 1 + 2 files changed, 11 insertions(+) diff --git a/app/controllers/targeted_user_links_controller.rb b/app/controllers/targeted_user_links_controller.rb index 3b1058c65..93fdfb927 100644 --- a/app/controllers/targeted_user_links_controller.rb +++ b/app/controllers/targeted_user_links_controller.rb @@ -1,5 +1,7 @@ class TargetedUserLinksController < ApplicationController def show + erase_user_location! + store_user_location! if !user_signed_in? if targeted_user_link.invalid_signed_in_user?(current_user) render else @@ -11,6 +13,14 @@ class TargetedUserLinksController < ApplicationController private + def store_user_location! + store_location_for(:user, request.fullpath) + end + + def erase_user_location! + clear_stored_location_for(:user) + end + def targeted_user_link @targeted_user_link ||= TargetedUserLink.find(params[:id]) end diff --git a/spec/controllers/targeted_user_links_controller_spec.rb b/spec/controllers/targeted_user_links_controller_spec.rb index a0f0de6bf..91bd1c7ee 100644 --- a/spec/controllers/targeted_user_links_controller_spec.rb +++ b/spec/controllers/targeted_user_links_controller_spec.rb @@ -15,6 +15,7 @@ describe TargetedUserLinksController, type: :controller do it 'redirects to expert_avis_url' do expect(response).to redirect_to(expert_avis_path(target_model.procedure, target_model)) + expect(controller.stored_location_for(:user)).to eq(controller.request.path) end end From 1307e7262f3e30481b048bb82dc1cb5b2010ee57 Mon Sep 17 00:00:00 2001 From: Martin Date: Thu, 14 Dec 2023 10:11:54 +0100 Subject: [PATCH 3/3] =?UTF-8?q?amelioration(application=5Fcontroller.roles?= =?UTF-8?q?):=20int=C3=A8gre=20aussi=20le=20role=20d'expert=20aux=20logs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/application_controller.rb | 1 + spec/system/experts/expert_spec.rb | 1 + 2 files changed, 2 insertions(+) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 05291ef1a..03048b045 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -200,6 +200,7 @@ class ApplicationController < ActionController::Base roles = [ current_user, current_instructeur, + current_expert, current_administrateur, current_gestionnaire, current_super_admin diff --git a/spec/system/experts/expert_spec.rb b/spec/system/experts/expert_spec.rb index 4a9e91952..c383161ad 100644 --- a/spec/system/experts/expert_spec.rb +++ b/spec/system/experts/expert_spec.rb @@ -52,6 +52,7 @@ describe 'Inviting an expert:' do expect(page).to have_current_path(new_user_session_path) login_as avis.expert.user, scope: :user sign_in_with(avis.expert.email, 'This is a very complicated password !') + expect(page).to have_content("connecté en tant qu’expert") click_on 'Passer en usager' expect(page).to have_current_path(dossiers_path) end