Skip to content

Commit

Permalink
Merge branch 'main' into agent-rights-page
Browse files Browse the repository at this point in the history
  • Loading branch information
XavierJp committed Oct 17, 2024
2 parents a1f9c87 + 9257785 commit c784d89
Show file tree
Hide file tree
Showing 33 changed files with 281 additions and 232 deletions.
24 changes: 24 additions & 0 deletions app/(header-connexion)/connexion/au-revoir/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import { ConnexionSubLayout } from '#components-ui/connexion-layout';
import logoutPicture from '#components-ui/illustrations/logout';
import { Metadata } from 'next';
import { NextPageWithLayout } from 'pages/_app';

export const metadata: Metadata = {
title: 'Vous êtes bien deconnecté',
alternates: {
canonical: 'https://annuaire-entreprises.data.gouv.fr/connexion/au-revoir',
},
robots: 'noindex, nofollow',
};

const ConnexionGoodbye: NextPageWithLayout = () => {
return (
<ConnexionSubLayout img={logoutPicture}>
<h1>Vous êtes bien déconnecté(e)</h1>
<p>Merci de votre visite</p>
<a href="/">← Revenir au moteur de recherche</a>
</ConnexionSubLayout>
);
};

export default ConnexionGoodbye;
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import { ConnexionSubLayout } from '#components-ui/connexion-layout';
import connexionRefusedPicture from '#components-ui/illustrations/connexion-refused';
import constants from '#models/constants';
import { Metadata } from 'next';

export const metadata: Metadata = {
title: 'Vous n’êtes pas autorisé(e) à accéder à cette partie du site',
alternates: {
canonical:
'https://annuaire-entreprises.data.gouv.fr/connexion/echec-authorisation-requise',
},
robots: 'noindex, nofollow',
};

const ConnexionRefused = () => {
return (
<ConnexionSubLayout img={connexionRefusedPicture}>
<h1>Vous n’êtes pas autorisé(e) à accéder à cette partie du site</h1>
<p>Cet espace est réservé aux agents publics habilités.</p>
<p>
Vous êtes agent(e) du service public et vous souhaiter accéder au
service&nbsp;:{' '}
<a href={constants.links.parcours.contact}>contactez-nous.</a>
</p>
<a href="/">← Retourner au moteur de recherche</a>
</ConnexionSubLayout>
);
};

export default ConnexionRefused;
28 changes: 28 additions & 0 deletions app/(header-connexion)/connexion/echec-connexion/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import { ConnexionSubLayout } from '#components-ui/connexion-layout';
import connexionFailedPicture from '#components-ui/illustrations/connexion-failed';
import constants from '#models/constants';
import { Metadata } from 'next';

export const metadata: Metadata = {
title: 'Votre tentative de connexion a échouée',
alternates: {
canonical:
'https://annuaire-entreprises.data.gouv.fr/connexion/echec-connexion',
},
robots: 'noindex, nofollow',
};

const ConnexionFailure = () => {
return (
<ConnexionSubLayout img={connexionFailedPicture}>
<h1>Votre tentative de connexion a échouée</h1>
<p>
Merci de réessayer plus tard. Si le problème se reproduit, merci de{' '}
<a href={constants.links.parcours.contact}>nous contacter.</a>
</p>
<a href="/">← Retourner au moteur de recherche</a>
</ConnexionSubLayout>
);
};

export default ConnexionFailure;
30 changes: 30 additions & 0 deletions app/(header-connexion)/error.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
'use client';

import { ConnexionSubLayout } from '#components-ui/connexion-layout';
import connexionFailedPicture from '#components-ui/illustrations/connexion-failed';
import constants from '#models/constants';
import { NextAppError, useLogFatalErrorAppClient } from 'hooks';
import { Metadata } from 'next';

export const metadata: Metadata = {
title: 'Votre tentative de connexion a échouée',
alternates: {
canonical:
'https://annuaire-entreprises.data.gouv.fr/connexion/echec-connexion',
},
robots: 'noindex, nofollow',
};

