From 11e433865097f1a065b1da13a7c3901e57eff977 Mon Sep 17 00:00:00 2001 From: FlorianSpeicher Date: Sun, 15 Jun 2025 19:55:05 +0200 Subject: [PATCH] Added admin page only show when admin is logged in. --- 00-backend/datasource/database.sqlite | Bin 20824064 -> 20824064 bytes 01-frontend/src/components/Account.tsx | 1 + 01-frontend/src/helper/navbar/LoginDialog.tsx | 1 + 01-frontend/src/helper/navbar/NavBar.tsx | 17 +++++++++++++---- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/00-backend/datasource/database.sqlite b/00-backend/datasource/database.sqlite index 97812985e2a81b05c5ee4123cbd0ae93cd205b94..1933a3705322b9912ff8200d650745200cd2a1dd 100644 GIT binary patch delta 1495 zcmZA1d3?`x9Ki8?xBalO?`N26`(fDp%w}_p&6zXBQaZ`1w~}h4)`5uTc%u+H_{ot< z)+H*oSRq%3YAO-yl%vBjDpQnRZ-4sZ`TFPmc)Z{Ly^D&fVu~<7$tzqC?Bf+q5fx7* zQYA_yS|y-TO{Ka@4V4&`Se2S8wN&C%d=;k>uTop3j!IpX1eJO!^;H_EG*oG%lBklT z5>#od(nO`HO0r5bmF6lfR8mw@Ra&l>(8@K*zMmiA4!Z4bm7C=XT%OBx@&0Llk6+@4 z{Rw`4Y0BDAuHP-_2O=^8Uccirs?MD4Kcx8R;Oq^{M#OrH!aGaSB7<=kr+Mk?E*$Ef zH?ervs3kc|3-&VIR<rsMIyo(Lkh%&r~_pu3^u>~JsE4E=fc3>wy z#7FoTpI{e0#b@{&<=Blc@Fl*&9(;|x*oSYh9|ur@Z}AZ#OMNl*KXZg7_G43 z#Bt%!>EV!3+lE!w6fD@FRk4kcFOU-Q{toEf6GRPMwaE?TpFl}paZhd5uFf4XJjJ>x#)tf=!WjdLl5*sK6;@y z`k*h)KtG&`v(O)BqW}YN4$j4SI3I-=h(Q>PA-DiTaUm|k#kd5Q;xY`w<+uXFaV19J zDvZR{xCVl2aUHJ54Y(1bFd8?(Zc&6=Fb20`EQ&D>w_!YP#~rv6cj0c_gL^Rn_u+m_ z#3Vd`5=_Q}n1ZQLOhYNA;~|t`1|G&t%))GxV-6m{T+G9KEWkp1dn1V9>e2U zh9~eOmSY8;!b&`iXYeeZ!}C~$3cP^TScA2A5ij9oRAL>f@CshVYgmsBcpV#2jZJt1 zoAD;LU@P9j+js}>;yt{NZTJA&QG*@WiCy>*yYUe|#vbg&C-@Yf;d6X}FYy(=#y8l9 z{rDCKa1e*^9lpm8_z{P31V7^K$8iED@i+d#sTqM9Z#FD- zEb*3rC1|N@sb{HgNw74qG_)jILKffREJ>C|md2K3ONyn5rKzQvrMabrCDjtPq*+>8 zT3K3K(k*Q)Z7uCA8J0{-drQR9!IEX^Xz65$S~^>@EjgB4OBYL5OE*h*OP-~NrKcs| R(#z7@(#Najb$BO_{tJK5ZrcC= 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 (