diff --git a/README.md b/README.md index 138540bc1..68054055f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# demarches-simplifiees.fr (anciennement Téléprocédures Simplifiées) +# demarches-simplifiees.fr ## Context diff --git a/app/controllers/users/carte_controller.rb b/app/controllers/users/carte_controller.rb index f41d55bf2..258299254 100644 --- a/app/controllers/users/carte_controller.rb +++ b/app/controllers/users/carte_controller.rb @@ -12,17 +12,18 @@ class Users::CarteController < UsersController end def save + safe_json_latlngs = clean_json_latlngs(params[:json_latlngs]) dossier = current_user_dossier dossier.quartier_prioritaires.each(&:destroy) dossier.cadastres.each(&:destroy) - if params[:json_latlngs].present? - ModuleApiCartoService.save_qp! dossier, params[:json_latlngs] - ModuleApiCartoService.save_cadastre! dossier, params[:json_latlngs] + if safe_json_latlngs.present? + ModuleApiCartoService.save_qp! dossier, safe_json_latlngs + ModuleApiCartoService.save_cadastre! dossier, safe_json_latlngs end - dossier.update(json_latlngs: params[:json_latlngs]) + dossier.update(json_latlngs: safe_json_latlngs) redirect_to modifier_dossier_path(dossier) end @@ -62,4 +63,18 @@ class Users::CarteController < UsersController api_carto: true } end + + private + + def clean_json_latlngs(json_latlngs) + # a polygon must contain at least 4 points + # https://tools.ietf.org/html/rfc7946#section-3.1.6 + if json_latlngs.present? + multipolygone = JSON.parse(json_latlngs) + multipolygone.reject! { |polygone| polygone.count < 4 } + if multipolygone.present? + multipolygone.to_json + end + end + end end diff --git a/app/controllers/users/dossiers_controller.rb b/app/controllers/users/dossiers_controller.rb index 5c1bed9fc..c67c8818c 100644 --- a/app/controllers/users/dossiers_controller.rb +++ b/app/controllers/users/dossiers_controller.rb @@ -105,7 +105,7 @@ class Users::DossiersController < UsersController update_current_user_siret!(siret) - etablissement_attributes = SIRETService.fetch(siret, @facade.dossier) + etablissement_attributes = SIRETService.fetch(siret, @facade.dossier.procedure_id, @facade.dossier) if etablissement_attributes.present? etablissement_attributes = ActionController::Parameters.new(etablissement_attributes).permit! diff --git a/app/services/siret_service.rb b/app/services/siret_service.rb index 1aa089e01..a037fe2b5 100644 --- a/app/services/siret_service.rb +++ b/app/services/siret_service.rb @@ -1,7 +1,5 @@ class SIRETService - def self.fetch(siret, dossier = nil) - procedure_id = dossier&.procedure_id - + def self.fetch(siret, procedure_id, dossier = nil) etablissement_params = ApiEntreprise::EtablissementAdapter.new(siret, procedure_id).to_params entreprise_params = ApiEntreprise::EntrepriseAdapter.new(siret, procedure_id).to_params diff --git a/app/views/administration_mailer/new_admin_email.text.erb b/app/views/administration_mailer/new_admin_email.text.erb index 0cac8ecfd..5aa89977d 100644 --- a/app/views/administration_mailer/new_admin_email.text.erb +++ b/app/views/administration_mailer/new_admin_email.text.erb @@ -8,4 +8,4 @@ Créateur : <%= @administration.email %> Bonne journée, -L'équipe demarches-simplifiees.fr (anciennement Téléprocédures Simplifiées) +L'équipe demarches-simplifiees.fr diff --git a/app/views/avis_mailer/avis_invitation.html.haml b/app/views/avis_mailer/avis_invitation.html.haml index e769da244..bc8d5ab2f 100644 --- a/app/views/avis_mailer/avis_invitation.html.haml +++ b/app/views/avis_mailer/avis_invitation.html.haml @@ -20,7 +20,7 @@ Bonne journée, %br %br - L'équipe demarches-simplifiees.fr (anciennement Téléprocédures Simplifiées) + L'équipe demarches-simplifiees.fr %br %br %hr diff --git a/app/views/devise/mailer/reset_password_instructions.html.erb b/app/views/devise/mailer/reset_password_instructions.html.erb index 54b42590e..b9a92f9a2 100644 --- a/app/views/devise/mailer/reset_password_instructions.html.erb +++ b/app/views/devise/mailer/reset_password_instructions.html.erb @@ -8,4 +8,4 @@

