update Di 3. Mär 23:01:01 CET 2020

This commit is contained in:
Robert Richter 2020-03-03 23:01:01 +01:00
parent 398b35e12e
commit c4dc15ccdd

View File

@ -1,5 +1,9 @@
module.exports = function(app, sql, uuidv4, app_cfg, passport, auth, waip, udp) { module.exports = function(app, sql, uuidv4, app_cfg, passport, auth, waip, udp) {
/* ########################### */
/* ##### Statische Seiten #### */
/* ########################### */
// Startseite // Startseite
app.get('/', function(req, res) { app.get('/', function(req, res) {
sql.db_list_wachen(function(data) { sql.db_list_wachen(function(data) {
@ -21,6 +25,103 @@ module.exports = function(app, sql, uuidv4, app_cfg, passport, auth, waip, udp)
}); });
}); });
// Ueber die Anwendung
app.get('/about', function(req, res) {
res.render('about', {
public: app_cfg.public,
title: 'Über',
user: req.user
});
});
// Impressum
app.get('/impressum', function(req, res) {
res.render('imprint', {
public: app_cfg.public,
title: 'Impressum',
user: req.user
});
});
// Datenschutzerklaerung
app.get('/datenschutz', function(req, res) {
res.render('privacy', {
public: app_cfg.public,
title: 'Datenschutzerklärung',
user: req.user
});
});
/* ##################### */
/* ####### Login ####### */
/* ##################### */
// Loginseite
app.get('/login', function(req, res) {
res.render('login', {
public: app_cfg.public,
title: 'Login',
user: req.user,
error: req.flash('error')
});
});
// Login-Formular verarbeiten
app.post('/login', passport.authenticate('local', {
failureRedirect: '/login',
failureFlash: 'Login fehlgeschlagen! Bitte prüfen Sie Benutzername und Passwort.'
}), function(req, res) {
if(req.body.rememberme){
// der Benutzer muss sich fuer 5 Jahre nicht anmelden
req.session.cookie.maxAge = 5 * 365 * 24 * 60 * 60 * 1000;
};
res.redirect('/');
});
// Login mit IP verarbeiten
app.post('/login_ip', passport.authenticate('ip', {
failureRedirect: '/login',
failureFlash: 'Login mittels IP-Adresse fehlgeschlagen!'
}), function(req, res) {
// der Benutzer muss sich fuer 5 Jahre nicht anmelden
req.session.cookie.maxAge = 5 * 365 * 24 * 60 * 60 * 1000;
res.redirect('/');
});
// Logout verarbeiten
app.post('/logout', function(req, res) {
req.session.destroy(function(err) {
res.redirect('/');
})
});
/* ######################### */
/* ##### Einstellungen ##### */
/* ######################### */
// Einstellungen anzeigen
app.get('/config', auth.ensureAuthenticated, function(req, res) {
sql.db_get_userconfig(req.user.id, function(data) {
res.render('user/user_config', {
public: app_cfg.public,
title: 'Einstellungen',
user: req.user,
reset_counter: data
});
});
});
// Einstellungen speichern
app.post('/config', auth.ensureAuthenticated, function(req, res) {
sql.db_set_userconfig(req.user.id, req.body.set_reset_counter, function(data) {
res.redirect('/config');
});
});
/* ##################### */
/* ##### Wachalarm ##### */
/* ##################### */
// /waip nach /waip/0 umleiten // /waip nach /waip/0 umleiten
app.get('/waip', function(req, res) { app.get('/waip', function(req, res) {
res.redirect('/waip/0'); res.redirect('/waip/0');
@ -47,6 +148,10 @@ module.exports = function(app, sql, uuidv4, app_cfg, passport, auth, waip, udp)
}); });
}); });
/* ######################## */
/* ##### Rueckmeldung ##### */
/* ######################## */
// Rueckmeldungs-Aufruf ohne waip_uuid eblehnen // Rueckmeldungs-Aufruf ohne waip_uuid eblehnen
app.get('/rmld', function(req, res, next) { app.get('/rmld', function(req, res, next) {
var err = new Error('Rückmeldungen sind nur mit gültiger Einsatz-ID erlaubt!'); var err = new Error('Rückmeldungen sind nur mit gültiger Einsatz-ID erlaubt!');
@ -69,7 +174,8 @@ module.exports = function(app, sql, uuidv4, app_cfg, passport, auth, waip, udp)
title: 'Einsatz-Rückmeldung', title: 'Einsatz-Rückmeldung',
user: req.user, user: req.user,
einsatzdaten: einsatzdaten, einsatzdaten: einsatzdaten,
modaldata: req.query.modal error: req.flash("errorMessage"),
success: req.flash("successMessage")
}); });
} else { } else {
var err = new Error('Der angefragte Einsatz ist nicht - oder nicht mehr - vorhanden!'); var err = new Error('Der angefragte Einsatz ist nicht - oder nicht mehr - vorhanden!');
@ -85,81 +191,21 @@ module.exports = function(app, sql, uuidv4, app_cfg, passport, auth, waip, udp)
var rmld_uuid = req.params.rmld_uuid; var rmld_uuid = req.params.rmld_uuid;
sql.db_save_rmld(req.body, function(result){ sql.db_save_rmld(req.body, function(result){
if (result) { if (result) {
var string = encodeURIComponent(result); req.flash('successMessage', 'Rückmeldung erfolgreich gesendet, auf zum Einsatz!');
res.redirect('/rmld/' + waip_uuid + '/' + rmld_uuid + '/?modal=' + string); res.redirect('/rmld/' + waip_uuid + '/' + rmld_uuid );
waip.reuckmeldung_verteilen_by_uuid(req.params.rmld_uuid); waip.reuckmeldung_verteilen_by_uuid(req.params.rmld_uuid);
} else { } else {
var err = new Error('Fehler beim senden der Rückmeldung!'); req.flash('errorMessage', 'Fehler beim Senden der Rückmeldung!');
err.status = 501; res.redirect('/rmld/' + waip_uuid + '/' + rmld_uuid );
next(err);
}; };
}); });
}); });
// get /config /* ########################## */
app.get('/config', auth.ensureAuthenticated, function(req, res) { /* ##### Administration ##### */
sql.db_get_userconfig(req.user.id, function(data) { /* ########################## */
res.render('user/user_config', {
public: app_cfg.public,
title: 'Einstellungen',
user: req.user,
reset_counter: data
});
});
});
app.post('/config', auth.ensureAuthenticated, function(req, res) { // verbundene Clients anzeigen
sql.db_set_userconfig(req.user.id, req.body.set_reset_counter, function(data) {
res.redirect('/config');
});
});
// get /about
app.get('/about', function(req, res) {
res.render('about', {
public: app_cfg.public,
title: 'Über',
user: req.user
});
});
// get /uhr
app.get('/test_clock', function(req, res) {
res.render('tests/test_clock', {
public: app_cfg.public,
title: 'Test Uhr',
user: req.user
});
});
// get /test_wachalarm
app.get('/test_wachalarm', function(req, res) {
res.render('tests/test_wachalarm', {
public: app_cfg.public,
title: 'Test Wachalarm',
user: req.user
});
});
// get /test_rueckmeldung
app.get('/test_rueckmeldung', function(req, res) {
res.render('tests/test_rueckmeldung', {
public: app_cfg.public,
title: 'Test Einsatz-Rückmeldung',
user: req.user
});
});
// get /test_dashboard
app.get('/test_dashboard', function(req, res) {
res.render('tests/test_dashboard', {
public: app_cfg.public,
title: 'Test Dashboard',
user: req.user
});
});
// get /show_active_user
app.get('/adm_show_clients', auth.ensureAdmin, function(req, res) { app.get('/adm_show_clients', auth.ensureAdmin, function(req, res) {
sql.db_get_active_clients(function(data) { sql.db_get_active_clients(function(data) {
res.render('admin/adm_show_clients', { res.render('admin/adm_show_clients', {
@ -171,7 +217,8 @@ module.exports = function(app, sql, uuidv4, app_cfg, passport, auth, waip, udp)
}); });
}); });
// get /adm_show_missions // laufende Einsaetze anzeigen
// TODO: eventuell unter Dashboard oder Startseite anzeigen
app.get('/adm_show_missions', auth.ensureAdmin, function(req, res) { app.get('/adm_show_missions', auth.ensureAdmin, function(req, res) {
sql.db_get_active_waips(function(data) { sql.db_get_active_waips(function(data) {
res.render('admin/adm_show_missions', { res.render('admin/adm_show_missions', {
@ -183,7 +230,7 @@ module.exports = function(app, sql, uuidv4, app_cfg, passport, auth, waip, udp)
}); });
}); });
// get /show_log // Logdatei
app.get('/adm_show_log', auth.ensureAdmin, function(req, res) { app.get('/adm_show_log', auth.ensureAdmin, function(req, res) {
sql.db_get_log(function(data) { sql.db_get_log(function(data) {
res.render('admin/adm_show_log', { res.render('admin/adm_show_log', {
@ -195,7 +242,7 @@ module.exports = function(app, sql, uuidv4, app_cfg, passport, auth, waip, udp)
}); });
}); });
// get /test_alert // direkten Alarm ausloesen
app.get('/adm_run_alert', auth.ensureAdmin, function(req, res) { app.get('/adm_run_alert', auth.ensureAdmin, function(req, res) {
res.render('admin/adm_run_alert', { res.render('admin/adm_run_alert', {
public: app_cfg.public, public: app_cfg.public,
@ -209,7 +256,7 @@ module.exports = function(app, sql, uuidv4, app_cfg, passport, auth, waip, udp)
res.redirect('/adm_run_alert'); res.redirect('/adm_run_alert');
}); });
// get /edit_users // Benutzer editieren
app.get('/adm_edit_users', auth.ensureAdmin, function(req, res) { app.get('/adm_edit_users', auth.ensureAdmin, function(req, res) {
sql.db_get_users(function(data) { sql.db_get_users(function(data) {
res.render('admin/adm_edit_users', { res.render('admin/adm_edit_users', {
@ -217,8 +264,8 @@ module.exports = function(app, sql, uuidv4, app_cfg, passport, auth, waip, udp)
title: 'Benutzer und Rechte verwalten', title: 'Benutzer und Rechte verwalten',
user: req.user, user: req.user,
users: data, users: data,
error: req.flash("errorMessage"), error: req.flash('errorMessage'),
success: req.flash("successMessage") success: req.flash('successMessage')
}); });
}); });
}); });
@ -241,58 +288,51 @@ module.exports = function(app, sql, uuidv4, app_cfg, passport, auth, waip, udp)
} }
}); });
// get /login /* ###################### */
app.get('/login', function(req, res) { /* ##### Testseiten ##### */
res.render('login', { /* ###################### */
// Wachalarm-Uhr testen
app.get('/test_clock', function(req, res) {
res.render('tests/test_clock', {
public: app_cfg.public, public: app_cfg.public,
title: 'Login', title: 'Test Uhr',
user: req.user user: req.user
}); });
}); });
// get /impressum // Alarmmonitor testen
app.get('/impressum', function(req, res) { app.get('/test_wachalarm', function(req, res) {
res.render('imprint', { res.render('tests/test_wachalarm', {
public: app_cfg.public, public: app_cfg.public,
title: 'Impressum', title: 'Test Wachalarm',
user: req.user user: req.user
}); });
}); });
// get /datenschutz // Rueckmeldung testen
app.get('/datenschutz', function(req, res) { app.get('/test_rueckmeldung', function(req, res) {
res.render('privacy', { res.render('tests/test_rueckmeldung', {
public: app_cfg.public, public: app_cfg.public,
title: 'Datenschutzerklärung', title: 'Test Einsatz-Rückmeldung',
user: req.user user: req.user
}); });
}); });
app.post('/login', passport.authenticate('local', { // Dashboard testen
failureRedirect: '/login' app.get('/test_dashboard', function(req, res) {
}), function(req, res) { res.render('tests/test_dashboard', {
if(req.body.rememberme){ public: app_cfg.public,
// der Benutzer muss sich fuer 5 Jahre nicht anmelden title: 'Test Dashboard',
req.session.cookie.maxAge = 5 * 365 * 24 * 60 * 60 * 1000; user: req.user
}; });
res.redirect('/');
}); });
app.post('/login_ip', passport.authenticate('ip', { /* ######################## */
failureRedirect: '/login' /* ##### Fehlerseiten ##### */
}), function(req, res) { /* ######################## */
// der Benutzer muss sich fuer 5 Jahre nicht anmelden
req.session.cookie.maxAge = 5 * 365 * 24 * 60 * 60 * 1000;
res.redirect('/');
});
app.post('/logout', function(req, res) { // 404 abfangen und an error handler weiterleiten
req.session.destroy(function(err) {
res.redirect('/');
})
});
// catch 404 and forward to error handler
app.use(function(req, res, next) { app.use(function(req, res, next) {
var err = new Error('Seite nicht gefunden!'); var err = new Error('Seite nicht gefunden!');
err.status = 404; err.status = 404;