export default function ErrorPage({ error }: { error: NextAppError }) {
useLogFatalErrorAppClient(error);
return (
<ConnexionSubLayout img={connexionFailedPicture}>
<h1>Votre tentative de connexion a échouée</h1>
<p>
Merci de réessayer plus tard. Si le problème se reproduit, merci de{' '}
<a href={constants.links.parcours.contact}>nous contacter.</a>
</p>
<a href="/">← Retourner au moteur de recherche</a>
</ConnexionSubLayout>
);
}
23 changes: 23 additions & 0 deletions app/(header-connexion)/layout.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import { HeaderAppRouter } from '#components/header/header-app-router';
import { meta } from '#components/meta/meta-server';
import { Metadata } from 'next';

export const metadata: Metadata = meta({});

export default async function ConnexionLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<>
<HeaderAppRouter
useSearchBar={false}
useLogo={true}
useMap={false}
useAgentCTA={false}
/>
<div>{children}</div>
</>
);
}
7 changes: 1 addition & 6 deletions app/(header-default)/annonces/[slug]/_components/bodacc.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
'use client';

import React from 'react';
import routes from '#clients/routes';
import { Info } from '#components-ui/alerts';
import ButtonLink from '#components-ui/button';
Expand All @@ -12,6 +11,7 @@ import { EAdministration } from '#models/administrations/EAdministration';
import { IUniteLegale } from '#models/core/types';
import { formatDate } from '#utils/helpers';
import { useFetchBODACC } from 'hooks';
import React from 'react';

const AnnoncesBodacc: React.FC<{
uniteLegale: IUniteLegale;
Expand Down Expand Up @@ -98,11 +98,6 @@ const AnnoncesBodacc: React.FC<{
/>
</>
)}
<style jsx>{`
.annonce {
margin: 5px 0;
}
`}</style>
</>
)}
</AsyncDataSectionClient>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import { useMemo } from 'react';
import routes from '#clients/routes';
import FAQLink from '#components-ui/faq-link';
import { Tag } from '#components-ui/tag';
Expand All @@ -13,6 +12,7 @@ import { UseCase } from '#models/user/agent';
import { ISession } from '#models/user/session';
import { formatDatePartial } from '#utils/helpers';
import { useAPIRouteData } from 'hooks/fetch/use-API-route-data';
import { useMemo } from 'react';

