From 773475b6680e8c80cecec3bc8ffb6b5fb353a630 Mon Sep 17 00:00:00 2001 From: Johannes Baumeister Date: Fri, 3 Jul 2026 09:14:57 +0200 Subject: [PATCH] feat: Parse Authentik groups for project assignment --- server.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/server.js b/server.js index db5df71..fb25f97 100644 --- a/server.js +++ b/server.js @@ -65,12 +65,25 @@ function getAllowedProjects(req) { return null; } - // Projekte aus Header parsen (Komma-separiert) + // Projekte aus Attribut-Header parsen (Komma-separiert) let allowedProjects = []; if (projectsHeader) { allowedProjects = projectsHeader.split(',').map(p => p.trim()).filter(Boolean); } + // Gruppen aus Authentik-Header extrahieren und ebenfalls als Projekte behandeln + const groupsHeader = req.headers['x-authentik-groups']; + if (groupsHeader) { + const groups = groupsHeader.split('|').map(g => g.trim()).filter(Boolean); + for (const group of groups) { + // Alle Gruppen einfach als erlaubte Projekte hinzufügen. + // Was kein Projekt ist (z.B. "portal-users"), wird später beim DB-Abgleich einfach ignoriert. + if (!allowedProjects.includes(group)) { + allowedProjects.push(group); + } + } + } + return { username, projects: allowedProjects,