Massdownload
This commit is contained in:
@@ -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' });
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user