diff --git a/app/models/authorization_request/api_entreprise.rb b/app/models/authorization_request/api_entreprise.rb
index 35035e5e8a..1b66209d06 100644
--- a/app/models/authorization_request/api_entreprise.rb
+++ b/app/models/authorization_request/api_entreprise.rb
@@ -2,7 +2,6 @@ class AuthorizationRequest::APIEntreprise < AuthorizationRequest
include AuthorizationExtensions::BasicInfos
include AuthorizationExtensions::PersonalData
include AuthorizationExtensions::CadreJuridique
- include AuthorizationExtensions::GDPRContacts
add_documents :maquette_projet, content_type: ['application/pdf'], size: { less_than: 10.megabytes }
@@ -14,6 +13,7 @@ class AuthorizationRequest::APIEntreprise < AuthorizationRequest
})
%i[
+ delegue_protection_donnees
contact_metier
contact_technique
].each do |contact_kind|
diff --git a/app/views/authorization_request_forms/api_entreprise_through_editor.html.erb b/app/views/authorization_request_forms/api_entreprise_through_editor.html.erb
index 7d312b2b27..f7ec05279f 100644
--- a/app/views/authorization_request_forms/api_entreprise_through_editor.html.erb
+++ b/app/views/authorization_request_forms/api_entreprise_through_editor.html.erb
@@ -5,7 +5,7 @@
- <% %i[responsable_traitement delegue_protection_donnees contact_metier contact_technique].each do |contact_type| %>
+ <% %i[delegue_protection_donnees contact_metier contact_technique].each do |contact_type| %>
<%= render partial: 'authorization_request_forms/shared/contact', locals: { contact_type:, f: } %>
<% end %>
diff --git a/db/migrate/20260918115707_create_bulk_update_for_api_entreprise_on_responsable_traitement.rb b/db/migrate/20260918115707_create_bulk_update_for_api_entreprise_on_responsable_traitement.rb
new file mode 100644
index 0000000000..31248e8d55
--- /dev/null
+++ b/db/migrate/20260918115707_create_bulk_update_for_api_entreprise_on_responsable_traitement.rb
@@ -0,0 +1,41 @@
+class CreateBulkUpdateForAPIEntrepriseOnResponsableTraitement < ActiveRecord::Migration[8.1]
+ PRODUCTION_AUTHOR_ID = 43_809
+
+ def up
+ return if author.nil?
+
+ bulk_update = BulkAuthorizationRequestUpdate.create!(
+ authorization_definition_uid: 'api_entreprise',
+ application_date: Date.current,
+ reason:,
+ )
+
+ AuthorizationRequestEvent.create!(
+ name: 'bulk_update',
+ entity: bulk_update,
+ user: author,
+ )
+ end
+
+ def down; end
+
+ private
+
+ def author
+ @author ||= if Rails.env.production?
+ User.find(PRODUCTION_AUTHOR_ID)
+ else
+ User.first
+ end
+ end
+
+ def reason
+ <<~REASON
+ Le responsable de traitement n’est dorénavant plus nécessaire pour l’obtention d’une habilitation à API Entreprise. Les informations déjà renseignées sont conservées mais ne sont plus affichées ni utilisées.
+
+ Le contact métier de votre habilitation reste le référent pour les questions relatives aux aspects métiers de votre service exploitant API Entreprise.
+
+ Ces changements sont effectifs à partir du %{humanized_application_date}.
+ REASON
+ end
+end
diff --git a/features/habilitation_sur_une_page.feature b/features/habilitation_sur_une_page.feature
index daccd0b85a..e59b289901 100644
--- a/features/habilitation_sur_une_page.feature
+++ b/features/habilitation_sur_une_page.feature
@@ -92,7 +92,7 @@ Fonctionnalité: Interactions sur une demande d'habilitation simple (sur une seu
Scénario: Je démarre une demande avec un contact à remplir ne nécessitant pas un email nominatif
Quand je veux remplir une demande pour "API Entreprise" via le formulaire "Conformité titulaires de marchés" de l'éditeur "Approval"
Et que je clique sur "Débuter ma demande"
- Et que je remplis les informations du contact "Responsable de traitement" avec :
+ Et que je remplis les informations du contact "Délégué à la protection des données" avec :
| Email |
| mairie@gouv.fr |
Alors la page ne contient pas "doit être un email nominatif"
diff --git a/features/instructeurs/gestion_des_formulaires/gestion_des_emails.feature b/features/instructeurs/gestion_des_formulaires/gestion_des_emails.feature
index db96fd0d51..d747978ad6 100644
--- a/features/instructeurs/gestion_des_formulaires/gestion_des_emails.feature
+++ b/features/instructeurs/gestion_des_formulaires/gestion_des_emails.feature
@@ -40,4 +40,4 @@ Fonctionnalité: Gestion des emails automatiques d'un formulaire
Scénario: Le nombre d’emails automatiques est affiché sur le détail du formulaire
Quand je me rends sur le formulaire "API Entreprise"
- Alors la page contient "4 emails automatiques"
+ Alors la page contient "3 emails automatiques"
diff --git a/features/instructeurs/historique_habilitation.feature b/features/instructeurs/historique_habilitation.feature
index e5584dbd0f..7c69efb50f 100644
--- a/features/instructeurs/historique_habilitation.feature
+++ b/features/instructeurs/historique_habilitation.feature
@@ -56,11 +56,6 @@ Fonctionnalité: Instruction: historique habilitation
Quand il y a 1 demande d'habilitation "Solution Portail des aides" en brouillon
Et que cette demande a été modifiée avec les informations suivantes :
| champ | nouvelle valeur |
- | responsable_traitement_family_name | Dupont |
- | responsable_traitement_given_name | Jacques |
- | responsable_traitement_email | responsable_traitement@test.fr |
- | responsable_traitement_job_title | Responsable traitement |
- | responsable_traitement_phone_number | 0836656565 |
| delegue_protection_donnees_family_name | Dupond |
| delegue_protection_donnees_given_name | Jean |
| delegue_protection_donnees_email | delegue_protection_donnees@test.fr |
@@ -78,11 +73,6 @@ Fonctionnalité: Instruction: historique habilitation
Et que cette demande a été modifiée avec les informations suivantes :
| champ | nouvelle valeur |
| contact_technique_email | tech@test.fr |
- | responsable_traitement_family_name | Dupont |
- | responsable_traitement_given_name | Jacques |
- | responsable_traitement_email | responsable_traitement@test.fr |
- | responsable_traitement_job_title | Responsable traitement |
- | responsable_traitement_phone_number | 0836656565 |
| delegue_protection_donnees_family_name | Dupond |
| delegue_protection_donnees_given_name | Jean |
| delegue_protection_donnees_email | delegue_protection_donnees@test.fr |
diff --git a/features/modification_depuis_resume_habilitation.feature b/features/modification_depuis_resume_habilitation.feature
index a49cfd1284..83a2695c1d 100644
--- a/features/modification_depuis_resume_habilitation.feature
+++ b/features/modification_depuis_resume_habilitation.feature
@@ -7,7 +7,7 @@ Fonctionnalité: Modifications d'un formulaire depuis sa page de résumé
Sachant que je suis un demandeur
Et que je me connecte
Et que je me rends sur une demande d'habilitation "Solution Portail des aides" en brouillon
- Et que je renseigne les informations des contacts RGPD
+ Et que je renseigne les informations du délégué à la protection des données
Et que je clique sur "Continuer vers le résumé"
Scénario: Les blocs fixes n'ont pas de bouton modifier
@@ -27,7 +27,7 @@ Fonctionnalité: Modifications d'un formulaire depuis sa page de résumé
@javascript
Scénario: Modification avec des données valides
Quand je clique sur "Modifier" dans le bloc de résumé "Les personnes impliquées"
- Et que je remplis les informations du contact "Responsable de traitement" avec :
+ Et que je remplis les informations du contact "Délégué à la protection des données" avec :
| Nom | Prénom | Email | Téléphone | Fonction |
| Nouveau | Louis | nouveau.louis@gouv.fr | 0836656560 | Directeur d'exploitation |
Et que je clique sur "Enregistrer les modifications"
@@ -35,7 +35,7 @@ Fonctionnalité: Modifications d'un formulaire depuis sa page de résumé
Scénario: Modification avec des données invalides
Quand je clique sur "Modifier" dans le bloc de résumé "Les personnes impliquées"
- Et que je remplis les informations du contact "Responsable de traitement" avec :
+ Et que je remplis les informations du contact "Délégué à la protection des données" avec :
| Nom | Prénom | Email | Téléphone | Fonction |
| | Louis | nouveau.louis@gouv.fr | 0836656560 | Directeur d'exploitation |
Et que je clique sur "Enregistrer les modifications"
@@ -45,6 +45,6 @@ Fonctionnalité: Modifications d'un formulaire depuis sa page de résumé
Scénario: Tentative de sauvegarde sans modification
Quand je clique sur "Modifier" dans le bloc de résumé "Les personnes impliquées"
Alors je peux voir le bouton "Enregistrer les modifications" grisé et désactivé
- Et que je remplis "Fonction du responsable de traitement" avec "Directeur d'exploitation"
+ Et que je remplis "Fonction du délégué à la protection des données" avec "Directeur d'exploitation"
Et que je clique sur "Enregistrer les modifications"
Alors la page contient "Vérifiez le récapitulatif de votre demande"
diff --git a/features/reouverture_habilitation.feature b/features/reouverture_habilitation.feature
index 0443a6527b..f00d9100a3 100644
--- a/features/reouverture_habilitation.feature
+++ b/features/reouverture_habilitation.feature
@@ -85,7 +85,7 @@ Fonctionnalité: Réouverture d'une habilitation validée
Alors il y a un bouton "Annuler ma demande de modification"
Et il n'y a pas de bouton "Envoyer ma demande de modification"
Quand je clique sur "Modifier" dans le bloc de résumé "Les personnes impliquées"
- Et que je remplis les informations du contact "Responsable de traitement" avec :
+ Et que je remplis les informations du contact "Délégué à la protection des données" avec :
| Nom | Prénom | Email | Téléphone | Fonction |
|Jean | Louis | nouveau.louis@gouv.fr | 0836656560 | Directeur associé d'exploitation |
Et que je clique sur "Enregistrer les modifications"
diff --git a/features/soumission_demande_scan_antivirus.feature b/features/soumission_demande_scan_antivirus.feature
index 9fa4c1cb8f..b84cdd976c 100644
--- a/features/soumission_demande_scan_antivirus.feature
+++ b/features/soumission_demande_scan_antivirus.feature
@@ -24,7 +24,7 @@ Fonctionnalité: Soumission d'une demande d'habilitation API Entreprise
* je renseigne les infos concernant les données personnelles
* je clique sur "Suivant"
- * je renseigne les informations des contacts RGPD
+ * je renseigne les informations du délégué à la protection des données
* je renseigne les informations du contact métier
* je renseigne les informations du contact technique
* je clique sur "Suivant"
diff --git a/spec/interactors/deliver_gdpr_contacts_mails_spec.rb b/spec/interactors/deliver_gdpr_contacts_mails_spec.rb
index 030be4dec2..3651778612 100644
--- a/spec/interactors/deliver_gdpr_contacts_mails_spec.rb
+++ b/spec/interactors/deliver_gdpr_contacts_mails_spec.rb
@@ -13,7 +13,7 @@
end
context 'when all GDPR contacts exist on authorization request' do
- let(:authorization_request) { create(:authorization_request, :api_entreprise, fill_all_attributes: true) }
+ let(:authorization_request) { create(:authorization_request, :api_scolarite, fill_all_attributes: true) }
it 'delivers notification emails to these contacts' do
expect { subject }.to have_enqueued_mail(GDPRContactMailer, :responsable_traitement)
diff --git a/spec/notifiers/definition_automated_emails.yaml b/spec/notifiers/definition_automated_emails.yaml
index 522b80611a..807aa5749a 100644
--- a/spec/notifiers/definition_automated_emails.yaml
+++ b/spec/notifiers/definition_automated_emails.yaml
@@ -179,7 +179,6 @@ authorization_definitions:
- event_name: approve
emails:
- GDPRContactMailer#delegue_protection_donnees
- - GDPRContactMailer#responsable_traitement
- definition_id: api_ficoba
events: *with_gdpr_and_dgfip
- definition_id: api_ficoba_sandbox
diff --git a/spec/organizers/create_authorization_request_spec.rb b/spec/organizers/create_authorization_request_spec.rb
index 17e46f5808..1ab543d2a3 100644
--- a/spec/organizers/create_authorization_request_spec.rb
+++ b/spec/organizers/create_authorization_request_spec.rb
@@ -61,7 +61,7 @@
let(:authorization_request_params) do
ActionController::Parameters.new(
invalid: 'invalid',
- responsable_traitement_family_name: 'New Dupont',
+ delegue_protection_donnees_family_name: 'New Dupont',
)
end
@@ -74,7 +74,7 @@
expect(authorization_request.scopes).to be_present
expect(authorization_request.scopes).to include('open_data_unites_legales_etablissements_insee')
- expect(authorization_request.responsable_traitement_family_name).to eq('New Dupont')
+ expect(authorization_request.delegue_protection_donnees_family_name).to eq('New Dupont')
end
end
@@ -83,7 +83,7 @@
let(:authorization_request_params) do
ActionController::Parameters.new(
invalid: 'invalid',
- responsable_traitement_family_name: 'New Dupont',
+ delegue_protection_donnees_family_name: 'New Dupont',
)
end
@@ -97,7 +97,7 @@
expect(authorization_request.scopes).to be_present
expect(authorization_request.scopes).to include('open_data_unites_legales_etablissements_insee')
expect(authorization_request.scopes).to include('unites_legales_etablissements_insee')
- expect(authorization_request.responsable_traitement_family_name).to eq('New Dupont')
+ expect(authorization_request.delegue_protection_donnees_family_name).to eq('New Dupont')
end
end
@@ -106,7 +106,7 @@
let(:authorization_request_params) do
ActionController::Parameters.new(
invalid: 'invalid',
- responsable_traitement_family_name: 'New Dupont',
+ delegue_protection_donnees_family_name: 'New Dupont',
)
end
@@ -117,7 +117,7 @@
authorization_request = AuthorizationRequest.last
- expect(authorization_request.responsable_traitement_family_name).to eq('New Dupont')
+ expect(authorization_request.delegue_protection_donnees_family_name).to eq('New Dupont')
expect(authorization_request.contact_technique_email).to eq('contact-mgdis@yopmail.com')
end
end
diff --git a/spec/queries/authorization_requests_mentions_query_spec.rb b/spec/queries/authorization_requests_mentions_query_spec.rb
index 3f014ba8ae..8289fa8edc 100644
--- a/spec/queries/authorization_requests_mentions_query_spec.rb
+++ b/spec/queries/authorization_requests_mentions_query_spec.rb
@@ -6,7 +6,7 @@
let(:relation) { AuthorizationRequest.all }
let!(:valid_authorization_request) { create(:authorization_request, :api_entreprise, contact_metier_email: user.email) }
- let!(:another_valid_authorization_request) { create(:authorization_request, :api_entreprise, responsable_traitement_email: user.email) }
+ let!(:another_valid_authorization_request) { create(:authorization_request, :api_entreprise, delegue_protection_donnees_email: user.email) }
let!(:another_valid_authorization_request_with_uppercase_email) { create(:authorization_request, :api_entreprise) }
let!(:invalid_authorization_request) { create(:authorization_request, :api_entreprise) }
diff --git a/spec/queries/authorizations_mentions_query_spec.rb b/spec/queries/authorizations_mentions_query_spec.rb
index b9a585df38..ce81a74897 100644
--- a/spec/queries/authorizations_mentions_query_spec.rb
+++ b/spec/queries/authorizations_mentions_query_spec.rb
@@ -6,7 +6,7 @@
let(:relation) { Authorization.all }
let!(:valid_authorization_request) { create(:authorization_request, :api_entreprise, contact_metier_email: user.email) }
- let!(:another_valid_authorization_request) { create(:authorization_request, :api_entreprise, responsable_traitement_email: user.email) }
+ let!(:another_valid_authorization_request) { create(:authorization_request, :api_entreprise, delegue_protection_donnees_email: user.email) }
let!(:invalid_authorization_request) { create(:authorization_request, :api_entreprise) }
let!(:valid_authorization) { create(:authorization, request: valid_authorization_request) }