Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mentions légales et opt-out pour haie #468

Merged
merged 5 commits into from
Nov 18, 2024
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions config/settings/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,7 @@
"envergo.utils.context_processors.settings_context",
"envergo.utils.context_processors.multi_sites_context",
"envergo.analytics.context_processors.analytics",
"envergo.analytics.context_processors.visitor_id",
"envergo.evaluations.context_processors.request_eval_context",
],
},
Expand Down
9 changes: 9 additions & 0 deletions envergo/analytics/context_processors.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,3 +106,12 @@ def analytics(request):
return {
"matomo_dimensions": matomo_dimensions,
}


def visitor_id(request):
"""Add the visitor id to the templates.

Mostly useful for legal mentions and privacy static pages.
"""
visitor_id = request.COOKIES.get(VISITOR_COOKIE_NAME, "")
return {"visitor_id": visitor_id}
9 changes: 9 additions & 0 deletions envergo/analytics/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,15 @@

pattern_name = "legal_mentions"

def get_redirect_url(self, *args, **kwargs):
"""Redirect to the previous page.

If somehow the referer is missing, we fallback to the default redirect url.
"""
referer = self.request.META.get("HTTP_REFERER")
redirect_url = super().get_redirect_url(*args, **kwargs)
return referer or redirect_url
Dismissed Show dismissed Hide dismissed

def post(self, request, *args, **kwargs):
response = super().post(request, *args, **kwargs)
set_visitor_id_cookie(response, "")
Expand Down
14 changes: 10 additions & 4 deletions envergo/pages/urls_amenagement.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,25 @@
AvailabilityInfo,
GeometriciansView,
HomeAmenagementView,
LegalMentionsView,
NewsFeed,
NewsView,
Outlinks,
PrivacyView,
TermsOfServiceView,
)

