Analyse d'Impact relative à la Protection des Données

Instruction du dossier

{{ object.conformiteTraitement.traitement.name }}

{{ object.conformiteTraitement.traitement.collectivity.name }}

Responsable du traitement
{{ object.conformiteTraitement.traitement.collectivity.legalManager.civility|dictionary('user_contact_civility') }} {{ object.conformiteTraitement.traitement.collectivity.legalManager.firstName }} {{ object.conformiteTraitement.traitement.collectivity.legalManager.lastName }}
Référent RGPD
{{ object.conformiteTraitement.traitement.collectivity.referent.civility|dictionary('user_contact_civility') }} {{ object.conformiteTraitement.traitement.collectivity.referent.firstName }} {{ object.conformiteTraitement.traitement.collectivity.referent.lastName }}
Délégué à la Protection des Données
{% if object.conformiteTraitement.traitement.collectivity.differentDpo %} {{ object.conformiteTraitement.traitement.collectivity.dpo.civility|dictionary('user_contact_civility') }} {{ object.conformiteTraitement.traitement.collectivity.dpo.firstName }} {{ object.conformiteTraitement.traitement.collectivity.dpo.lastName }} {% else %} {{ default_dpo_civility|dictionary('user_contact_civility') }} {{ default_dpo_firstName }} {{ default_dpo_lastName }}
{{ default_dpo_address_street }}
{{ default_dpo_address_zip_code }} {{ default_dpo_address_city}} {% endif %}
Date de validation de l’AIPD : Signature du Responsable du Traitement
{{ (object.conformiteTraitement.analyseImpacts|first).dateValidation|date('d/m/Y') }}

Sommaire

1. Préambule

Le présent document contient tous les éléments nécessaires pour le Responsable de Traitement (RT), le Référent RGPD (RR) et le Délégué à la Protection des Données (DPD) pour mener à bien une Analyse d'Impact relative à la Protection des Données (le sigle AIPD sera utilisé dans la suite de ce document) conforme aux attentes de la CNIL.

Il est possible de retrouver l'ensemble des éléments produits dans ce document dans le logiciel Madis.

1.1 Méthode d'une Analyse d'Impact relative à la Protection des Données

La démarche pour réaliser une analyse d'impact comprend quatre étapes :

  1. Délimiter et décrire le contexte du ou des traitements considérés ;
  2. Analyser les mesures garantissant le respect des principes fondamentaux : la proportionnalité et la nécessité du traitement, et la protection des droits des personnes concernées ;
  3. Apprécier les risques sur la vie privée liés à la sécurité des données et vérifier qu’ils sont convenablement traités ;
  4. Formaliser la validation de l’AIPD au regard des éléments précédents ou bien décider de réviser les étapes précédentes.
Cycle d'une AIPD : 1 contexte, 2 principes fondamentaux, 3 risques, 4 validation

Il s'agit d'un processus d'amélioration continue. Il requiert donc parfois plusieurs itérations pour parvenir à un dispositif de protection de la vie privée acceptable. Il requiert en outre une surveillance des évolutions dans le temps (du contexte, des mesures, des risques, etc.), par exemple tous les ans, et des mises à jour dès qu'une évolution significative a lieu.

La démarche devrait être employée dès la conception d'un nouveau traitement de données à caractère personnel. En effet, une application en amont permet de déterminer les mesures nécessaires et suffisantes, et donc d'optimiser les coûts. A contrario, une application tardive, alors que le système est déjà créé et les mesures en place, peut remettre en question les choix effectués.

1.2 Conformité d’une Analyse d’Impact relative à la Protection des Données

L’objectif est d’obtenir la conformité du traitement grâce à l’AIPD.

Respect des principes et droits fondamentaux + Gestion des risques liés à la sécurité des données = Conformité

2. Étude du contexte

Ce chapitre a pour objectif de fournir une vision claire de la structure et du traitement de données personnelles considéré.

