Enhance user management: update User context and API to include first name, last name, and admin status

This commit is contained in:
2025-11-21 17:10:48 +01:00
parent 1076b12668
commit ca8030afbd
4 changed files with 17 additions and 6 deletions

View File

@@ -36,7 +36,13 @@ function App() {
if (response.ok) { if (response.ok) {
setTriggerLogout(false); setTriggerLogout(false);
const data = await response.json(); 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); setIsLoggedIn(true);
} else { } else {
Cookies.remove("token"); Cookies.remove("token");

View File

@@ -37,6 +37,7 @@ import { API_BASE } from "@/config/api.config";
export const Header = () => { export const Header = () => {
const navigate = useNavigate(); const navigate = useNavigate();
const userData = useUserContext(); const userData = useUserContext();
console.log(userData);
const { t } = useTranslation(); const { t } = useTranslation();
// Error handling states // Error handling states
@@ -91,9 +92,7 @@ export const Header = () => {
setConfirmPassword(""); setConfirmPassword("");
}; };
const username = userData?.username const username = userData.first_name ? userData.first_name : "N/A";
? userData.username[0].toUpperCase() + userData.username.slice(1)
: "User";
const logout = () => { const logout = () => {
Cookies.remove("token"); Cookies.remove("token");

View File

@@ -3,6 +3,9 @@ import { useContext } from "react";
export interface User { export interface User {
username: string; username: string;
is_admin: boolean;
first_name: string;
last_name: string;
role: number; role: number;
} }
@@ -12,7 +15,7 @@ export function useUserContext() {
const user = useContext(UserContext); const user = useContext(UserContext);
if (user === undefined) { 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; return user;

View File

@@ -12,6 +12,9 @@ router.post("/login", async (req, res) => {
if (result.success) { if (result.success) {
const token = await generateToken({ const token = await generateToken({
username: result.data.username, 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, role: result.data.role,
}); });
res.status(200).json({ message: "Login successful", token }); res.status(200).json({ message: "Login successful", token });