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) {
|
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");
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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 });
|
||||||
|
|||||||
Reference in New Issue
Block a user