{% set critere = object.criterePrincipeFondamentalByCode('contexte_traitement') %} {% if critere and critere.reponse != 'non_renseigne' %} {% if critere.fichier %} {% endif %} {% endif %} {% set critere = object.criterePrincipeFondamentalByCode('portee_traitement') %} {% if critere and critere.reponse != 'non_renseigne' %} {% if critere.fichier %} {% endif %} {% endif %} {% set critere = object.criterePrincipeFondamentalByCode('identification_biens') %} {% if critere and critere.reponse != 'non_renseigne' %} {% if critere.fichier %} {% endif %} {% endif %} {% set critere = object.criterePrincipeFondamentalByCode('description_fonctionnelle') %} {% if critere and critere.reponse != 'non_renseigne' %} {% if critere.fichier %} {% endif %} {% endif %} {% set critere = object.criterePrincipeFondamentalByCode('conformite_code') %} {% if critere and critere.reponse != 'non_renseigne' %} {% if critere.fichier %} {% endif %} {% endif %}
Nature du traitement {{ object.conformiteTraitement.traitement.name }}
{{ critere.labelLivrable }} Conformité : {% if critere.reponse == 'conforme' %} {{ critere.texteConformite }} {% elseif critere.reponse == 'non_conforme' %} {{ critere.texteNonConformite }} {% elseif critere.reponse == 'non_applicable' %} {{ critere.texteNonApplicable }} {% endif %}
{% if critere.justification is not null %} Justification : {{ critere.justification }}
{% endif %}
Contexte du traitement {{ critere.label }} - {{ critere.reponse|dictionary('reponse_critere_fondamental') }}
{{ critere.labelLivrable }} Conformité : {% if critere.reponse == 'conforme' %} {{ critere.texteConformite }} {% elseif critere.reponse == 'non_conforme' %} {{ critere.texteNonConformite }} {% elseif critere.reponse == 'non_applicable' %} {{ critere.texteNonApplicable }} {% endif %}
{% if critere.justification is not null %} Justification : {{ critere.justification }}
{% endif %}
Contexte du traitement {{ critere.label }} - {{ critere.reponse|dictionary('reponse_critere_fondamental') }}
Finalité(s) du traitement {{ object.conformiteTraitement.traitement.goal }}
Données à caractère personnel {% for category in object.conformiteTraitement.traitement.dataCategories %} {{ category }}
{% endfor %} {{ object.conformiteTraitement.traitement.dataCategoryOther }}
Destinataires {{ object.conformiteTraitement.traitement.recipientCategory }} {% for contractor in object.conformiteTraitement.traitement.contractors %}
{{ contractor }} {% endfor %}
Durée de conservation {% for duration in object.conformiteTraitement.traitement.shelfLifes %} {{ duration.name }} - {{ duration.duration }} - {{ duration.ultimateFate|dictionary('registry_treatment_ultimate_fate') }}
{% endfor %}
{{ critere.labelLivrable }} Conformité : {% if critere.reponse == 'conforme' %} {{ critere.texteConformite }} {% elseif critere.reponse == 'non_conforme' %} {{ critere.texteNonConformite }} {% elseif critere.reponse == 'non_applicable' %} {{ critere.texteNonApplicable }} {% endif %}
{% if critere.justification is not null %} Justification : {{ critere.justification }}
{% endif %}
Contexte du traitement {{ critere.label }} - {{ critere.reponse|dictionary('reponse_critere_fondamental') }}
{{ critere.labelLivrable }} Conformité : {% if critere.reponse == 'conforme' %} {{ critere.texteConformite }} {% elseif critere.reponse == 'non_conforme' %} {{ critere.texteNonConformite }} {% elseif critere.reponse == 'non_applicable' %} {{ critere.texteNonApplicable }} {% endif %}
{% if critere.justification is not null %} Justification : {{ critere.justification }}
{% endif %}
Contexte du traitement {{ critere.label }} - {{ critere.reponse|dictionary('reponse_critere_fondamental') }}
{{ critere.labelLivrable }} Conformité : {% if critere.reponse == 'conforme' %} {{ critere.texteConformite }} {% elseif critere.reponse == 'non_conforme' %} {{ critere.texteNonConformite }} {% elseif critere.reponse == 'non_applicable' %} {{ critere.texteNonApplicable }} {% endif %}
{% if critere.justification is not null %} Justification : {{ critere.justification }}
{% endif %}
Contexte du traitement {{ critere.label }} - {{ critere.reponse|dictionary('reponse_critere_fondamental') }}

3. Études des principes fondamentaux

Ce chapitre a pour objectif de s’assurer que le dispositif relatif aux principes de protection de la vie privée est conforme.

