From 4ceadc3d28db9b7485c30d2b3b0b5f4557218047 Mon Sep 17 00:00:00 2001 From: mfo Date: Mon, 6 Jan 2025 14:07:11 +0100 Subject: [PATCH] fix(Users::Dossiers#brouillon): should only be accessible for having brouillon state --- app/controllers/users/dossiers_controller.rb | 7 +++++++ spec/controllers/users/dossiers_controller_spec.rb | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/app/controllers/users/dossiers_controller.rb b/app/controllers/users/dossiers_controller.rb index e0b8e4d69..39b4bb2a3 100644 --- a/app/controllers/users/dossiers_controller.rb +++ b/app/controllers/users/dossiers_controller.rb @@ -16,6 +16,7 @@ module Users before_action :ensure_dossier_can_be_updated, only: [:update_identite, :update_siret, :brouillon, :submit_brouillon, :submit_en_construction, :modifier, :update, :champ] before_action :ensure_dossier_can_be_filled, only: [:brouillon, :modifier, :submit_brouillon, :submit_en_construction, :update] before_action :ensure_dossier_can_be_viewed, only: [:show] + before_action :ensure_editing_brouillon, only: [:brouillon] before_action :forbid_closed_submission!, only: [:submit_brouillon] before_action :set_dossier_as_editing_fork, only: [:submit_en_construction] before_action :show_demarche_en_test_banner @@ -461,6 +462,12 @@ module Users end end + def ensure_editing_brouillon + if !dossier.brouillon? + redirect_to modifier_dossier_path(@dossier) + end + end + def page [params[:page].to_i, 1].max end diff --git a/spec/controllers/users/dossiers_controller_spec.rb b/spec/controllers/users/dossiers_controller_spec.rb index cddac2d1f..5ca61db08 100644 --- a/spec/controllers/users/dossiers_controller_spec.rb +++ b/spec/controllers/users/dossiers_controller_spec.rb @@ -371,6 +371,11 @@ describe Users::DossiersController, type: :controller do it { is_expected.to redirect_to(identite_dossier_path(dossier)) } end end + + context 'when the dossier is en_construction' do + let!(:dossier) { create(:dossier, :en_construction, user: user, autorisation_donnees: true) } + it { is_expected.to redirect_to(modifier_dossier_path(dossier)) } + end end describe '#edit' do