diff --git a/00-backend/datasource/database.sqlite b/00-backend/datasource/database.sqlite index 9781298..1933a37 100644 Binary files a/00-backend/datasource/database.sqlite and b/00-backend/datasource/database.sqlite differ diff --git a/01-frontend/src/components/Account.tsx b/01-frontend/src/components/Account.tsx index 94235a6..9e18395 100644 --- a/01-frontend/src/components/Account.tsx +++ b/01-frontend/src/components/Account.tsx @@ -41,6 +41,7 @@ export type User = { email: string; customerId: number; session: string; + isAdmin: boolean; // weitere Felder nach Bedarf }; diff --git a/01-frontend/src/helper/navbar/LoginDialog.tsx b/01-frontend/src/helper/navbar/LoginDialog.tsx index 00322bc..fdf835c 100644 --- a/01-frontend/src/helper/navbar/LoginDialog.tsx +++ b/01-frontend/src/helper/navbar/LoginDialog.tsx @@ -70,6 +70,7 @@ const LoginDialog: React.FC = ({ open, onClose, loginData, set password: customerData.password, customerId: customerData.customer.id, // Setze die customerId aus den Account-Daten session: session, // Setze die Session aus der Login-Antwort + isAdmin: customerData.admin }; login(user); setShowRegister(false); // Zurück zum Login wechseln diff --git a/01-frontend/src/helper/navbar/NavBar.tsx b/01-frontend/src/helper/navbar/NavBar.tsx index 54a5b55..05ca617 100644 --- a/01-frontend/src/helper/navbar/NavBar.tsx +++ b/01-frontend/src/helper/navbar/NavBar.tsx @@ -46,7 +46,17 @@ export default function NavBar() { const pageKeys = ['components', 'checkout', 'contact', 'admin']; - const pages = pageKeys.map(key => ({ key, label: t(key) })); + const filteredPages = pageKeys + .filter(key => { + if (key === "admin") { + return user?.isAdmin === true; // nur Admins sehen Admin-Seite + } + return true; // alle anderen Seiten immer anzeigen + }) + .map(key => ({ key, label: t(key) })); + + + const settings = user ? [ { @@ -111,7 +121,6 @@ export default function NavBar() { React.useEffect(() => { // Setze den Avatar-Namen, wenn der Benutzer angemeldet ist if (user !== undefined && user !== null) { - console.log("User:", user); setAvatarName(user.email.toUpperCase()); } }, [user]); @@ -198,7 +207,7 @@ export default function NavBar() { - {pages.map(({ key, label }) => { + {filteredPages.map(({ key, label }) => { if (key === 'checkout') { return (