From 7cdbdfff6865a465b82a9d38837513ff36c3cb4a Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Tue, 2 Sep 2025 07:40:27 +0000 Subject: [PATCH] Expand administrative access to include additional user roles Update API endpoint to grant 'directeur' and 'manager' roles access to user data, alongside existing 'admin' role. Replit-Commit-Author: Agent Replit-Commit-Session-Id: f2b9c241-9fdd-4abd-9041-720afc8b27d6 Replit-Commit-Checkpoint-Type: full_checkpoint --- ...50-43B0-9D78-292B3BE069A9}_1756798691204.png | Bin 0 -> 13728 bytes server/routes.ts | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 attached_assets/{E06132F4-6C50-43B0-9D78-292B3BE069A9}_1756798691204.png diff --git a/attached_assets/{E06132F4-6C50-43B0-9D78-292B3BE069A9}_1756798691204.png b/attached_assets/{E06132F4-6C50-43B0-9D78-292B3BE069A9}_1756798691204.png new file mode 100644 index 0000000000000000000000000000000000000000..bee65ac059a31ebd611a3f1efb4ed1122632f5c6 GIT binary patch literal 13728 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 literal 0 HcmV?d00001 diff --git a/server/routes.ts b/server/routes.ts index ec6e7bf..7c6a70d 100644 --- a/server/routes.ts +++ b/server/routes.ts @@ -2063,7 +2063,7 @@ export async function registerRoutes(app: Express): Promise { app.get('/api/users', isAuthenticated, async (req: any, res) => { try { const user = await storage.getUserWithGroups(req.user.claims ? req.user.claims.sub : req.user.id); - if (!user || user.role !== 'admin') { + if (!user || !['admin', 'directeur', 'manager'].includes(user.role)) { return res.status(403).json({ message: "Access denied" }); }