Bonne journée,

-

L'équipe demarches-simplifiees.fr (anciennement Téléprocédures Simplifiées)

+

L'équipe demarches-simplifiees.fr

diff --git a/app/views/gestionnaire_mailer/new_gestionnaire.text.erb b/app/views/gestionnaire_mailer/new_gestionnaire.text.erb index 0ff6a79b0..b599994c7 100644 --- a/app/views/gestionnaire_mailer/new_gestionnaire.text.erb +++ b/app/views/gestionnaire_mailer/new_gestionnaire.text.erb @@ -8,4 +8,4 @@ Vous venez d'être nommé accompagnateur sur demarches-simplifiees.fr. Pour mém Bonne journée, -L'équipe demarches-simplifiees.fr (anciennement Téléprocédures Simplifiées) +L'équipe demarches-simplifiees.fr diff --git a/app/views/gestionnaire_mailer/send_dossier.text.erb b/app/views/gestionnaire_mailer/send_dossier.text.erb index 7877934e7..74ffc71fa 100644 --- a/app/views/gestionnaire_mailer/send_dossier.text.erb +++ b/app/views/gestionnaire_mailer/send_dossier.text.erb @@ -6,4 +6,4 @@ Bonjour, Bonne journée, -L'équipe demarches-simplifiees.fr (anciennement Téléprocédures Simplifiées) +L'équipe demarches-simplifiees.fr diff --git a/app/views/invite_mailer/invite_guest.text.erb b/app/views/invite_mailer/invite_guest.text.erb index 84a413f5f..40e89a3e6 100644 --- a/app/views/invite_mailer/invite_guest.text.erb +++ b/app/views/invite_mailer/invite_guest.text.erb @@ -8,4 +8,4 @@ Afin de répondre à cette invitation, merci de vous inscrire avec l'adresse ema Bonne journée, -L'équipe demarches-simplifiees.fr (anciennement Téléprocédures Simplifiées) +L'équipe demarches-simplifiees.fr diff --git a/app/views/invite_mailer/invite_user.text.erb b/app/views/invite_mailer/invite_user.text.erb index 8509cdfa2..1e606f854 100644 --- a/app/views/invite_mailer/invite_user.text.erb +++ b/app/views/invite_mailer/invite_user.text.erb @@ -6,4 +6,4 @@ Pour le consulter, merci de suivre ce lien : <%= users_dossiers_invite_url(@invi Bonne journée, -L'équipe demarches-simplifiees.fr (anciennement Téléprocédures Simplifiées) +L'équipe demarches-simplifiees.fr diff --git a/app/views/mails/closed_mail.html.haml b/app/views/mails/closed_mail.html.haml index 923922059..d1d76739a 100644 --- a/app/views/mails/closed_mail.html.haml +++ b/app/views/mails/closed_mail.html.haml @@ -10,7 +10,7 @@ A tout moment, vous pouvez consulter le contenu de vos dossiers et les éventuel Bonne journée, %br %br -L'équipe demarches-simplifiees.fr (anciennement Téléprocédures Simplifiées) +L'équipe demarches-simplifiees.fr %br %br — diff --git a/app/views/mails/initiated_mail.html.haml b/app/views/mails/initiated_mail.html.haml index 42acf865a..3317332d5 100644 --- a/app/views/mails/initiated_mail.html.haml +++ b/app/views/mails/initiated_mail.html.haml @@ -10,7 +10,7 @@ A tout moment, vous pouvez consulter le contenu de vos dossiers et les éventuel Bonne journée, %br %br -L'équipe demarches-simplifiees.fr (anciennement Téléprocédures Simplifiées) +L'équipe demarches-simplifiees.fr %br %br — diff --git a/app/views/mails/received_mail.html.haml b/app/views/mails/received_mail.html.haml index e89dfbb01..ad4bdaf7b 100644 --- a/app/views/mails/received_mail.html.haml +++ b/app/views/mails/received_mail.html.haml @@ -7,7 +7,7 @@ Votre administration vous confirme la bonne réception de votre dossier nº --n Bonne journée, %br %br -L'équipe demarches-simplifiees.fr (anciennement Téléprocédures Simplifiées) +L'équipe demarches-simplifiees.fr %br %br — diff --git a/app/views/mails/refused_mail.html.haml b/app/views/mails/refused_mail.html.haml index 72f12b27e..0a113bacd 100644 --- a/app/views/mails/refused_mail.html.haml +++ b/app/views/mails/refused_mail.html.haml @@ -10,7 +10,7 @@ Pour en savoir plus sur le motif du refus, vous pouvez consulter le contenu de v Bonne journée, %br %br -L'équipe demarches-simplifiees.fr (anciennement Téléprocédures Simplifiées) +L'équipe demarches-simplifiees.fr %br %br — diff --git a/app/views/mails/without_continuation_mail.html.haml b/app/views/mails/without_continuation_mail.html.haml index d983d24e9..f13daa524 100644 --- a/app/views/mails/without_continuation_mail.html.haml +++ b/app/views/mails/without_continuation_mail.html.haml @@ -10,7 +10,7 @@ Pour en savoir plus sur les raisons de ce classement sans suite, vous pouvez con Bonne journée, %br %br -L'équipe demarches-simplifiees.fr (anciennement Téléprocédures Simplifiées) +L'équipe demarches-simplifiees.fr %br %br — diff --git a/app/views/notification_mailer/new_answer.text.erb b/app/views/notification_mailer/new_answer.text.erb index 44e1d249b..5494f79c3 100644 --- a/app/views/notification_mailer/new_answer.text.erb +++ b/app/views/notification_mailer/new_answer.text.erb @@ -6,7 +6,7 @@ Pour le consulter, merci de vous rendre sur <%=users_dossier_recapitulatif_url(d Bonne journée, -L'équipe demarches-simplifiees.fr (anciennement Téléprocédures Simplifiées) +L'équipe demarches-simplifiees.fr — diff --git a/app/views/notification_mailer/send_draft_notification.html.haml b/app/views/notification_mailer/send_draft_notification.html.haml index 4a82784f0..eeb5106ff 100644 --- a/app/views/notification_mailer/send_draft_notification.html.haml +++ b/app/views/notification_mailer/send_draft_notification.html.haml @@ -10,7 +10,7 @@ Vous pouvez retrouver et compléter le brouillon que vous avez créé pour la d Bonne journée, %br %br -L'équipe demarches-simplifiees.fr (anciennement Téléprocédures Simplifiées) +L'équipe demarches-simplifiees.fr %br %br — diff --git a/app/views/welcome_mailer/welcome_email.text.erb b/app/views/welcome_mailer/welcome_email.text.erb index fcf5e79fa..46de521d3 100644 --- a/app/views/welcome_mailer/welcome_email.text.erb +++ b/app/views/welcome_mailer/welcome_email.text.erb @@ -11,4 +11,4 @@ Oubli de mot de passe, pas de problème : Bonne journée, -L'équipe demarches-simplifiees.fr (anciennement Téléprocédures Simplifiées) +L'équipe demarches-simplifiees.fr diff --git a/spec/controllers/users/carte_controller_shared_example.rb b/spec/controllers/users/carte_controller_shared_example.rb index 229d2d3a3..b517ad8c4 100644 --- a/spec/controllers/users/carte_controller_shared_example.rb +++ b/spec/controllers/users/carte_controller_shared_example.rb @@ -59,6 +59,45 @@ shared_examples 'carte_controller_spec' do end describe 'POST #save' do + context 'it cleans json_latlngs' do + let(:dossier) { create(:dossier, state: 'en_construction') } + let(:json_latlngs) { multipolygon.to_json } + + before do + post :save, params: { dossier_id: dossier.id, json_latlngs: json_latlngs } + dossier.reload + end + + context 'when json_latlngs is invalid' do + let(:multipolygon) do + [ + [ + { lat: 1, lng: 1 }, + { lat: 1, lng: 2 }, + { lat: 1, lng: 1 } + ] + ] + end + + it { expect(dossier.json_latlngs).to be_nil } + end + + context 'when json_latlngs is valid' do + let(:multipolygon) do + [ + [ + { lat: 1, lng: 1 }, + { lat: 1, lng: 2 }, + { lat: 2, lng: 2 }, + { lat: 1, lng: 1 } + ] + ] + end + + it { expect(dossier.json_latlngs).to eq(json_latlngs) } + end + end + context 'En train de modifier la localisation' do let(:dossier) { create(:dossier, state: 'en_construction') } before do