Inputvaledierung für die Projektnummern

This commit is contained in:
2026-03-12 17:24:01 +01:00
parent 929b3eae57
commit af20dc6bd8
5 changed files with 117 additions and 8 deletions

View File

@@ -144,6 +144,12 @@ function registerVerwaltungRoutes(app) {
});
});
// Plausibilitätsprüfung Projektnummer: 7 Ziffern, beginnt mit 5, dann YY, dann 4 Ziffern
function isValidProjectNumber(value) {
if (!value || String(value).trim() === '') return false;
return /^5\d{6}$/.test(String(value).trim());
}
// Projektauswertung nach Mitarbeitern für eine Projektnummer
app.get('/verwaltung/projektauswertung', requireVerwaltung, (req, res) => {
const projectNumberRaw = req.query.project ? String(req.query.project).trim() : '';
@@ -165,6 +171,22 @@ function registerVerwaltungRoutes(app) {
});
}
if (!isValidProjectNumber(projectNumber)) {
return res.render('projekt-auswertung', {
user: {
firstname: req.session.firstname,
lastname: req.session.lastname,
roles: req.session.roles || [],
currentRole: req.session.currentRole || 'verwaltung'
},
projectNumber: projectNumberRaw,
results: [],
totalProjectHours: 0,
hasResults: false,
projectNumberError: 'Die Projektnummer muss 7 Ziffern haben, mit 5 beginnen, gefolgt vom Jahr (YY) und 4 Ziffern (z.B. 5260001).'
});
}
// Aggregation der Projektstunden pro Mitarbeiter über alle 5 Aktivitäten
const sql = `
SELECT