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

Commit

Permalink
fix: cgu
Browse files Browse the repository at this point in the history
  • Loading branch information
maxgfr committed Mar 11, 2022
1 parent 61d652b commit 224cf3c
Show file tree
Hide file tree
Showing 9 changed files with 205 additions and 9 deletions.
16 changes: 16 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,19 @@

Storybook URL : <https://socialgouv.github.io/template/>
Production URL : <https://template.fabrique.social.gouv.fr/>

## Description

GitOps
Utiliser react-dsfr
sentry / matomo
tooling (lint/tests)
best practices next/TS
Best practices HTTP (CSP)
Pages de base
homepage
mentions-legales
CGU
accessibilité
healthz
stats cf 1000jours/stats
3 changes: 1 addition & 2 deletions scripts/__tests__/prebuild.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@ describe("robots.txt", () => {
const host = "localhost";
const robotsProd = [
"User-agent: *",
"Disallow: /assets/",
"Disallow: /images/",
"Allow: /",
"",
`Sitemap: https://${host}/sitemap.xml`,
].join("\n");
Expand Down
1 change: 1 addition & 0 deletions src/components/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ export { default as Layout } from "./layout";
export * from "./header/type";
export * from "./footer/type";
export * from "./landing";
export * from "./mention";
1 change: 1 addition & 0 deletions src/components/mention/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from "./part";
16 changes: 16 additions & 0 deletions src/components/mention/part.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
export type MentionPartProps = {
title: string;
description: string;
children?: React.ReactNode | React.ReactNode[];
divProps?: React.HTMLAttributes<HTMLDivElement>;
};

export const MentionPart = (props: MentionPartProps): JSX.Element => {
return (
<div className="fr-mt-3w" {...props.divProps}>
<h2>{props.title}</h2>
<p className="fr-mb-2w">{props.description}</p>
{props.children}
</div>
);
};
52 changes: 52 additions & 0 deletions src/pages/cgu.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
import { MentionPart } from "@components";
import type { NextPage } from "next";
import { NextSeo } from "next-seo";
import React from "react";

const Index: NextPage = () => {
return (
<>
<NextSeo
title="Template | Conditions générales d'utilisation"
description="Conditions générales d'utilisation de l'application template."
additionalLinkTags={[
{
rel: "icon",
href: "/favicon.ico",
},
]}
/>
<div className="fr-container fr-my-6w">
<h1 id="mentions-legales">Conditions générales d&apos;utilisation</h1>
<div>
<MentionPart
title="Présentation"
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."
/>
<MentionPart
title="Vocabulaire"
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."
/>
<MentionPart
title="Absence de garantie"
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."
/>
<MentionPart
title="Vos données"
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."
/>
<MentionPart
title="Évolutions"
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."
/>
<MentionPart
title="Utilisation"
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."
/>
</div>
</div>
</>
);
};

export default Index;
26 changes: 21 additions & 5 deletions src/pages/healthz.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,25 @@
import type { NextPage } from "next";
import { NextSeo } from "next-seo";
import React from "react";

export default function Healthz() {
const Index: NextPage = () => {
return (
<div className="fr-container fr-my-6w">
<h1>App is up and running</h1>
</div>
<>
<NextSeo
title="Template | Healthz"
description="Page healthz de l'application Template."
additionalLinkTags={[
{
rel: "icon",
href: "/favicon.ico",
},
]}
/>
<div className="fr-container fr-my-6w">
<h1>App is up and running</h1>
</div>
</>
);
}
};

export default Index;
4 changes: 2 additions & 2 deletions src/pages/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { Row } from "@dataesr/react-dsfr";
import type { NextPage } from "next";
import { NextSeo } from "next-seo";

const Home: NextPage = () => {
const Index: NextPage = () => {
return (
<>
<NextSeo
Expand Down Expand Up @@ -113,4 +113,4 @@ const Home: NextPage = () => {
);
};

export default Home;
export default Index;
95 changes: 95 additions & 0 deletions src/pages/mention-legales.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
import { MentionPart } from "@components";
import { Title } from "@dataesr/react-dsfr";
import type { NextPage } from "next";
import { NextSeo } from "next-seo";
import React from "react";

const Index: NextPage = () => {
return (
<>
<NextSeo
title="Template | Mention légales"
description="Mentions légales de l'application template."
additionalLinkTags={[
{
rel: "icon",
href: "/favicon.ico",
},
]}
/>
<div className="fr-container fr-my-6w">
<h1 id="mentions-legales">Mentions légales</h1>
<div>
<MentionPart
title="Hébergement du site"
description="Le site est édité au sein de la Fabrique numérique des Ministères sociaux située :"
>
<address className="fr-mb-2w">
Tour Mirabeau <br />
39-43 Quai André Citroën <br />
75015 PARIS <br />
Téléphone: 01 40 56 60 00
</address>
</MentionPart>
<MentionPart
title="Directeur de la publication"
description="Monsieur X et Madame X, Directeur de la publication"
/>
<MentionPart
title="Hébergement du site"
description="Ce site est hébergé par :"
>
<p className="fr-mb-2w">
Microsoft Azure <br />
37 Quai du Président Roosevelt <br />
92130 Issy-les-Moulineaux
</p>
</MentionPart>
<MentionPart
title="Accessibilité"
description="La conformité aux normes d’accessibilité numérique est un objectif
ultérieur mais nous tâchons de rendre ce site accessible à toutes
et à tous."
divProps={{
id: "accessibilite",
}}
>
<Title as="h3" look="h5">
Signaler un dysfonctionnement
</Title>
<p className="fr-mb-2w">
Si vous rencontrez un défaut d’accessibilité vous empêchant
d’accéder à un contenu ou une fonctionnalité du site, merci de
nous en faire part. Si vous n’obtenez pas de réponse rapide de
notre part, vous êtes en droit de faire parvenir vos doléances ou
une demande de saisine au Défenseur des droits.
</p>

<p>
Pour en savoir plus sur la politique d’accessibilité numérique de
l’État&nbsp;:
<a
href="https://www.numerique.gouv.fr/publications/rgaa-accessibilite/"
target="_blank"
rel="noreferrer"
>
numerique.gouv.fr/publications/rgaa-accessibilite
</a>
</p>
</MentionPart>
<MentionPart
title="Sécurité"
description="Le site est protégé par un certificat électronique, matérialisé
pour la grande majorité des navigateurs par un cadenas. Cette
protection participe à la confidentialité des échanges. En aucun
cas les services associés à la plateforme ne seront à l’origine
d’envoi de courriels pour demander la saisie d’informations
personnelles."
/>
</div>
</div>
</>
);
};

export default Index;

0 comments on commit 224cf3c

Please sign in to comment.