{% for critere in object.criterePrincipeFondamentaux %} {% endfor %}
Description Conformité
{{ critere.labelLivrable }} {{ getCritereLabel(critere)|raw }}
{% for questionConformite in object.questionConformites|sort((a, b) => a.position >= b.position) %} {% set reponse = object.conformiteTraitement.getReponseOfName(questionConformite.question) %} {% if reponse and reponse.conforme %} {% else %} {% if reponse and reponse.actionProtections|length > 0 %} {% else%} {% endif %} {% endif %} {% endfor %}
Principes fondamentaux Conformité
{{ questionConformite.question }} {% if questionConformite.justificatif is not null %}
Justification : {{ questionConformite.justificatif }}
{% endif %} {% if reponse and (reponse.actionProtections is not null) and (reponse.actionProtections|length > 0) %}
Actions associées :
    {% for action in reponse.actionProtections %}
  • {{action.name}}
  • {% endfor %}
{% endif %}
Conforme Non-conforme mineure Non-conforme majeure

Le graphique ci-dessous indique les points d’amélioration nécessaires au respect des principes fondamentaux du règlement.

4. Études des risques liés à la sécurité des données

Ce chapitre a pour objectifs d'obtenir une bonne connaissance des mesures contribuant à la sécurité et d'apprécier les risques.

4.1 Évaluation des risques sur les droits et les libertés des personnes concernées

Le niveau d'un risque est estimé en termes de gravité et de vraisemblance :

Gravité + Vraisemblance = Niveau de risque
Niveaux Descriptions génériques de l'échelle de gravité
Maximale Les personnes concernées pourraient connaître des conséquences significatives, voire irrémédiables, qu'elles pourraient ne pas surmonter
Importante Les personnes concernées pourraient connaître des conséquences significatives, qu'elles devraient pouvoir surmonter, mais avec des difficultés réelles et significatives
Limitée Les personnes concernées pourraient connaître des désagréments significatifs, qu'elles pourront surmonter malgré quelques difficultés
Négligeable Les personnes concernées ne seront pas impactés ou pourraient connaître quelques désagréments, qu'elles surmonteront sans difficulté
Niveaux Descriptions génériques de l'échelle de vraisemblance
Maximale Il semble extrêmement facile pour les sources des risques retenues de réaliser la menace en s'appuyant sur les caractéristiques des supports (ex: vol de supports papier stockés dans le hall public de la structure).
Importante Il semble possible pour les sources de risques retenues de réaliser la menace en s'appuyant sur les caractéristiques des supports (ex: vol de supports papiers stockés dans les bureaux d'une structure dont l'accès est contrôlé par une personne à l'accueil).
Limitée Il semble difficile pour les sources de risques retenues de réaliser la menace en s'appuyant sur les caractéristiques des supports (ex: vol de supports papiers stockés dans un local de la structure dont l'accès est contrôlé par badge).
Négligeable Il ne semble pas possible que les sources de risques retenues puissent réaliser la menace en s'appuyant sur les caractéristiques des supports (ex: vol de supports papiers stockés dans un local de la structure dont l'accès est contrôlé par badge et code d'accès).

4.2 Évaluation de l'impact et matrice de décision

Le tableau ci-dessous identifie des scénarios de menaces pour lesquels une évaluation est réalisée sur la vraisemblance (risques d’occurrence) et la gravité (conséquences en cas d’évènement). D, I et C représentent les critères de classification de l'information : Disponibilité, Intégrité, Confidentialité.

{% for scenario in object.scenarioMenaces|sort((a,b) => a.nom <=> b.nom) %} {% endfor %}
D I C Scénario de menace Vraisemblance Gravité Impact potentiel
{% if scenario.isDisponibilite %}X{% endif %} {% if scenario.isIntegrite %}X{% endif %} {% if scenario.isConfidentialite %}X{% endif %} {{ scenario.nom }} {% if scenario.precisions is not null %}
Précision : {{ scenario.precisions }}
{% endif %}
{{ scenario.vraisemblance|dictionary('vraisemblance_gravite') }} {{ scenario.gravite|dictionary('vraisemblance_gravite') }} {{ getScenarioMenaceImpactPotentielLabel(scenario)|raw }}

