diff --git a/defaults/interfaces.ts b/defaults/interfaces.ts index 8b47919..4ec65b3 100644 --- a/defaults/interfaces.ts +++ b/defaults/interfaces.ts @@ -5,7 +5,8 @@ export interface AuthenticatedState { isAuthenticated: true; isFromPolytech: boolean; role: "etudiant" | "professeur" | "administration" | "autre"; - session: CasContent; + displayName: string; + uid: string; availablePages: Record; } diff --git a/routes/(apps)/_middleware.ts b/routes/(apps)/_middleware.ts index f30f19f..c2db154 100644 --- a/routes/(apps)/_middleware.ts +++ b/routes/(apps)/_middleware.ts @@ -23,7 +23,7 @@ export const handler: MiddlewareHandler[] = [ context.state.availablePages = properties.pages; if ( - context.state.session.eduPersonPrimaryAffiliation == "student" && + context.state.role == "etudiant" && Deno.env.get("LOCAL") != "true" ) { properties.adminOnly.forEach((page) => diff --git a/routes/(apps)/mobility/partials/index.tsx b/routes/(apps)/mobility/partials/index.tsx index 2971e0e..4c777a0 100644 --- a/routes/(apps)/mobility/partials/index.tsx +++ b/routes/(apps)/mobility/partials/index.tsx @@ -7,7 +7,7 @@ import { State } from "$root/routes/_middleware.ts"; // deno-lint-ignore require-await export async function Index(_request: Request, context: FreshContext) { - return

Welcome to {context.state.session?.displayName}.

; + return

Welcome to {context.state.displayName || 'Guest'}.

; } export const config = getPartialsConfig(); diff --git a/routes/(apps)/notes/partials/(admin)/courses.tsx b/routes/(apps)/notes/partials/(admin)/courses.tsx index 3ac215d..173e74c 100644 --- a/routes/(apps)/notes/partials/(admin)/courses.tsx +++ b/routes/(apps)/notes/partials/(admin)/courses.tsx @@ -7,7 +7,7 @@ import { State } from "$root/routes/_middleware.ts"; // deno-lint-ignore require-await async function Courses(_request: Request, context: FreshContext) { - return

Welcome to {context.state.session?.displayName}.

; + return

Welcome to {context.state.displayName || 'Guest'}.

; } export const config = getPartialsConfig(); diff --git a/routes/(apps)/notes/partials/index.tsx b/routes/(apps)/notes/partials/index.tsx index 2971e0e..4c777a0 100644 --- a/routes/(apps)/notes/partials/index.tsx +++ b/routes/(apps)/notes/partials/index.tsx @@ -7,7 +7,7 @@ import { State } from "$root/routes/_middleware.ts"; // deno-lint-ignore require-await export async function Index(_request: Request, context: FreshContext) { - return

Welcome to {context.state.session?.displayName}.

; + return

Welcome to {context.state.displayName || 'Guest'}.

; } export const config = getPartialsConfig(); diff --git a/routes/(apps)/notes/partials/notes.tsx b/routes/(apps)/notes/partials/notes.tsx index 1e3bbc1..7981b26 100644 --- a/routes/(apps)/notes/partials/notes.tsx +++ b/routes/(apps)/notes/partials/notes.tsx @@ -7,7 +7,7 @@ import { State } from "$root/routes/_middleware.ts"; // deno-lint-ignore require-await async function Notes(_request: Request, context: FreshContext) { - return

Welcome to {context.state.session?.displayName}.

; + return

Welcome to {context.state.displayName || 'Guest'}.

; } export const config = getPartialsConfig(); diff --git a/routes/(apps)/students/api/students.ts b/routes/(apps)/students/api/students.ts index 157299f..63fe883 100644 --- a/routes/(apps)/students/api/students.ts +++ b/routes/(apps)/students/api/students.ts @@ -60,8 +60,8 @@ function getAll( */ function addStudents(database: Database, students: Student[], promoId: string) { const query = ` - INSERT INTO students - (userId, firstName, lastName, mail, promotionId) + INSERT INTO students + (userId, firstName, lastName, mail, promotionId) VALUES (?, ?, ?, ?, ?)`; const statement = database.prepare(query); @@ -92,9 +92,9 @@ export const handler: Handlers = { using connection = connect("students"); const database = connection.database; - if (context.state.session.eduPersonPrimaryAffiliation == "student") { + if (context.state.role == "etudiant") { return new Response( - JSON.stringify(getItself(database, context.state.session.uid)), + JSON.stringify(getItself(database, context.state.uid)), { headers: { "content-type": "application/json", diff --git a/routes/(apps)/students/partials/index.tsx b/routes/(apps)/students/partials/index.tsx index 78931b5..a104eae 100644 --- a/routes/(apps)/students/partials/index.tsx +++ b/routes/(apps)/students/partials/index.tsx @@ -8,13 +8,7 @@ import SelfPortrait from "$root/routes/(apps)/students/(_components)/SelfPortrai // deno-lint-ignore require-await export async function Index(_request: Request, context: FreshContext) { - return ( - <> -

Welcome {context.state.session?.givenName}!

-

Your amU identity

- - - ); + return

Welcome {context.state.displayName || 'Guest'}!

; } export const config = getPartialsConfig(); diff --git a/routes/_middleware.ts b/routes/_middleware.ts index 56a9a64..d61fe4f 100644 --- a/routes/_middleware.ts +++ b/routes/_middleware.ts @@ -77,13 +77,14 @@ export const handler: MiddlewareHandler[] = [ context.state.isFromPolytech = isFromPolytech; if (isFromPolytech) { - context.state.session = session; + context.state.displayName = session.displayName; + context.state.uid = session.uid; - if (session.eduPersonPrimaryAffiliation.includes("faculty")) { + if (session.eduPersonPrimaryAffiliation == "faculty") { context.state.role = "professeur" - } else if (session.eduPersonPrimaryAffiliation.includes("employee")) { + } else if (session.eduPersonPrimaryAffiliation == "employee") { context.state.role = "administration" - } else if (session.eduPersonPrimaryAffiliation.includes("student")) { + } else if (session.eduPersonPrimaryAffiliation == "student") { context.state.role = "etudiant"; } else { context.state.role = "autre";