Skip to content

Commit 5427d65

Browse files
authored
Merge pull request #12986 from demarche-numerique/fix/scope-dossier-help-to-current-user
Tech: restreindre la recherche du dossier pour le menu d'aide à l'utilisateur courant
2 parents 542a1a8 + 30c11cf commit 5427d65

2 files changed

Lines changed: 25 additions & 3 deletions

File tree

app/controllers/users/dossiers_controller.rb

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -484,8 +484,14 @@ def new
484484
end
485485

486486
def dossier_for_help
487+
return @dossier if @dossier
488+
487489
dossier_id = params[:id] || params[:dossier_id]
488-
@dossier || (dossier_id.present? && Dossier.visible_by_user.find_by(id: dossier_id.to_i))
490+
return nil if dossier_id.blank?
491+
492+
id = dossier_id.to_i
493+
current_user.dossiers.visible_by_user.find_by(id:) ||
494+
current_user.dossiers_invites.visible_by_user.find_by(id:)
489495
end
490496

491497
def transferer

spec/controllers/users/dossiers_controller_spec.rb

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2089,21 +2089,37 @@
20892089

20902090
subject { controller.dossier_for_help }
20912091

2092-
context 'when the id matches an existing dossier' do
2092+
context 'when the id matches a dossier owned by the current user' do
2093+
let(:dossier) { create(:dossier, user:) }
2094+
let(:dossier_id) { dossier.id }
2095+
2096+
it { is_expected.to eq dossier }
2097+
end
2098+
2099+
context 'when the id matches a dossier the current user was invited to' do
20932100
let(:dossier) { create(:dossier) }
20942101
let(:dossier_id) { dossier.id }
2102+
before { create(:invite, dossier:, user:) }
20952103

20962104
it { is_expected.to eq dossier }
20972105
end
20982106

2107+
context 'when the id matches a dossier from another user' do
2108+
let(:other_user) { create(:user) }
2109+
let(:other_dossier) { create(:dossier, user: other_user) }
2110+
let(:dossier_id) { other_dossier.id }
2111+
2112+
it { is_expected.to be nil }
2113+
end
2114+
20992115
context 'when the id doesn’t match an existing dossier' do
21002116
let(:dossier_id) { 9999999 }
21012117
it { is_expected.to be nil }
21022118
end
21032119

21042120
context 'when the id is empty' do
21052121
let(:dossier_id) { nil }
2106-
it { is_expected.to be_falsy }
2122+
it { is_expected.to be nil }
21072123
end
21082124
end
21092125

0 commit comments

Comments
 (0)