Projektvorschläge toggelbar

This commit is contained in:
2026-03-15 23:43:51 +01:00
parent 2d0bcbbd2f
commit dbeda9c2ae
6 changed files with 231 additions and 3 deletions

View File

@@ -130,6 +130,50 @@ function registerUserRoutes(app) {
});
});
// API: Projektvorschläge-Einstellung abrufen
app.get('/api/user/project-search-enabled', requireAuth, (req, res) => {
const userId = req.session.userId;
db.get('SELECT project_search_enabled FROM users WHERE id = ?', [userId], (err, user) => {
if (err) {
return res.status(500).json({ error: 'Fehler beim Abrufen der Einstellung' });
}
// Standardwert: 1 (aktiviert) wenn nicht gesetzt
const enabled = user?.project_search_enabled !== null && user?.project_search_enabled !== undefined
? (user.project_search_enabled === 1)
: true;
res.json({ project_search_enabled: enabled });
});
});
// API: Projektvorschläge-Einstellung speichern
app.post('/api/user/project-search-enabled', requireAuth, (req, res) => {
const userId = req.session.userId;
const { project_search_enabled } = req.body;
// Validierung: Muss boolean oder 0/1 sein
let enabledValue;
if (typeof project_search_enabled === 'boolean') {
enabledValue = project_search_enabled ? 1 : 0;
} else if (project_search_enabled === 1 || project_search_enabled === '1' || project_search_enabled === true) {
enabledValue = 1;
} else if (project_search_enabled === 0 || project_search_enabled === '0' || project_search_enabled === false) {
enabledValue = 0;
} else {
return res.status(400).json({ error: 'Ungültiger Wert für project_search_enabled' });
}
db.run('UPDATE users SET project_search_enabled = ? WHERE id = ?', [enabledValue, userId], (err) => {
if (err) {
return res.status(500).json({ error: 'Fehler beim Speichern der Einstellung' });
}
res.json({ success: true, project_search_enabled: enabledValue === 1 });
});
});
// API: Rollenwechsel
app.post('/api/user/switch-role', requireAuth, (req, res) => {
const { role } = req.body;