diff --git a/app.territoiresentransitions.react/src/app/pages/collectivite/Accueil/Accueil.tsx b/app.territoiresentransitions.react/src/app/pages/collectivite/Accueil/Accueil.tsx index 64e6f235da..369654d40f 100644 --- a/app.territoiresentransitions.react/src/app/pages/collectivite/Accueil/Accueil.tsx +++ b/app.territoiresentransitions.react/src/app/pages/collectivite/Accueil/Accueil.tsx @@ -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 ( +
+
+ Cette collectivité n’est pas accessible en mode visite. +
+
+ ); + } + + /** 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 ( + + ); +}; + +/** 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, @@ -19,7 +57,6 @@ const Accueil = (): JSX.Element => { caePotentiel, eciPotentiel, } = useProgressionReferentiel(); - return (
{!!collectiviteId && (