La CNIL préconise d’accepter les risques uniquement lorsque l’impact est négligeable. Dans les autres cas, il faudra apporter des mesures de protection supplémentaires pour venir corriger les anomalies identifiées. Dans le cas où le risque est maximal et que les mesures ne sont pas jugées suffisantes, il conviendra de solliciter l’avis de la CNIL.

La matrice de décision ci-dessous vous informe du comportement attendu par la CNIL selon le niveau d'impact identifié :

4.3 Mesure(s) de réduction des risques mise(s) en place

Le radar ci-dessous présente les mesures déjà mises en place dans la structure pour réduire l’ensemble des risques identifiés.

Mesures de protection
{% set mesures = [] %} {% for scenario in object.scenarioMenaces %} {% for mesure in scenario.mesuresProtections %} {% if mesure not in mesures %} {% set mesures = mesures|merge([mesure])%} {% endif%} {% endfor %} {% endfor %} {% for element in mesures|sort((a, b) => a.labelLivrable >= b.labelLivrable) %} {% if element.reponse is same as "satisfaisant" %} {% else %} {% endif %} {% endfor %}
Mesure Avis sur les mesures existantes Évaluation Préconisations
{{ element.labelLivrable }} {{ element.detail }} {% if element.reponse in reponsedictionary(object)|keys %} {{ element.reponse|reponsedictionary(object) }} {% else %} {{ element.reponse }} {% endif %} {{ element.phrasePreconisation }}

4.4 Risques résiduels

Les risques résiduels correspondent aux risques non traités à ce jour ou pour lesquels des préconisations ont été formulées (voir actions conseillées par le DPD).

{{ 'aipd.analyse_impact.tab.gestion_risques'|trans }}
{% set mesureProtectionNotNegligeable = [] %} {% for scenario in object.scenarioMenaces|sort((a, b) => a.nom >= b.nom) %} {% if isScenarioMenaceImpactResiduelImpactNotNegligeable(scenario) %} {% for mesure in scenario.mesuresProtections %} {% if mesure not in mesureProtectionNotNegligeable %} {% set mesureProtectionNotNegligeable = mesureProtectionNotNegligeable|merge([mesure]) %} {% endif %} {% endfor %} {% endif %} {% endfor %}
{{ 'aipd.modele_analyse.label.scenario'|trans }} {{ 'aipd.analyse_impact.label.impact_potentiel'|trans }} {{ 'aipd.analyse_impact.label.impact_residuel'|trans }}
{{ scenario.nom }} {{ getScenarioMenaceImpactPotentielLabel(scenario)|raw }} {{ getScenarioMenaceImpactResiduelLabel(scenario)|raw }}

Le graphique ci-dessous représente les risques résiduels sur la disponibilité, l'intégrité et la confidentialité des données à caractère personnel.

Le plan d’actions ci-après présente les mesures de sécurité liées aux seuls scénarios de menaces dont l’impact est refusé.

Plan d'actions
{% for mesure in mesureProtectionNotNegligeable|sort((a, b) => a.labelLivrable >= b.labelLivrable) %} {% endfor %}
Mesure Préconisations
{{ mesure.labelLivrable }} {{ mesure.phrasePreconisation }}

5. Validation de l'AIPD

Ce chapitre a pour objectifs de permettre la prise de décision visant à accepter ou non l'AIPD au regard des résultats de l'étude.

Avis des personnes consultées

