Inputvaledierung für die Projektnummern
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user