/**
* Dirigeants section
Expand Down Expand Up @@ -295,11 +295,6 @@ function BénéficiairesContent({
/>
</>
)}
<style global jsx>{`
table > tbody > tr > td:first-of-type {
width: 30%;
}
`}</style>
</>
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ const AvisSituationNonDiffusible = () => (

const AvisSituationSection: React.FC<IProps> = ({ uniteLegale, session }) => (
<Section
id="insee"
id="justificatifs-insee"
title="Justificatif d’inscription à l’Insee"
sources={[EAdministration.INSEE]}
>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
'use client';

import React from 'react';
import AssociationCreationNotFoundAlert from '#components-ui/alerts-with-explanations/association-creation-not-found-alert';
import ButtonLink from '#components-ui/button';
import { Icon } from '#components-ui/icon/wrapper';
Expand All @@ -10,6 +9,7 @@ import { EAdministration } from '#models/administrations/EAdministration';
import { IAssociation } from '#models/core/types';
import { formatDate, formatIntFr } from '#utils/helpers';
import { useFetchJOAFE } from 'hooks';
import React from 'react';
import { TwoColumnTable } from '../../../../../../components/table/simple';

type IProps = {
Expand All @@ -23,7 +23,7 @@ export const JustificatifImmatriculationJOAFE: React.FC<IProps> = ({

return (
<AsyncDataSectionClient
id="joafe"
id="justificatifs"
title="Enregistrement au JOAFE"
sources={[EAdministration.DILA]}
data={annoncesJOAFE}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ export const JustificatifImmatriculationRNE = ({
}) => (
<Section
title="Justificatif d’immatriculation au RNE"
id="justificatif-immatriculation-rne"
id="justificatifs"
sources={[EAdministration.INPI]}
>
<DataInpiLinkWithExplanations uniteLegale={uniteLegale} session={session} />
Expand Down
15 changes: 10 additions & 5 deletions app/api/auth/agent-connect/callback/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@ import { agentConnectAuthenticate } from '#clients/authentication/agent-connect/
import { HttpForbiddenError } from '#clients/exceptions';
import { getAgent } from '#models/user/agent';
import { logFatalErrorInSentry } from '#utils/sentry';
import { redirectTo } from '#utils/server-side-helper/app/redirect-to';
import { getAbsoluteSiteUrl } from '#utils/server-side-helper/app/get-absolute-site-url';
import { cleanPathFrom, getPathFrom, setAgentSession } from '#utils/session';
import withSession from '#utils/session/with-session';
import { NextResponse } from 'next/server';
import { AgentConnectFailedException } from '../agent-connect-types';

export const GET = withSession(async function callbackRoute(req) {
Expand All @@ -18,16 +19,20 @@ export const GET = withSession(async function callbackRoute(req) {

if (pathFrom) {
await cleanPathFrom(session);
return redirectTo(req, pathFrom);
return NextResponse.redirect(getAbsoluteSiteUrl(pathFrom));
} else {
return redirectTo(req, '/');
return NextResponse.redirect(getAbsoluteSiteUrl('/'));
}
} catch (e: any) {
logFatalErrorInSentry(new AgentConnectFailedException({ cause: e }));
if (e instanceof HttpForbiddenError) {
return redirectTo(req, '/connexion/echec-authorisation-requise');
return NextResponse.redirect(
getAbsoluteSiteUrl('/connexion/echec-authorisation-requise')
);
} else {
return redirectTo(req, '/connexion/echec-connexion');
return NextResponse.redirect(
getAbsoluteSiteUrl('/connexion/echec-connexion')
);
}
}
});
6 changes: 4 additions & 2 deletions app/api/auth/agent-connect/login/route.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { agentConnectAuthorizeUrl } from '#clients/authentication/agent-connect/strategy';
import { logFatalErrorInSentry } from '#utils/sentry';
import { redirectTo } from '#utils/server-side-helper/app/redirect-to';
import { getAbsoluteSiteUrl } from '#utils/server-side-helper/app/get-absolute-site-url';
import { setPathFrom } from '#utils/session';
import withSession from '#utils/session/with-session';
import { NextResponse } from 'next/server';
Expand All @@ -18,6 +18,8 @@ export const GET = withSession(async function loginRoute(req) {
return NextResponse.redirect(url);
} catch (e: any) {
logFatalErrorInSentry(new AgentConnectFailedException({ cause: e }));
return redirectTo(req, '/connexion/echec-connexion');
return NextResponse.redirect(
getAbsoluteSiteUrl('/connexion/echec-connexion')
);
}
});
9 changes: 5 additions & 4 deletions app/api/auth/agent-connect/logout-callback/route.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import logErrorInSentry from '#utils/sentry';
import { redirectTo } from '#utils/server-side-helper/app/redirect-to';
import { getAbsoluteSiteUrl } from '#utils/server-side-helper/app/get-absolute-site-url';
import { cleanAgentSession, cleanPathFrom, getPathFrom } from '#utils/session';
import withSession from '#utils/session/with-session';
import { NextResponse } from 'next/server';
import { AgentConnectLogoutFailedException } from '../agent-connect-types';

export const GET = withSession(async function logoutCallbackRoute(req) {
Expand All @@ -11,12 +12,12 @@ export const GET = withSession(async function logoutCallbackRoute(req) {
const pathFrom = getPathFrom(session);
if (pathFrom) {
await cleanPathFrom(session);
return redirectTo(req, pathFrom);
return NextResponse.redirect(getAbsoluteSiteUrl(pathFrom));
} else {
return redirectTo(req, '/connexion/au-revoir');
return NextResponse.redirect(getAbsoluteSiteUrl('/connexion/au-revoir'));
}
} catch (e: any) {
logErrorInSentry(new AgentConnectLogoutFailedException({ cause: e }));
return redirectTo(req, '/connexion/au-revoir');
return NextResponse.redirect(getAbsoluteSiteUrl('/connexion/au-revoir'));
}
});
4 changes: 2 additions & 2 deletions app/api/auth/agent-connect/logout/route.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { agentConnectLogoutUrl } from '#clients/authentication/agent-connect/strategy';
import logErrorInSentry from '#utils/sentry';
import { redirectTo } from '#utils/server-side-helper/app/redirect-to';
import { getAbsoluteSiteUrl } from '#utils/server-side-helper/app/get-absolute-site-url';
import { setPathFrom } from '#utils/session';
import withSession from '#utils/session/with-session';
import { NextResponse } from 'next/server';
Expand All @@ -13,6 +13,6 @@ export const GET = withSession(async function logoutRoute(req) {
return NextResponse.redirect(url);
} catch (e: any) {
logErrorInSentry(new AgentConnectLogoutFailedException({ cause: e }));
return redirectTo(req, '/connexion/au-revoir');
return NextResponse.redirect(getAbsoluteSiteUrl('/connexion/au-revoir'));
}
});
14 changes: 9 additions & 5 deletions app/api/auth/france-connect/callback/route.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import { franceConnectAuthenticate } from '#clients/authentication/france-connect/strategy';
import logErrorInSentry from '#utils/sentry';
import { redirectTo } from '#utils/server-side-helper/app/redirect-to';
import { getAbsoluteSiteUrl } from '#utils/server-side-helper/app/get-absolute-site-url';
import { setHidePersonalDataRequestFCSession } from '#utils/session';
import withSession from '#utils/session/with-session';
import { NextResponse } from 'next/server';
import { FranceConnectFailedException } from '../france-connect-types';

export const GET = withSession(async function callbackRoute(req) {
Expand All @@ -16,12 +17,15 @@ export const GET = withSession(async function callbackRoute(req) {
userInfo.sub,
req.session
);
return redirectTo(
req,
'/formulaire/supprimer-donnees-personnelles-entreprise'
return NextResponse.redirect(
getAbsoluteSiteUrl(
'/formulaire/supprimer-donnees-personnelles-entreprise'
)
);
} catch (e: any) {
logErrorInSentry(new FranceConnectFailedException({ cause: e }));
return redirectTo(req, '/connexion/echec-connexion');
return NextResponse.redirect(
getAbsoluteSiteUrl('/connexion/echec-connexion')
);
}
});
6 changes: 4 additions & 2 deletions app/api/auth/france-connect/login/route.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { FranceConnectAuthorizeUrl } from '#clients/authentication/france-connect/strategy';
import { logFatalErrorInSentry } from '#utils/sentry';
import { redirectTo } from '#utils/server-side-helper/app/redirect-to';
import { getAbsoluteSiteUrl } from '#utils/server-side-helper/app/get-absolute-site-url';
import withSession from '#utils/session/with-session';
import { NextResponse } from 'next/server';
import { FranceConnectFailedException } from '../france-connect-types';
Expand All @@ -11,6 +11,8 @@ export const GET = withSession(async function loginRoute(req) {
return NextResponse.redirect(url);
} catch (e: any) {
logFatalErrorInSentry(new FranceConnectFailedException({ cause: e }));
return redirectTo(req, '/connexion/echec-connexion');
return NextResponse.redirect(
getAbsoluteSiteUrl('/connexion/echec-connexion')
);
}
});
Loading

0 comments on commit c784d89

Please sign in to comment.