Massdownload

This commit is contained in:
Carsten Graf
2026-01-23 17:29:46 +01:00
parent a0acd188a8
commit daf4f9b77c
13 changed files with 2135 additions and 104 deletions

View File

@@ -6,7 +6,7 @@ const LDAPService = require('../ldap-service');
const { getDefaultRole } = require('../helpers/utils');
// Helper-Funktion für erfolgreiche Anmeldung
function handleSuccessfulLogin(req, res, user) {
function handleSuccessfulLogin(req, res, user, rememberMe = false) {
// Rollen als JSON-Array parsen
let roles = [];
try {
@@ -35,6 +35,13 @@ function handleSuccessfulLogin(req, res, user) {
req.session.firstname = user.firstname;
req.session.lastname = user.lastname;
// Session-Gültigkeit setzen: 30 Tage wenn "Angemeldet bleiben" aktiviert, sonst 24 Stunden
if (rememberMe) {
req.session.cookie.maxAge = 30 * 24 * 60 * 60 * 1000; // 30 Tage
} else {
req.session.cookie.maxAge = 24 * 60 * 60 * 1000; // 24 Stunden
}
// Redirect: Immer zu Dashboard wenn Mitarbeiter-Rolle vorhanden, sonst basierend auf Standard-Rolle
if (roles.includes('mitarbeiter')) {
res.redirect('/dashboard');
@@ -56,7 +63,8 @@ function registerAuthRoutes(app) {
// Login-Verarbeitung
app.post('/login', (req, res) => {
const { username, password } = req.body;
const { username, password, remember_me } = req.body;
const rememberMe = remember_me === 'on' || remember_me === true;
// Prüfe ob LDAP aktiviert ist
LDAPService.getConfig((err, ldapConfig) => {
@@ -78,7 +86,7 @@ function registerAuthRoutes(app) {
// Versuche lokale Authentifizierung
if (bcrypt.compareSync(password, user.password)) {
handleSuccessfulLogin(req, res, user);
handleSuccessfulLogin(req, res, user, rememberMe);
} else {
res.render('login', { error: 'Ungültiger Benutzername oder Passwort' });
}
@@ -90,7 +98,7 @@ function registerAuthRoutes(app) {
return res.render('login', { error: 'Benutzer nicht in der Datenbank gefunden. Bitte führen Sie eine LDAP-Synchronisation durch.' });
}
handleSuccessfulLogin(req, res, user);
handleSuccessfulLogin(req, res, user, rememberMe);
});
}
});
@@ -102,7 +110,7 @@ function registerAuthRoutes(app) {
}
if (bcrypt.compareSync(password, user.password)) {
handleSuccessfulLogin(req, res, user);
handleSuccessfulLogin(req, res, user, rememberMe);
} else {
res.render('login', { error: 'Ungültiger Benutzername oder Passwort' });
}