{% if object.avisReferent.date is not null %} {% endif %} {% if object.avisReferent.detail is not null %} {% endif %} {% if object.avisDpd.date is not null %} {% endif %} {% if object.avisDpd.detail is not null %} {% endif %} {% if object.avisRepresentant.date is not null %} {% endif %} {% if object.avisRepresentant.detail is not null %} {% endif %} {% if object.avisResponsable.date is not null %} {% endif %} {% if object.avisResponsable.detail is not null %} {% endif %}
Avis du référent RGPD {{ object.avisReferent.reponse|dictionary('reponse_avis') }}
{{ object.avisReferent.date|date('d/m/Y') }}
{{ object.avisReferent.detail }}
Signature :
Avis du délégué à la protection des données {{ object.avisDpd.reponse|dictionary('reponse_avis') }}
{{ object.avisDpd.date|date('d/m/Y') }}
{{ object.avisDpd.detail }}
Signature :
Avis des représentants des personnes concernées {{ object.avisRepresentant.reponse|dictionary('reponse_avis') }}
{{ object.avisRepresentant.date|date('d/m/Y') }}
{{ object.avisRepresentant.detail }}
Signature :
Décision du responsable de traitement {{ object.avisResponsable.reponse|dictionary('reponse_avis') }}
{{ object.avisResponsable.date|date('d/m/Y') }}
{{ object.avisResponsable.detail }}
Signature :
{#//////////////////////////////////////#} {#/////////////// Annexes //////////////#} {#//////////////////////////////////////#}

6. Annexes

6.1 Glossaire

Donnée à caractère personnel
Toute information se rapportant à une personne physique identifiée ou identifiable (ci-après dénommée "personne concernée"); est réputée pour être une "personne physique identifiable" une personne physique qui peut être identifiée, directement ou indirectement, notamment par référence à un identifiant, tel qu'un nom, un numéro d'identification, des données de localisation, un identifiant en ligne, ou à un ou plusieurs éléments spécifiques propres à son identité physique, physiologique, génétique, psychique, économique, culturelle ou sociale.
Événement redouté
Violation potentielle de données pouvant mener à des impacts sur la vie privée des personnes concernées.
Gravité
Estimation de l'ampleur des impacts potentiels sur la vie privée des personnes concernées.
Menace
Mode opératoire composé d'une ou plusieurs actions unitaires sur des supports de données.
Mesure
Action à entreprendre.
Personnes concernées
Personnes auxquelles se rapportent les données qui font l'objet du traitement.
Responsable de traitement
La personne physique ou morale, l'autorité publique, le service ou une autre structure qui, seul ou conjointement avec d'autres, détermine les finalités et les moyens du traitement ; lorsque les finalités et les moyens de ce traitement sont déterminés par le droit de l'Union ou le droit d'un État membre, le responsable du traitement peut être désigné ou les traitements spécifiques applicables à sa désignation peuvent être prévus par le droit de l'Union ou par le droit d'un État membre.
Traitement de données à caractère personnel
Tout opération ou tout ensemble d'opérations effectuées ou non à l'aide de procédés automatisés et appliqués à des données ou des ensembles de données à caractère personnel, tel que la collecte, l'enregistrement, la structure, la structuration, la conservation, l'adaptation ou la modification, l'extraction, la consultation, l'utilisation, la communication par transmission, la diffusion ou tout autre forme de mise à disposition, le rapprochement ou l'interconnexion, la limitation, l'effacement ou la destruction.
Vraisemblance
Estimation de la possibilité qu'un risque se réalise.

6.2 Références

CNIL / CEPD

ANSSI

CLUSIF

ISO

6.3 Fiche de traitement

{% set traitement = object.conformiteTraitement.traitement %} {# DPO Statut #}

{{ 'registry.treatment.tab.statut_dpo'|trans }}

{% if traitement.dpoMessage is not null %} {% endif %}
{# GENERAL #}

{{ 'global.tab.general'|trans }}

{% if traitement.collectivity.isServicesEnabled %} {% endif %} {% if traitement.author != "processing_manager" %} {% endif %} {% if traitement.legalBasis == 'consent' %} {% endif %}
{{ 'registry.treatment.label.name'|trans }} {{ traitement.name }}
{{ 'registry.label.service'|trans }} {{ traitement.service }}
{{ 'registry.treatment.label.author'|trans }} {% if traitement.author is not null %} {{ traitement.author|dictionary('registry_treatment_author') }} {% endif %}
{{ 'registry.treatment.label.coordonnees_responsable_traitement'|trans }} {{ traitement.coordonneesResponsableTraitement|nl2br }}
{{ 'registry.treatment.label.manager'|trans }} {{ traitement.manager }}
{{ 'registry.treatment.label.goal'|trans }} {{ traitement.goal|nl2br }}
{{ 'registry.treatment.label.legal_basis'|trans }} {{ traitement.legalBasis|dictionary('registry_treatment_legal_basis') }}
{{ 'registry.treatment.label.legal_basis_justification'|trans }} {{ traitement.legalBasisJustification|nl2br }}
{{ 'registry.treatment.label.consent_request'|trans }} {% if traitement.consentRequest %} {{ 'global.label.yes'|trans }} {% else %} {{ 'global.label.no'|trans }} {% endif %}
{{ 'registry.treatment.label.consent_request_format'|trans }} {{ traitement.consentRequestFormat }}
{{ 'registry.treatment.label.observation'|trans }} {{ traitement.observation|nl2br }}
{{ 'registry.treatment.label.active'|trans }} {% if traitement.active %} {{ 'global.label.active'|trans }} {% else %} {{ 'global.label.inactive'|trans }} {% endif %}
{{ 'registry.treatment.label.public_registry'|trans }} {% if traitement.public == true %} {{ 'global.label.yes'|trans }} {% else %} {{ 'global.label.no'|trans }} {% endif %}
{# DATA CATEGORY #}

{{ 'registry.treatment.tab.data_category'|trans }}

{{ 'registry.treatment.label.data_category'|trans }}
    {% for category in traitement.dataCategories %}
  • {% if category.sensible %}{% endif %} {{ category.name }} {% if category.sensible %}{% endif %}
  • {% endfor %}
{{ 'registry.treatment.label.data_category_other'|trans }} {{ traitement.dataCategoryOther|nl2br }}
{# RECIPIENTS #}

{{ 'registry.treatment.tab.recipients'|trans }}

{{ 'registry.treatment.label.recipient_category'|trans }} {{ traitement.recipientCategory|nl2br }}
{{ 'global.label.linked_contractor'|trans }}
    {% for contractor in traitement.contractors %}
  • {{ contractor }}
  • {% endfor %}
{# SPECIFIC #}

{{ 'registry.treatment.tab.specific'|trans }}

{{ 'registry.treatment.label.exempt_AIPD'|trans }} {% if traitement.ExemptAIPD %} {{ 'global.label.yes'|trans }} {% else %} {{ 'global.label.no'|trans }} {% endif %}
{{ 'registry.treatment.label.large_scale_collection'|trans }} {% if traitement.largeScaleCollection %} {{ 'global.label.yes'|trans }} {% else %} {{ 'global.label.no'|trans }} {% endif %}
{{ 'registry.treatment.label.data_crossing'|trans }} {% if traitement.dataCrossing %} {{ 'global.label.yes'|trans }} {% else %} {{ 'global.label.no'|trans }} {% endif %}
{{ 'registry.treatment.label.automated_decisions_with_legal_effect'|trans }} {% if traitement.automatedDecisionsWithLegalEffect %} {{ 'global.label.yes'|trans }} {% else %} {{ 'global.label.no'|trans }} {% endif %}
{{ 'registry.treatment.label.evaluation_or_rating'|trans }} {% if traitement.evaluationOrRating %} {{ 'global.label.yes'|trans }} {% else %} {{ 'global.label.no'|trans }} {% endif %}
{{ 'registry.treatment.label.automatic_exclusion_service'|trans }} {% if traitement.automaticExclusionService %} {{ 'global.label.yes'|trans }} {% else %} {{ 'global.label.no'|trans }} {% endif %}
{{ 'registry.treatment.label.vulnerable_people'|trans }} {% if traitement.vulnerablePeople %} {{ 'global.label.yes'|trans }} {% else %} {{ 'global.label.no'|trans }} {% endif %}
{{ 'registry.treatment.label.systematic_monitoring'|trans }} {% if traitement.systematicMonitoring %} {{ 'global.label.yes'|trans }} {% else %} {{ 'global.label.no'|trans }} {% endif %}
{{ 'registry.treatment.label.innovative_use'|trans }} {% if traitement.innovativeUse %} {{ 'global.label.yes'|trans }} {% else %} {{ 'global.label.no'|trans }} {% endif %}
{# DETAILS #}

{{ 'registry.treatment.tab.details'|trans }}

{{ 'registry.treatment.label.concerned_people'|trans }}
{{ 'registry.treatment.label.concerned_people_particular'|trans }} {% if traitement.concernedPeopleParticular.check %} {{ 'global.label.yes'|trans }} {% if traitement.concernedPeopleParticular.comment is not empty %}

{{ traitement.concernedPeopleParticular.comment }}

{% endif %} {% else %} {{ 'global.label.no'|trans }} {% endif %}
{{ 'registry.treatment.label.concerned_people_user'|trans }} {% if traitement.concernedPeopleUser.check %} {{ 'global.label.yes'|trans }} {% if traitement.concernedPeopleUser.comment is not empty %}

{{ traitement.concernedPeopleUser.comment }}

{% endif %} {% else %} {{ 'global.label.no'|trans }} {% endif %}
{{ 'registry.treatment.label.concerned_people_agent'|trans }} {% if traitement.concernedPeopleAgent.check %} {{ 'global.label.yes'|trans }} {% if traitement.concernedPeopleAgent.comment is not empty %}

{{ traitement.concernedPeopleAgent.comment }}

{% endif %} {% else %} {{ 'global.label.no'|trans }} {% endif %}
{{ 'registry.treatment.label.concerned_people_elected'|trans }} {% if traitement.concernedPeopleElected.check %} {{ 'global.label.yes'|trans }} {% if traitement.concernedPeopleElected.comment is not empty %}

{{ traitement.concernedPeopleElected.comment }}

{% endif %} {% else %} {{ 'global.label.no'|trans }} {% endif %}
{{ 'registry.treatment.label.concerned_people_company'|trans }} {% if traitement.concernedPeopleCompany.check %} {{ 'global.label.yes'|trans }} {% if traitement.concernedPeopleCompany.comment is not empty %}

{{ traitement.concernedPeopleCompany.comment }}

{% endif %} {% else %} {{ 'global.label.no'|trans }} {% endif %}
{{ 'registry.treatment.label.concerned_people_partner'|trans }} {% if traitement.concernedPeoplePartner.check %} {{ 'global.label.yes'|trans }} {% if traitement.concernedPeoplePartner.comment is not empty %}

{{ traitement.concernedPeoplePartner.comment }}

{% endif %} {% else %} {{ 'global.label.no'|trans }} {% endif %}
{{ 'registry.treatment.label.concerned_people_usager'|trans }} {% if traitement.concernedPeopleUsager.check %} {{ 'global.label.yes'|trans }} {% if traitement.concernedPeopleUsager.comment is not empty %}

{{ traitement.concernedPeopleUsager.comment }}

{% endif %} {% else %} {{ 'global.label.no'|trans }} {% endif %}
{{ 'registry.treatment.label.concerned_people_other'|trans }} {% if traitement.concernedPeopleOther.check %} {{ 'global.label.yes'|trans }} {% if traitement.concernedPeopleOther.comment is not empty %}

{{ traitement.concernedPeopleOther.comment }}

{% endif %} {% else %} {{ 'global.label.no'|trans }} {% endif %}
{{ 'registry.treatment.label.estimated_concerned_people'|trans }} {{ traitement.estimatedConcernedPeople }}
{% if traitement.collectivity.hasModuleTools %} {{ 'global.label.linked_tool'|trans }} {% else %} {{ 'registry.treatment.label.tools_if_inactif'|trans }} {% endif %} {% if traitement.collectivity.hasModuleTools %}
    {% for tool in traitement.tools %}
  • {{ tool.name }}
  • {% endfor %}
{% else %} {{ traitement.software }} {% endif %}
{{ 'registry.treatment.label.paper_processing'|trans }} {% if traitement.paperProcessing %} {{ 'global.label.yes'|trans }} {% else %} {{ 'global.label.no'|trans }} {% endif %}
{{ 'registry.treatment.label.shelflife'|trans }} {% for method in traitement.shelfLifes %}
{{ 'registry.treatment.label.shelflife_name'|trans }} {{ method.name }}
{{ 'registry.treatment.label.shelflife_duration'|trans }} {{ method.duration }}
{{ 'registry.treatment.label.shelflife_ultimate_fate'|trans }} {{ method.ultimateFate|dictionary('registry_treatment_ultimate_fate') }}
{% endfor %}
{% if traitement.otherCollectingMethod is not null %} {% endif %}
{{ 'registry.treatment.label.data_origin'|trans }} {{ traitement.dataOrigin }}
{{ 'registry.treatment.label.collecting_method'|trans }}
    {% for method in traitement.collectingMethod %}
  • {{ method|dictionary('registry_treatment_collecting_method') }}
  • {% endfor %}
{{ 'registry.treatment.label.otherCollectingMethod'|trans }} {{ traitement.otherCollectingMethod }}
{# SECURITY #}

{{ 'registry.treatment.tab.security'|trans }}

{{ 'registry.treatment.label.security_access_control'|trans }} {% if traitement.securityAccessControl.check %} {{ 'global.label.yes'|trans }} {% if traitement.securityAccessControl.comment is not empty %}

{{ traitement.securityAccessControl.comment }}

{% endif %} {% else %} {{ 'global.label.no'|trans }} {% endif %}
{{ 'registry.treatment.label.security_update'|trans }} {% if traitement.securityUpdate.check %} {{ 'global.label.yes'|trans }} {% if traitement.securityUpdate.comment is not empty %}

{{ traitement.securityUpdate.comment }}

{% endif %} {% else %} {{ 'global.label.no'|trans }} {% endif %}
{{ 'registry.treatment.label.security_saving'|trans }} {% if traitement.securitySaving.check %} {{ 'global.label.yes'|trans }} {% if traitement.securitySaving.comment is not empty %}

{{ traitement.securitySaving.comment }}

{% endif %} {% else %} {{ 'global.label.no'|trans }} {% endif %}
{{ 'registry.treatment.label.security_tracability'|trans }} {% if traitement.securitytracability.check %} {{ 'global.label.yes'|trans }} {% if traitement.securitytracability.comment is not empty %}

{{ traitement.securitytracability.comment }}

{% endif %} {% else %} {{ 'global.label.no'|trans }} {% endif %}
{{ 'registry.treatment.label.security_other'|trans }} {% if traitement.securityOther.check %} {{ 'global.label.yes'|trans }} {% if traitement.securityOther.comment is not empty %}

{{ traitement.securityOther.comment }}

{% endif %} {% else %} {{ 'global.label.no'|trans }} {% endif %}
{{ 'registry.treatment.label.security_entitled_persons'|trans }} {% if traitement.securityEntitledPersons %} {{ 'global.label.yes'|trans }} {% else %} {{ 'global.label.no'|trans }} {% endif %}
{{ 'registry.treatment.label.security_open_accounts'|trans }} {% if traitement.securityOpenAccounts %} {{ 'global.label.yes'|trans }} {% else %} {{ 'global.label.no'|trans }} {% endif %}
{{ 'registry.treatment.label.security_specificities_delivered'|trans }} {% if traitement.securitySpecificitiesDelivered %} {{ 'global.label.yes'|trans }} {% else %} {{ 'global.label.no'|trans }} {% endif %}
{# LINKED MODULES #}

{{ 'global.tab.linked_modules'|trans }}

{# TREATMENTS #} {% include '_Utils/_show_block_treatments.html.twig' with { treatments: traitement.treatments } %} {# REQUESTS #} {% include '_Utils/_show_block_requests.html.twig' with { requests: traitement.requests } %} {# VIOLATIONS #} {% include '_Utils/_show_block_violations.html.twig' with { violations: traitement.violations } %} {# PROOFS #} {% include '_Utils/_show_block_proofs.html.twig' with { proofs: traitement.proofs } %} {# MESUREMENTS #} {% include '_Utils/_show_block_mesurements.html.twig' with { mesurements: traitement.mesurements } %}
{# TREATMENT CONFORMITY & AIPD #} {% if traitement.collectivity.hasModuleConformiteTraitement %} {# TREATMENT CONFORMITY #}

{{ 'registry.treatment.tab.conformite'|trans }}

{% if traitement.conformiteTraitement is not null %} {% endif %}
{# AIPD #} {% if traitement.conformiteTraitement is not null %} {% set analyseImpact = traitement.conformiteTraitement.lastAnalyseImpact %} {% endif %}

{{ 'registry.treatment.tab.last_aipd'|trans }}

{% if traitement.conformiteTraitement is not null and analyseImpact is not null %} {% endif %}
{% endif %} {# HISTORIC #}

{{ 'global.tab.history'|trans }}

{% if is_granted('ROLE_REFERENT') %} {% endif %}
{{ 'global.label.organization'|trans }} {{ traitement.collectivity }}
{{ 'global.label.created_at'|trans }} {{ traitement.createdAt|date('d/m/Y H:i') }}
{{ 'global.label.updated_at'|trans }} {{ traitement.updatedAt|date('d/m/Y H:i') }}
{{ 'global.label.updated_by'|trans }} {{ traitement.updatedBy }}