diff --git a/gradesa/src/app/api/edit_info/route.js b/gradesa/src/app/api/edit_info/route.js new file mode 100644 index 0000000..30c9bd4 --- /dev/null +++ b/gradesa/src/app/api/edit_info/route.js @@ -0,0 +1,17 @@ +import { checkSession } from "@/backend/auth/session"; + +export const dynamic = "force-dynamic"; // Ensures it's server-executed always + +export async function GET() { + try { + const user = await checkSession(); + + if (!user) { + return new Response("Unauthorized", { status: 401 }); + } + + return Response.json({ user }); + } catch (err) { + return new Response("Internal Server Error", { status: 500 }); + } +} diff --git a/gradesa/src/app/edit_info/layout.js b/gradesa/src/app/edit_info/layout.js new file mode 100644 index 0000000..a145ce8 --- /dev/null +++ b/gradesa/src/app/edit_info/layout.js @@ -0,0 +1,16 @@ +"use client"; +import "../auth/auth.css"; +import { useIsLoggedIn } from "@/context/user.context"; + +export default function AuthLayout({ children }) { + const userLoggedIn = useIsLoggedIn(); + + if (userLoggedIn == true) { + console.log(userLoggedIn); + return ( +
+
{children}
+
+ ); + } +} diff --git a/gradesa/src/app/edit_info/page.js b/gradesa/src/app/edit_info/page.js new file mode 100644 index 0000000..565829f --- /dev/null +++ b/gradesa/src/app/edit_info/page.js @@ -0,0 +1,48 @@ +"use client"; + +import { useState, useEffect } from "react"; +import { useRouter } from "next/navigation"; +import styles from "../page.module.css"; +import { Container } from "@/components/ui/layout/container"; +import { LinkButton } from "@/components/ui/linkbutton"; +import { Grid } from "@radix-ui/themes"; + +export default function EditInfo() { + const [user, setUser] = useState(null); + const router = useRouter(); + + useEffect(() => { + const getUser = async () => { + const res = await fetch("/api/edit_info"); + + if (res.status === 401) { + router.replace("/auth/login"); + return; + } + + const data = await res.json(); + setUser(data.user); + }; + + getUser(); + }, [router]); + + console.log(user); + + if (!user) { + return
Loading...
; + } + + return ( + +

Deine Profile

+ +

Benutzernam: {user.username}

+ Change Password +

Deine Email: {user.email}

+ Change email + + +
+ ); +} diff --git a/gradesa/src/components/ui/sidebar/sidebar.js b/gradesa/src/components/ui/sidebar/sidebar.js index ed64231..91417b4 100644 --- a/gradesa/src/components/ui/sidebar/sidebar.js +++ b/gradesa/src/components/ui/sidebar/sidebar.js @@ -61,6 +61,9 @@ function StudentSideBar() { > Vokabeln + + Profil + ); }