From ca8030afbd6b782a2397bd136d69ec177c9ba212 Mon Sep 17 00:00:00 2001 From: Theis Gaedigk Date: Fri, 21 Nov 2025 17:10:48 +0100 Subject: [PATCH] Enhance user management: update User context and API to include first name, last name, and admin status --- FrontendV2/src/App.tsx | 8 +++++++- FrontendV2/src/components/Header.tsx | 5 ++--- FrontendV2/src/states/Context.ts | 7 +++++-- backendV2/routes/app/userMgmt.route.js | 3 +++ 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/FrontendV2/src/App.tsx b/FrontendV2/src/App.tsx index 4854b1a..1a5d28a 100644 --- a/FrontendV2/src/App.tsx +++ b/FrontendV2/src/App.tsx @@ -36,7 +36,13 @@ function App() { if (response.ok) { setTriggerLogout(false); const data = await response.json(); - setUser({ username: data.user.username, role: data.user.role }); + setUser({ + username: data.user.username, + is_admin: data.user.is_admin, + first_name: data.user.first_name, + last_name: data.user.last_name, + role: data.user.role, + }); setIsLoggedIn(true); } else { Cookies.remove("token"); diff --git a/FrontendV2/src/components/Header.tsx b/FrontendV2/src/components/Header.tsx index 8c7c7a6..0f57a85 100644 --- a/FrontendV2/src/components/Header.tsx +++ b/FrontendV2/src/components/Header.tsx @@ -37,6 +37,7 @@ import { API_BASE } from "@/config/api.config"; export const Header = () => { const navigate = useNavigate(); const userData = useUserContext(); + console.log(userData); const { t } = useTranslation(); // Error handling states @@ -91,9 +92,7 @@ export const Header = () => { setConfirmPassword(""); }; - const username = userData?.username - ? userData.username[0].toUpperCase() + userData.username.slice(1) - : "User"; + const username = userData.first_name ? userData.first_name : "N/A"; const logout = () => { Cookies.remove("token"); diff --git a/FrontendV2/src/states/Context.ts b/FrontendV2/src/states/Context.ts index 4e00baa..137bdb9 100644 --- a/FrontendV2/src/states/Context.ts +++ b/FrontendV2/src/states/Context.ts @@ -3,6 +3,9 @@ import { useContext } from "react"; export interface User { username: string; + is_admin: boolean; + first_name: string; + last_name: string; role: number; } @@ -12,8 +15,8 @@ export function useUserContext() { const user = useContext(UserContext); if (user === undefined) { - throw new Error("useUserContext must be used with a UserContext") + throw new Error("useUserContext must be used with a UserContext"); } return user; -} \ No newline at end of file +} diff --git a/backendV2/routes/app/userMgmt.route.js b/backendV2/routes/app/userMgmt.route.js index ae2c214..85e1f9e 100644 --- a/backendV2/routes/app/userMgmt.route.js +++ b/backendV2/routes/app/userMgmt.route.js @@ -12,6 +12,9 @@ router.post("/login", async (req, res) => { if (result.success) { const token = await generateToken({ username: result.data.username, + is_admin: result.data.is_admin, + first_name: result.data.first_name, + last_name: result.data.last_name, role: result.data.role, }); res.status(200).json({ message: "Login successful", token });