diff --git a/server/controllers/archive.ts b/server/controllers/archive.ts index 5088f993f..0d08f3019 100644 --- a/server/controllers/archive.ts +++ b/server/controllers/archive.ts @@ -8,15 +8,18 @@ import { Controller } from './controller'; const archiveController = new Controller('/archives'); // get file -archiveController.get({ path: '/*', userType: [UserType.SUPER_ADMIN, UserType.ADMIN, UserType.MEDIATOR] }, async (req: Request, res: Response, next: NextFunction) => { - const url = decodeURI(req.url); - const key = `archives${url}${url.split('/').length === 2 ? '/index.html' : url.indexOf('.') === -1 ? '.html' : ''}`; - try { - streamFile(key, req, res, next); - } catch { - next(); - } -}); +archiveController.get( + { path: '/*', userType: [UserType.SUPER_ADMIN, UserType.ADMIN, UserType.MEDIATOR] }, + async (req: Request, res: Response, next: NextFunction) => { + const url = decodeURI(req.url); + const key = `archives${url}${url.split('/').length === 2 ? '/index.html' : url.indexOf('.') === -1 ? '.html' : ''}`; + try { + streamFile(key, req, res, next); + } catch { + next(); + } + }, +); /** * Liste les dossiers dans un préfixe S3 spécifié. diff --git a/src/api/archive/archive.get.ts b/src/api/archive/archive.get.ts index 31ca2a629..31c609a82 100644 --- a/src/api/archive/archive.get.ts +++ b/src/api/archive/archive.get.ts @@ -1,22 +1,26 @@ import axios from 'axios'; +import React from 'react'; import { useQuery } from 'react-query'; -import {UserContext} from "../../contexts/userContext"; -import React from "react"; -import {UserType} from "../../../types/user.type"; -const { user } = React.useContext(UserContext); + +import { UserType } from '../../../types/user.type'; +import { UserContext } from '../../contexts/userContext'; const BASE_URL = '/api/archives'; // Récupérer la liste des années déjà archivées export const useListArchives = () => { const { user } = React.useContext(UserContext); - if(!user) return; - const hasAccess = user?.type === [UserType.SUPER_ADMIN, UserType.ADMIN, UserType.MEDIATOR].find((type) => type === user?.type); - if (!hasAccess) { - return; - } - return useQuery(['archives'], async () => { - const { data } = await axios.get(`${BASE_URL}`); - return data; - }); + + const hasAccess = user && [UserType.SUPER_ADMIN, UserType.ADMIN, UserType.MEDIATOR].includes(user.type); + + return useQuery( + ['archives'], + async () => { + const { data } = await axios.get(`${BASE_URL}`); + return data; + }, + { + enabled: hasAccess, // La requête ne sera exécutée que si hasAccess est true + }, + ); }; diff --git a/src/pages/index.tsx b/src/pages/index.tsx index adff97c63..7c1b40c0f 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -6,8 +6,6 @@ import { UserContext } from 'src/contexts/userContext'; const Home = () => { const { isLoggedIn } = React.useContext(UserContext); - const { user } = React.useContext(UserContext); - console.log(user); if (!isLoggedIn) { return ;