Isolate client workspaces from root portfolio and restrict Admin view to root images
Some checks failed
Build & Push Docker Image / build-and-push (push) Has been cancelled

This commit is contained in:
Kroonk
2026-04-12 20:47:24 +02:00
parent eaa5945611
commit 5c81e93455

View File

@@ -140,21 +140,15 @@ app.get('/images/fulls/', (req, res) => {
const folders = listSubfolders(FULLS_DIR); const folders = listSubfolders(FULLS_DIR);
// Admin: Root + alle Ordner // Admin: Nur Root-Bilder (damit die Startseite sauber bleibt)
if (req.user.role === 'admin') { if (req.user.role === 'admin') {
const allImages = [...rootImages]; return res.json(rootImages);
folders.forEach(folder => {
listImagesInDir(path.join(FULLS_DIR, folder)).forEach(name => {
allImages.push({ name, type: 'file', folder });
});
});
return res.json(allImages);
} }
// User/Client: Root + zugewiesene Ordner // User/Client: NUR zugewiesene Ordner (keine Root-Bilder untermischen)
db.all('SELECT folder_name FROM user_folders WHERE user_id = ?', [req.user.id], (err, rows) => { db.all('SELECT folder_name FROM user_folders WHERE user_id = ?', [req.user.id], (err, rows) => {
const assignedFolders = err ? [] : rows.map(r => r.folder_name); const assignedFolders = err ? [] : rows.map(r => r.folder_name);
const result = [...rootImages]; const result = [];
assignedFolders.forEach(folder => { assignedFolders.forEach(folder => {
if (folders.includes(folder)) { if (folders.includes(folder)) {
listImagesInDir(path.join(FULLS_DIR, folder)).forEach(name => { listImagesInDir(path.join(FULLS_DIR, folder)).forEach(name => {