update Fr 12. Jun 22:01:01 CEST 2020

This commit is contained in:
Robert Richter 2020-06-12 22:01:01 +02:00
parent 500516e784
commit aa7a86c72c
2 changed files with 21 additions and 32 deletions

View File

@ -19,7 +19,14 @@ module.exports = function (io, sql, app_cfg, waip) {
// versuche Remote-IP zu ermitteln // versuche Remote-IP zu ermitteln
var remote_ip = socket.handshake.headers["x-real-ip"] || socket.handshake.headers['x-forwarded-for'] || socket.request.connection.remoteAddress; var remote_ip = socket.handshake.headers["x-real-ip"] || socket.handshake.headers['x-forwarded-for'] || socket.request.connection.remoteAddress;
//TODO API: Eingehende Verbindung nur mit passendem Geheimnis und aus passendem IP-Bereich zulassen, das Ergebnis loggen // FIXME zulassen, aber nichts senden, ist besser
// Remote-Verbindung nur zulassen, wenn IP in Access-List
if (!app_cfg.api.access_list.includes(remote_ip);) {
socket.close();
sql.db_log('API', 'Verbindung von ' + remote_ip + ' geschlossen, da nicht in Zugangsliste.');
};
//TODO API: Eingehende Verbindung nur mit passendem Geheimnis zulassen, das Ergebnis loggen
// in Liste der Clients mit aufnehmen // in Liste der Clients mit aufnehmen
sql.db_client_update_status(socket, 'api'); sql.db_client_update_status(socket, 'api');

View File

@ -61,7 +61,7 @@ module.exports = function (io, sql, fs, brk, async, app_cfg, api, proof) {
var user_obj = socket.request.user; var user_obj = socket.request.user;
sql.db_einsatz_get_by_waipid(waip_id, wachen_nr, user_obj.id, function (einsatzdaten) { sql.db_einsatz_get_by_waipid(waip_id, wachen_nr, user_obj.id, function (einsatzdaten) {
if (einsatzdaten) { if (einsatzdaten) {
// Berechtigung ueberpruefen // Berechtigung des Users ueberpruefen
sql.db_user_check_permission(user_obj, waip_id, function (valid) { sql.db_user_check_permission(user_obj, waip_id, function (valid) {
// Wenn nutzer nicht angemeldet, Daten entfernen // Wenn nutzer nicht angemeldet, Daten entfernen
if (!valid) { if (!valid) {
@ -81,7 +81,7 @@ module.exports = function (io, sql, fs, brk, async, app_cfg, api, proof) {
// Sound erstellen // Sound erstellen
tts_erstellen(app_cfg, socket.id, einsatzdaten, function (tts) { tts_erstellen(app_cfg, socket.id, einsatzdaten, function (tts) {
if (tts) { if (tts) {
// Sound senden // Sound-Link senden
socket.emit('io.playtts', tts); socket.emit('io.playtts', tts);
sql.db_log('WAIP', 'ttsfile: ' + tts); sql.db_log('WAIP', 'ttsfile: ' + tts);
}; };
@ -93,9 +93,9 @@ module.exports = function (io, sql, fs, brk, async, app_cfg, api, proof) {
}); });
}); });
} else { } else {
// Standby senden // wenn keine Einsatzdaten, dann Standby senden
socket.emit('io.standby', null); socket.emit('io.standby', null);
sql.db_log('WAIP', 'Kein Einsatz fuer Wache ' + wachen_nr + ' vorhanden, Standby an Socket ' + socket.id + ' gesendet.'); sql.db_log('WAIP', 'Kein Einsatz für Wache ' + wachen_nr + ' vorhanden, Standby an Socket ' + socket.id + ' gesendet.');
sql.db_client_update_status(socket, null); sql.db_client_update_status(socket, null);
}; };
}); });
@ -126,7 +126,7 @@ module.exports = function (io, sql, fs, brk, async, app_cfg, api, proof) {
}; };
function rmld_verteilen_by_uuid(waip_uuid, rmld_uuid) { function rmld_verteilen_by_uuid(waip_uuid, rmld_uuid) {
// Einsatz-ID mittels Einsatz-UUID ermitteln // Einsatz-ID mittels Einsatz-UUID ermitteln, und Rueckmelung an alle relevanten Clients verteilen
sql.db_einsatz_get_waipid_by_uuid(waip_uuid, function (waip_id) { sql.db_einsatz_get_waipid_by_uuid(waip_uuid, function (waip_id) {
// am Einsatz beteilite Socket-Räume ermitteln // am Einsatz beteilite Socket-Räume ermitteln
sql.db_einsatz_get_rooms(waip_id, function (socket_rooms) { sql.db_einsatz_get_rooms(waip_id, function (socket_rooms) {
@ -148,37 +148,18 @@ module.exports = function (io, sql, fs, brk, async, app_cfg, api, proof) {
sql.db_log('DEBUG', 'Rückmeldung JSON: ' + JSON.stringify(rmld_obj)); sql.db_log('DEBUG', 'Rückmeldung JSON: ' + JSON.stringify(rmld_obj));
}; };
}); });
/*socket_rooms.forEach(function (rooms) {
io.of('/waip').to(rooms.room).emit('io.new_rmld', rmld_obj);
sql.db_log('RMLD', 'Rückmeldung ' + rmld_uuid + ' für den Einsatz mit der ID ' + waip_id + ' an Wache ' + rooms.room + ' gesendet.');
sql.db_log('DEBUG', 'Rückmeldung JSON: ' + JSON.stringify(rmld_obj));
});*/
}; };
}); });
}); });
}; };
}); });
}; };
}); });
}); });
}; };
function rmld_verteilen_for_one_client(waip_id, socket, wachen_id) { function rmld_verteilen_for_one_client(waip_id, socket, wachen_id) {
// Rueckmeldung an einen bestimmten Client senden
if (typeof socket !== 'undefined') { if (typeof socket !== 'undefined') {
sql.db_rmld_get_fuer_wache(waip_id, wachen_id, function (rmld_obj) { sql.db_rmld_get_fuer_wache(waip_id, wachen_id, function (rmld_obj) {
if (rmld_obj) { if (rmld_obj) {
@ -193,8 +174,8 @@ module.exports = function (io, sql, fs, brk, async, app_cfg, api, proof) {
}; };
}; };
function dbrd_verteilen(dbrd_uuid, socket) { function dbrd_verteilen(dbrd_uuid, socket) {
// Einsatzdaten an Dashboard senden
sql.db_einsatz_get_by_uuid(dbrd_uuid, function (einsatzdaten) { sql.db_einsatz_get_by_uuid(dbrd_uuid, function (einsatzdaten) {
if (einsatzdaten) { if (einsatzdaten) {
sql.db_user_check_permission(socket.request.user, einsatzdaten.id, function (valid) { sql.db_user_check_permission(socket.request.user, einsatzdaten.id, function (valid) {
@ -335,7 +316,8 @@ module.exports = function (io, sql, fs, brk, async, app_cfg, api, proof) {
setInterval(function () { setInterval(function () {
// Aufräumen (alle 10 Sekunden) // (alle 10 Sekunden)
sql.db_socket_get_all_to_standby(function (socket_ids) { sql.db_socket_get_all_to_standby(function (socket_ids) {
// alle User-Einstellungen prüfen und ggf. Standby senden // alle User-Einstellungen prüfen und ggf. Standby senden
if (socket_ids) { if (socket_ids) {
@ -470,16 +452,16 @@ module.exports = function (io, sql, fs, brk, async, app_cfg, api, proof) {
}; };
}); });
}; };
}) });
}, 10000);
}, 10000);
return { return {
waip_speichern: waip_speichern, waip_speichern: waip_speichern,
waip_verteilen: waip_verteilen, waip_verteilen: waip_verteilen,
rmld_speichern: rmld_speichern, rmld_speichern: rmld_speichern,
dbrd_verteilen: dbrd_verteilen,
rmld_verteilen_for_one_client: rmld_verteilen_for_one_client, rmld_verteilen_for_one_client: rmld_verteilen_for_one_client,
rmld_verteilen_by_uuid: rmld_verteilen_by_uuid rmld_verteilen_by_uuid: rmld_verteilen_by_uuid,
dbrd_verteilen: dbrd_verteilen
}; };
}; };