Skip to content
This repository was archived by the owner on Apr 5, 2024. It is now read-only.

Commit 224cf3c

Browse files
committed
fix: cgu
1 parent 61d652b commit 224cf3c

File tree

9 files changed

+205
-9
lines changed

9 files changed

+205
-9
lines changed

README.md

+16
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,19 @@
22

33
Storybook URL : <https://socialgouv.github.io/template/>
44
Production URL : <https://template.fabrique.social.gouv.fr/>
5+
6+
## Description
7+
8+
GitOps
9+
Utiliser react-dsfr
10+
sentry / matomo
11+
tooling (lint/tests)
12+
best practices next/TS
13+
Best practices HTTP (CSP)
14+
Pages de base
15+
homepage
16+
mentions-legales
17+
CGU
18+
accessibilité
19+
healthz
20+
stats cf 1000jours/stats

scripts/__tests__/prebuild.test.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ describe("robots.txt", () => {
1111
const host = "localhost";
1212
const robotsProd = [
1313
"User-agent: *",
14-
"Disallow: /assets/",
15-
"Disallow: /images/",
14+
"Allow: /",
1615
"",
1716
`Sitemap: https://${host}/sitemap.xml`,
1817
].join("\n");

src/components/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ export { default as Layout } from "./layout";
44
export * from "./header/type";
55
export * from "./footer/type";
66
export * from "./landing";
7+
export * from "./mention";

src/components/mention/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from "./part";

src/components/mention/part.tsx

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
export type MentionPartProps = {
2+
title: string;
3+
description: string;
4+
children?: React.ReactNode | React.ReactNode[];
5+
divProps?: React.HTMLAttributes<HTMLDivElement>;
6+
};
7+
8+
export const MentionPart = (props: MentionPartProps): JSX.Element => {
9+
return (
10+
<div className="fr-mt-3w" {...props.divProps}>
11+
<h2>{props.title}</h2>
12+
<p className="fr-mb-2w">{props.description}</p>
13+
{props.children}
14+
</div>
15+
);
16+
};

src/pages/cgu.tsx

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import { MentionPart } from "@components";
2+
import type { NextPage } from "next";
3+
import { NextSeo } from "next-seo";
4+
import React from "react";
5+
6+
const Index: NextPage = () => {
7+
return (
8+
<>
9+
<NextSeo
10+
title="Template | Conditions générales d'utilisation"
11+
description="Conditions générales d'utilisation de l'application template."
12+
additionalLinkTags={[
13+
{
14+
rel: "icon",
15+
href: "/favicon.ico",
16+
},
17+
]}
18+
/>
19+
<div className="fr-container fr-my-6w">
20+
<h1 id="mentions-legales">Conditions générales d&apos;utilisation</h1>
21+
<div>
22+
<MentionPart
23+
title="Présentation"
24+
description="Template est une application de template. Le code du logiciel est libre, et peut donc être vérifié et amélioré par toutes et tous."
25+
/>
26+
<MentionPart
27+
title="Vocabulaire"
28+
description="« Nous » se réfère à l’éditeur de Template, « Vous » se réfère à un·e usager de Template, « Partenaires » se réfère aux organismes responsables d’attribuer les aides calculées par Template."
29+
/>
30+
<MentionPart
31+
title="Absence de garantie"
32+
description="Les résultats fournis par ce service ont une valeur informative et ne représentent en aucun cas un diagnostic médical. Nous ne garantissons pas l’exactitude du contenu des sites externes vers lesquels nous redirigeons la navigation. Ces sites ne sont pas non plus régis par les mêmes conditions d’utilisation, notamment en ce qui concerne leur traitement des données à caractère personnel. Nous mettons Template à disposition sans garantie sur sa disponibilité, en « best effort ». Cela signifie que d’éventuelles indisponibilités n’ouvriront pas droit à compensation financière."
33+
/>
34+
<MentionPart
35+
title="Vos données"
36+
description="Nous nous engageons à ne jamais exploiter les informations que vous nous transmettrez dans un but commercial ou publicitaire. De manière générale, Template n’accepte aucune forme de publicité autre que celle que constitue la présentation des aides des partenaires. Nous collectons également des données anonymes d’audience, indépendamment des suivis de consommation effectués. Cela nous permet par exemple de déterminer la durée d’un suivi et les pages à améliorer en priorité. Nous nous engageons à prendre toutes les mesures nécessaires pour garantir la sécurité et la confidentialité des informations que vous nous fournissez. Les situations enregistrées sont enregistrées dans un centre de données sécurisé. Seules nos équipes techniques et celles de nos partenaires peuvent y accéder."
37+
/>
38+
<MentionPart
39+
title="Évolutions"
40+
description="Nous pouvons faire évoluer Template sans information préalable. Nous ajoutons régulièrement des aides, améliorons l’interface et modifions des formulations sur la base de vos retours et des évolutions réglementaires. Nous pouvons suspendre l’accès à Template sans information préalable, notamment pour des raisons de maintenance. Nous mettons l’application à jour plusieurs fois par semaine. L’indisponibilité ne dépasse généralement pas une dizaine de secondes. Nous pouvons amender ces conditions d’utilisation. Tout l’historique de ces conditions est librement accessible."
41+
/>
42+
<MentionPart
43+
title="Utilisation"
44+
description="Son utilisation est gratuite et facultative. Si vous effectuez un suivi de votre consommation, vous acceptez ces conditions d’utilisation. Comme indiqué dans l’article L. 112-9 du code des relations entre le public et l’administration. L’utilisation de Template requiert une connexion internet et un smartphone récent. Nous nous réservons le droit de bloquer, sans information préalable ni compensation financière, les usages mettant en péril l’utilisation du logiciel par d’autres usagers. Cela nous permet d’anticiper d’éventuelles attaques par déni de service."
45+
/>
46+
</div>
47+
</div>
48+
</>
49+
);
50+
};
51+
52+
export default Index;

src/pages/healthz.tsx

+21-5
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,25 @@
1+
import type { NextPage } from "next";
2+
import { NextSeo } from "next-seo";
13
import React from "react";
24

3-
export default function Healthz() {
5+
const Index: NextPage = () => {
46
return (
5-
<div className="fr-container fr-my-6w">
6-
<h1>App is up and running</h1>
7-
</div>
7+
<>
8+
<NextSeo
9+
title="Template | Healthz"
10+
description="Page healthz de l'application Template."
11+
additionalLinkTags={[
12+
{
13+
rel: "icon",
14+
href: "/favicon.ico",
15+
},
16+
]}
17+
/>
18+
<div className="fr-container fr-my-6w">
19+
<h1>App is up and running</h1>
20+
</div>
21+
</>
822
);
9-
}
23+
};
24+
25+
export default Index;

src/pages/index.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { Row } from "@dataesr/react-dsfr";
33
import type { NextPage } from "next";
44
import { NextSeo } from "next-seo";
55

6-
const Home: NextPage = () => {
6+
const Index: NextPage = () => {
77
return (
88
<>
99
<NextSeo
@@ -113,4 +113,4 @@ const Home: NextPage = () => {
113113
);
114114
};
115115

116-
export default Home;
116+
export default Index;

src/pages/mention-legales.tsx

+95
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
import { MentionPart } from "@components";
2+
import { Title } from "@dataesr/react-dsfr";
3+
import type { NextPage } from "next";
4+
import { NextSeo } from "next-seo";
5+
import React from "react";
6+
7+
const Index: NextPage = () => {
8+
return (
9+
<>
10+
<NextSeo
11+
title="Template | Mention légales"
12+
description="Mentions légales de l'application template."
13+
additionalLinkTags={[
14+
{
15+
rel: "icon",
16+
href: "/favicon.ico",
17+
},
18+
]}
19+
/>
20+
<div className="fr-container fr-my-6w">
21+
<h1 id="mentions-legales">Mentions légales</h1>
22+
<div>
23+
<MentionPart
24+
title="Hébergement du site"
25+
description="Le site est édité au sein de la Fabrique numérique des Ministères sociaux située :"
26+
>
27+
<address className="fr-mb-2w">
28+
Tour Mirabeau <br />
29+
39-43 Quai André Citroën <br />
30+
75015 PARIS <br />
31+
Téléphone: 01 40 56 60 00
32+
</address>
33+
</MentionPart>
34+
<MentionPart
35+
title="Directeur de la publication"
36+
description="Monsieur X et Madame X, Directeur de la publication"
37+
/>
38+
<MentionPart
39+
title="Hébergement du site"
40+
description="Ce site est hébergé par :"
41+
>
42+
<p className="fr-mb-2w">
43+
Microsoft Azure <br />
44+
37 Quai du Président Roosevelt <br />
45+
92130 Issy-les-Moulineaux
46+
</p>
47+
</MentionPart>
48+
<MentionPart
49+
title="Accessibilité"
50+
description="La conformité aux normes d’accessibilité numérique est un objectif
51+
ultérieur mais nous tâchons de rendre ce site accessible à toutes
52+
et à tous."
53+
divProps={{
54+
id: "accessibilite",
55+
}}
56+
>
57+
<Title as="h3" look="h5">
58+
Signaler un dysfonctionnement
59+
</Title>
60+
<p className="fr-mb-2w">
61+
Si vous rencontrez un défaut d’accessibilité vous empêchant
62+
d’accéder à un contenu ou une fonctionnalité du site, merci de
63+
nous en faire part. Si vous n’obtenez pas de réponse rapide de
64+
notre part, vous êtes en droit de faire parvenir vos doléances ou
65+
une demande de saisine au Défenseur des droits.
66+
</p>
67+
68+
<p>
69+
Pour en savoir plus sur la politique d’accessibilité numérique de
70+
l’État&nbsp;:
71+
<a
72+
href="https://www.numerique.gouv.fr/publications/rgaa-accessibilite/"
73+
target="_blank"
74+
rel="noreferrer"
75+
>
76+
numerique.gouv.fr/publications/rgaa-accessibilite
77+
</a>
78+
</p>
79+
</MentionPart>
80+
<MentionPart
81+
title="Sécurité"
82+
description="Le site est protégé par un certificat électronique, matérialisé
83+
pour la grande majorité des navigateurs par un cadenas. Cette
84+
protection participe à la confidentialité des échanges. En aucun
85+
cas les services associés à la plateforme ne seront à l’origine
86+
d’envoi de courriels pour demander la saisie d’informations
87+
personnelles."
88+
/>
89+
</div>
90+
</div>
91+
</>
92+
);
93+
};
94+
95+
export default Index;

0 commit comments

Comments
 (0)