Enhance user management: update User context and API to include first name, last name, and admin status
This commit is contained in:
@@ -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");
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 });
|
||||
|
||||
Reference in New Issue
Block a user