Skip to content

Commit

Permalink
Vérifie que l'utilisateur a bien les droits avant d'afficher le table…
Browse files Browse the repository at this point in the history
…au de bord de l'accueil sinon on affiche un message
  • Loading branch information
Arthur Molinos authored and marc-rutkowski committed May 13, 2024
1 parent 8d7325c commit 3d2ce9f
Showing 1 changed file with 40 additions and 3 deletions.
Original file line number Diff line number Diff line change
@@ -1,16 +1,54 @@
import {ReactNode} from 'react';
import {referentielToName} from 'app/labels';
import {useCollectiviteId} from 'core-logic/hooks/params';
import {useProgressionReferentiel} from './data/useProgressionReferentiel';
import EtatDesLieux from './EtatDesLieux/EtatDesLieux';
import IndicateursCard from './IndicateursCard';
import PlansActionCard from './PlansActionCard';
import {useCurrentCollectivite} from 'core-logic/hooks/useCurrentCollectivite';
import {useAuth} from 'core-logic/api/auth/AuthProvider';

/**
* Affiche la page d'accueil d'une collectivité
*/
const Accueil = (): JSX.Element => {
const collectiviteId = useCollectiviteId();
const collectivite = useCurrentCollectivite();

const {user} = useAuth();

if (!collectivite?.collectivite_id) return <></>;

/** Vérifi que l'utilisateur peut accéder à la collectivité */
const hasNoAccessToCollectivite =
collectivite.acces_restreint &&
collectivite.niveau_acces === null &&
!user?.isSupport &&
!collectivite.est_auditeur;

/** S'il ne peut pas, on affiche un message */
if (hasNoAccessToCollectivite) {
return (
<div className="flex-grow flex">
<div className="m-auto text-grey-7">
Cette collectivité n’est pas accessible en mode visite.
</div>
</div>
);
}

/** Sinon on affiche la page.
* Ceci permet de ne pas appeler `useProgressionReferentiel`
* qui ne marche pas si l'utilisateur n'a pas les droits */
return (
<AccueilNonConfidentielle collectiviteId={collectivite.collectivite_id} />
);
};

/** Affiche le tableau de bord de l'accueil pour les utilisateurs avec les droits nécessaires */
const AccueilNonConfidentielle = ({
collectiviteId,
}: {
collectiviteId: number;
}) => {
const {
caeTable: caeProgressionScore,
eciTable: eciProgressionScore,
Expand All @@ -19,7 +57,6 @@ const Accueil = (): JSX.Element => {
caePotentiel,
eciPotentiel,
} = useProgressionReferentiel();

return (
<main data-test="TableauBord" className="bg-bf975 -mb-8">
{!!collectiviteId && (
Expand Down

0 comments on commit 3d2ce9f

Please sign in to comment.