From 6a19e6fc0dbd1f30ba88bff8ba730596fe5d8486 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9ESophia?= <„sophia.haupt@mni.thm.de“> Date: Wed, 29 Jan 2025 11:32:34 +0100 Subject: [PATCH] admin repereiert --- userman_all/server/src/server.ts | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/userman_all/server/src/server.ts b/userman_all/server/src/server.ts index 0d7546d..4f4ee33 100644 --- a/userman_all/server/src/server.ts +++ b/userman_all/server/src/server.ts @@ -102,6 +102,16 @@ function isLoggedIn(req: Request, res: Response, next: NextFunction) { } } +function isLoggedAdmin(req: Request, res: Response, next: NextFunction) { + if (req.session.user != null && req.session.user.role === 'admin') { + next(); + } else { + res.status(401).send({ + message: 'sorry, du bist kein Admin :(', + }) + } +} + //HTTP-Routen /***************************************************************************** * HTTP ROUTES: LOGIN * @@ -605,7 +615,7 @@ app.put('/user', isLoggedIn, async (req: Request, res: Response): Promise<void> }); // update route admin -app.put('/user/:userId', isLoggedIn, async (req: Request, res: Response): Promise<void> => { +app.put('/user/:userId', isLoggedAdmin, async (req: Request, res: Response): Promise<void> => { console.log(req.body); // Read data from request const userId: number = parseInt(req.params.userId); @@ -690,7 +700,7 @@ app.put('/user/:userId', isLoggedIn, async (req: Request, res: Response): Promis * } */ -app.delete('/user/:userId', isLoggedIn, async (req: Request, res: Response): Promise<void> => { +app.delete('/user/:userId', isLoggedAdmin, async (req: Request, res: Response): Promise<void> => { // Read data from request const userId: number = parseInt(req.params.userId); // Delete user @@ -834,7 +844,7 @@ app.delete('/user', isLoggedIn, async (req: Request, res: Response): Promise<voi //stellt sicher, dass nur eingeloggte Benutzer Zugriff auf die Benutzerliste haben. // Die Route ruft alle Benutzer aus der Tabelle user in der Datenbank ab. // Sie wandelt die Ergebnisse der Datenbank in ein standardisiertes Format (User-Objekte) um. -app.get('/users', isLoggedIn, async (req: Request, res: Response): Promise<void> => { +app.get('/users', isLoggedAdmin, async (req: Request, res: Response): Promise<void> => { // Send user list to client const query: string = 'SELECT * FROM user;'; -- GitLab