diff --git a/Front-End/src/app/[locale]/admin/layout.js b/Front-End/src/app/[locale]/admin/layout.js index fb0ce43..72d15b8 100644 --- a/Front-End/src/app/[locale]/admin/layout.js +++ b/Front-End/src/app/[locale]/admin/layout.js @@ -127,7 +127,12 @@ export default function Layout({ onEstablishmentChange={(establishmentId) => { const parsedEstablishmentId = parseInt(establishmentId, 10); setSelectedEstablishmentId(parsedEstablishmentId); - const role = session.user.roles.find(role => role.establishment__id === parsedEstablishmentId)?.role_type; + let roleIndex = session.user.roles.findIndex(role => role.establishment__id === parsedEstablishmentId) + if (roleIndex === -1) { + roleIndex = 0; + } + setCurrentRoleIndex(roleIndex); + const role = session.user.roles[roleIndex].role_type; setProfileRole(role); }} /> diff --git a/Front-End/src/app/[locale]/admin/page.js b/Front-End/src/app/[locale]/admin/page.js index 3a2bde9..dc129ae 100644 --- a/Front-End/src/app/[locale]/admin/page.js +++ b/Front-End/src/app/[locale]/admin/page.js @@ -10,6 +10,7 @@ import logger from '@/utils/logger'; import { fetchRegisterForms } from '@/app/actions/subscriptionAction'; import { fetchUpcomingEvents } from '@/app/actions/planningAction'; import { getSession } from 'next-auth/react'; +import { getCurrentRoleIndex } from '@/store/Store'; // Composant EventCard pour afficher les événements @@ -46,7 +47,8 @@ export default function DashboardPage() { getSession() .then(session => { if (session && session.user) { - setEstablishmentId(session.user.establishment); + const establishmentId = session.user.roles[getCurrentRoleIndex()].establishment__id; + setEstablishmentId(establishmentId); } }) .catch(err => { diff --git a/Front-End/src/app/[locale]/users/login/page.js b/Front-End/src/app/[locale]/users/login/page.js index 564279b..b9fe159 100644 --- a/Front-End/src/app/[locale]/users/login/page.js +++ b/Front-End/src/app/[locale]/users/login/page.js @@ -16,10 +16,10 @@ import { login } from '@/app/actions/authAction'; import { getSession } from 'next-auth/react'; import { useCsrfToken } from '@/context/CsrfContext'; // Importez le hook useCsrfToken import logger from '@/utils/logger'; -import { useSession } from 'next-auth/react'; import ProfileSelector from '@/components/ProfileSelector'; // Importez le composant ProfileSelector +import { RIGHTS } from '@/utils/rights'; +import { setCurrentRoleIndex } from '@/store/Store'; -const useFakeData = process.env.NEXT_PUBLIC_USE_FAKE_DATA === 'true'; export default function Page() { const searchParams = useSearchParams(); @@ -63,9 +63,12 @@ export default function Page() { if (roles.length > 0) { // Redirection en fonction du rôle // Ne pas désactiver le loader avant la redirection - if (roles[0].role_type === 1) { + const currentRoleIndex = 0; + setCurrentRoleIndex(currentRoleIndex); + const role = roles[currentRoleIndex].role_type; + if (role === RIGHTS.ADMIN || role === RIGHTS.TEACHER) { router.push(FE_ADMIN_SUBSCRIPTIONS_URL); - } else if (roles[0].role_type === 2) { + } else if (role === RIGHTS.PARENT) { router.push(FE_PARENTS_HOME_URL); } else { setIsLoading(false); diff --git a/Front-End/src/store/Store.js b/Front-End/src/store/Store.js new file mode 100644 index 0000000..e173513 --- /dev/null +++ b/Front-End/src/store/Store.js @@ -0,0 +1,11 @@ + +// Current Role Index +// Cette fonction permet de stocker et l'index du rôle actuel dans le localStorage +export function setCurrentRoleIndex(currentRoleIndex){ + localStorage.setItem('currentRoleIndex', currentRoleIndex); +} + +export function getCurrentRoleIndex(){ + const currentRoleIndex = localStorage.getItem('currentRoleIndex'); + return currentRoleIndex? currentRoleIndex : 0; +} \ No newline at end of file