diff --git a/app/api/auth/route.ts b/app/api/auth/route.ts deleted file mode 100644 index 0f998d4..0000000 --- a/app/api/auth/route.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { NextRequest, NextResponse } from "next/server"; -import { AuthService, userService, TeamsService } from "@/services"; - -/** - * GET /api/auth - Récupère les informations de l'utilisateur connecté - */ -export async function GET(request: NextRequest) { - try { - // Récupérer l'UUID utilisateur depuis le cookie - const userUuid = await AuthService.getUserUuidFromCookie(); - - if (!userUuid) { - return NextResponse.json({ error: "Non authentifié" }, { status: 401 }); - } - - // Récupérer le profil utilisateur - const userProfile = await userService.getUserByUuid(userUuid); - - if (!userProfile) { - return NextResponse.json( - { error: "Utilisateur non trouvé" }, - { status: 404 } - ); - } - - // Récupérer le nom de l'équipe - let teamName = "Équipe non définie"; - if (userProfile.teamId) { - try { - const team = await TeamsService.getTeamById(userProfile.teamId); - if (team) { - teamName = team.name; - } - } catch (error) { - console.error("Failed to fetch team name:", error); - } - } - - // Retourner les informations complètes de l'utilisateur - return NextResponse.json({ - user: { - firstName: userProfile.firstName, - lastName: userProfile.lastName, - teamId: userProfile.teamId, - teamName: teamName, - uuid: userUuid, - }, - }); - } catch (error) { - console.error("Auth GET error:", error); - return NextResponse.json( - { error: "Erreur interne du serveur" }, - { status: 500 } - ); - } -} diff --git a/app/layout.tsx b/app/layout.tsx index 845d4cd..9fdbdac 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -7,6 +7,7 @@ import { ThemeProvider } from "@/components/layout/theme-provider"; import { Toaster } from "@/components/ui/sonner"; import { UserProvider } from "@/hooks/use-user-context"; import { NavigationWrapper } from "@/components/layout/navigation-wrapper"; +import { AuthService, TeamsService } from "@/services"; export const metadata: Metadata = { title: "PeakSkills - Auto-évaluation de compétences", @@ -14,11 +15,42 @@ export const metadata: Metadata = { "Plateforme d'auto-évaluation de compétences techniques pour les équipes", }; -export default function RootLayout({ +export default async function RootLayout({ children, }: { children: React.ReactNode; }) { + // Récupérer les infos utilisateur côté serveur + let userInfo = null; + try { + const { userUuid, userProfile } = + await AuthService.requireAuthenticatedUser(); + + // Récupérer le nom de l'équipe + let teamName = "Équipe non définie"; + if (userProfile.teamId) { + try { + const team = await TeamsService.getTeamById(userProfile.teamId); + if (team) { + teamName = team.name; + } + } catch (error) { + console.error("Failed to fetch team name:", error); + } + } + + userInfo = { + firstName: userProfile.firstName, + lastName: userProfile.lastName, + teamName, + teamId: userProfile.teamId, + uuid: userUuid, + }; + } catch (error) { + // Utilisateur non authentifié, userInfo reste null + console.log("User not authenticated:", error); + } + return (
-