urlpatterns = [
path("", HomeAmenagementView.as_view(), name="home"),
path(_("legal-mentions/"), LegalMentionsView.as_view(), name="legal_mentions"),
path(
_("legal-mentions/"),
TemplateView.as_view(template_name="amenagement/pages/legal_mentions.html"),
name="legal_mentions",
),
path(_("tos/"), TermsOfServiceView.as_view(), name="terms_of_service"),
path(_("privacy/"), PrivacyView.as_view(), name="privacy"),
path(
_("privacy/"),
TemplateView.as_view(template_name="pages/privacy.html"),
name="privacy",
),
path(
"stats/",
RedirectView.as_view(url="https://sites.google.com/view/stats-envergo/"),
Expand Down
16 changes: 6 additions & 10 deletions envergo/pages/urls_haie.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,15 @@
from django.utils.translation import gettext_lazy as _
from django.views.generic import RedirectView, TemplateView

from envergo.pages.views import (
HomeHaieView,
LegalMentionsView,
Outlinks,
PrivacyView,
TermsOfServiceView,
)
from envergo.pages.views import HomeHaieView, Outlinks

urlpatterns = [
path("", HomeHaieView.as_view(), name="home"),
path(_("legal-mentions/"), LegalMentionsView.as_view(), name="legal_mentions"),
path(_("tos/"), TermsOfServiceView.as_view(), name="terms_of_service"),
path(_("privacy/"), PrivacyView.as_view(), name="privacy"),
path(
_("legal-mentions/"),
TemplateView.as_view(template_name="haie/pages/legal_mentions.html"),
name="legal_mentions",
),
path(
"stats/",
RedirectView.as_view(url="https://sites.google.com/view/stats-envergo/"),
Expand Down
14 changes: 0 additions & 14 deletions envergo/pages/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -169,24 +169,10 @@ def get_context_data(self, **kwargs):
return context


class LegalMentionsView(TemplateView):
template_name = "pages/legal_mentions.html"


class TermsOfServiceView(TemplateView):
template_name = "pages/terms_of_service.html"


class PrivacyView(TemplateView):
template_name = "pages/privacy.html"

def get_context_data(self, **kwargs):
visitor_id = self.request.COOKIES.get(settings.VISITOR_COOKIE_NAME, "")
context = super().get_context_data(**kwargs)
context["visitor_id"] = visitor_id
return context


class Outlinks(TemplateView):
template_name = "pages/outlinks.html"

Expand Down
134 changes: 134 additions & 0 deletions envergo/templates/haie/pages/legal_mentions.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
{% extends 'base.html' %}

{% block title %}{{ _("Legal mentions") }}{% endblock %}

{% block top-bar %}{% endblock %}

{% block article %}
<h1>Mentions légales</h1>

<h2>Éditeurs</h2>

<p>
Le Guichet unique de la haie est édité par la Fabrique Numérique du
Ministère de la transition écologique, de l’énergie, du climat et de la prévention des risques (Grande Arche de la Défense, 92055 La Défense CEDEX), avec l'appui de l'incubateur de services numériques Beta.gouv.fr de la direction interministérielle du numérique
(DINUM).
</p>

<h2>Directeurs ou directrices de la publication</h2>

<p>M. Philippe MAZENC, directeur général de l'aménagement, du logement et de la nature (DGALN).</p>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On ne peut pas éviter d'avoir des noms de personnes susceptibles d'évoluer dans le temps ? C'est casse pied à maintenir...

Copy link
Collaborator Author

@thibault thibault Nov 18, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je crois qu'il est obligatoire d'avoir un nom de personne physique. Dans tous les cas, le texte est fourni tel quel par les juristes de chez beta, donc j'éviterais de trop le changer si je peux.


<h2>Hébergeur</h2>

<p>Scalingo SAS, 15 avenue du Rhin, 67100 Strasbourg, France.</p>

<h2>Traitement des données à caractère personnel</h2>

<p>
Le Guichet unique de la haie traite certaines données à caractère personnel conformément à la réglementation prévue par le règlement (UE) n° 2016/679 dit « RGPD » et la loi n° 78-17 relative à l’informatique, aux fichiers et aux libertés.
</p>

<p>
Seules sont recueillies les données expressément nécessaires au bon
fonctionnement du service et au respect des obligations légales de l'éditeur.
</p>

<p>
Les seules données recueillies sont celles fournies directement par les usagers
dans le contexte de l'utilisation du service.
</p>

<h3>Vos droits</h3>

<p>Vous disposez :</p>

<ul>
<li>d'un droit d'information et d'un droit d'accès à vos données ;</li>
<li>d'un droit de rectification ;</li>
<li>d'un droit d'opposition ;</li>
<li>d'un droit à la limitation du traitement.</li>
</ul>

<p>Pour les exercer, contactez-nous à : [email protected]</p>

<p>
Puisque ce sont des droits personnels, nous ne traiterons votre demande que si nous sommes en mesure de vous identifier. Dans le cas où nous ne parvenons pas à vous identifier, nous pouvons être amenés à vous demander une preuve de votre identité.
</p>

<p>
Pour vous aider dans votre démarche, vous trouverez un modèle de courrier élaboré par la CNIL ici : <a href="https://www.cnil.fr/fr/modele/courrier/exercer-son-droit-dacces">https://www.cnil.fr/fr/modele/courrier/exercer-son-droit-dacces</a>
</p>

<p>
Nous nous engageons à vous répondre dans un délai raisonnable qui ne saurait dépasser un mois à compter de la réception de votre demande.
</p>

<h3>Responsable du traitement</h3>

<p>
Les co-responsables du traitement de vos données à caractère personnel sont la direction générale de l'aménagement, du logement et de la nature au sein du ministère en charge de l’environnement, et la direction générale de la performance économique et environnementale des entreprises du ministère en charge de l’agriculture.
</p>

<h2>Cookies</h2>

<p>
Un cookie est un fichier déposé sur votre terminal lors de la visite d’un site. Il a pour but de collecter des informations relatives à votre navigation et de vous adresser des services adaptés à votre terminal (ordinateur, mobile ou tablette).
</p>
<p>
En application de l’article 5(3) de la directive 2002/58/CE modifiée concernant le traitement des données à caractère personnel et la protection de la vie privée dans le secteur des communications électroniques, transposée à l’article 82 de la loi n° 78-17 du 6 janvier 1978 relative à l’informatique, aux fichiers et aux libertés, les traceurs ou cookies suivent deux régimes distincts :
</p>
<ul>
<li>
Les cookies strictement nécessaires au service ou ayant pour finalité exclusive de faciliter la communication par voie électronique sont dispensés de consentement préalable au titre de l’article 82 de la loi n° 78-17 du 6 janvier 1978.
</li>
<li>
Les cookies n’étant pas strictement nécessaires au service ou n’ayant pas pour finalité exclusive de faciliter la communication par voie électronique doivent être consentis par l’utilisateur.
</li>
</ul>
<p>
Ce consentement de la personne concernée pour une ou plusieurs finalités spécifiques constitue une base légale au sens du RGPD et doit être entendu au sens de l'article 6-1 a) du RGPD et à la libre circulation des données.
</p>

<p>Cookies recensés sur le Guichet unique de la haie :</p>

<p>
<strong>MATOMO</strong> une solution de mesure d’audience dans sa version anonymisée et exemptée de consentement et validée par la CNIL.
</p>
<p>Même si le suivi est anonyme, vous pouvez vous opposer au suivi de votre navigation sur ce site web.</p>

<p>Vous pouvez choisir de ne pas transmettre d'informations à matomo :</p>

<iframe id="stats-optout"
style="width: 100%"
src="//stats.beta.gouv.fr/index.php?module=CoreAdminHome&action=optOut&language=fr"></iframe>

<iframe id="stats-optout"
style="width: 100%"
src="//stats.data.gouv.fr/index.php?module=CoreAdminHome&action=optOut&language=fr"></iframe>

{% if visitor_id %}
<p>
Nous réalisons également un suivi statistique de certaines actions de navigation (par exemple les étapes d’utilisation du simulateur ou l’utilisation de l’outil de saisie du linéaire de haie) qui sont stockées de manière anonyme, afin de mieux comprendre l'utilisation du service.
</p>

<p>
Vous avez la possibilité de refuser que les événements dont vous êtes à
l'origine soient pris en compte. Votre refus sera à renouveler tous les 13 mois, durée de vie maximum du cookie.
</p>

<form class="fr-mb-3w"
method="post"
action="{% url 'disable_visitor_cookie' %}">
{% csrf_token %}
<button type="submit" class="fr-btn">Désactiver le cookie de suivi local</button>
</form>
{% endif %}

<h2>Licence</h2>

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On ne redit pas ici : "Sauf mention contraire, tous les textes de ce site sont sous licence etalab-2.0" ?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ce texte est présent dans le footer il me semble.

<p>
Quelques icônes issues du projet <a href="https://remixicon.com" target="_blank" rel="noopener">Remix Icon par Remix Design</a>.
</p>

{% endblock %}
5 changes: 1 addition & 4 deletions envergo/templates/pages/privacy.html
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ <h3>X - Cookies</h3>

{% if visitor_id %}
<p>
Nous réalisons également un suivi statistique de certaines actions de navigation (e.g. utilisation du simulateur) qui sont stockées localement et de manière anonyme, afin de mieux comprendre l'utilisation du service.
Nous réalisons également un suivi statistique de certaines actions de navigation (e.g. utilisation du simulateur) qui sont stockées de manière anonyme, afin de mieux comprendre l'utilisation du service.
</p>

<p>
Expand All @@ -316,8 +316,5 @@ <h3>X - Cookies</h3>
<p>
<strong>CRISP</strong>, un agent conversationnel de type chatbot dans une configuration ayant pour <a href="https://help.crisp.chat/en/article/crisp-chatbox-cookie-ip-policy-1147xor/">finalité exclusive de permettre ou faciliter la communication par voie électronique</a>.
</p>
<p>
<strong>SENTRY</strong> un outil de monitoring qui permet de faire remonter les bogues dans une configuration auto-hébergée.
</p>

{% endblock %}
Loading