45 lines
1.4 KiB
JavaScript
45 lines
1.4 KiB
JavaScript
// Dashboard-Route
|
||
|
||
const { hasRole } = require('../helpers/utils');
|
||
const { requireAuth } = require('../middleware/auth');
|
||
const { generateCheckinCheckoutQRPDF } = require('../services/pdf-service');
|
||
|
||
// Routes registrieren
|
||
function registerDashboardRoutes(app) {
|
||
// QR-Code-PDF (Check-in/Check-out) – nur für eingeloggte Nutzer mit Mitarbeiter-Rolle
|
||
app.get('/api/dashboard/qr-pdf', requireAuth, (req, res) => {
|
||
if (!hasRole(req, 'mitarbeiter')) {
|
||
return res.status(403).send('Zugriff verweigert');
|
||
}
|
||
generateCheckinCheckoutQRPDF(req, res);
|
||
});
|
||
|
||
// Dashboard für Mitarbeiter
|
||
app.get('/dashboard', requireAuth, (req, res) => {
|
||
// Prüfe ob User Mitarbeiter-Rolle hat
|
||
if (!hasRole(req, 'mitarbeiter')) {
|
||
// Wenn User keine Mitarbeiter-Rolle hat, aber andere Rollen, redirecte entsprechend
|
||
if (hasRole(req, 'admin')) {
|
||
return res.redirect('/admin');
|
||
}
|
||
if (hasRole(req, 'verwaltung')) {
|
||
return res.redirect('/verwaltung');
|
||
}
|
||
return res.status(403).send('Zugriff verweigert');
|
||
}
|
||
|
||
res.render('dashboard', {
|
||
user: {
|
||
id: req.session.userId,
|
||
firstname: req.session.firstname,
|
||
lastname: req.session.lastname,
|
||
username: req.session.username,
|
||
roles: req.session.roles || [],
|
||
currentRole: req.session.currentRole || 'mitarbeiter'
|
||
}
|
||
});
|
||
});
|
||
}
|
||
|
||
module.exports = registerDashboardRoutes;
|