30 lines
837 B
JavaScript
30 lines
837 B
JavaScript
const express = require('express');
|
|
const log = require("./logger");
|
|
const db = global.db;
|
|
const router = express.Router();
|
|
const expressWs = require('express-ws')(router);
|
|
// GET /login
|
|
router.get('/', async (req, res) => {
|
|
const logs = await db.query('SELECT * FROM Events ORDER BY EventIndex DESC LIMIT 100');
|
|
res.render('event-logs', { logs, user: req.session.user });
|
|
});
|
|
|
|
router.ws('/', (ws, req) => {
|
|
log.debug(`Client ${req.sessionID} connected to event logs WebSocket`);
|
|
if (!req.session.user) {
|
|
ws.send(JSON.stringify({ error: 'Not authenticated' }))
|
|
ws.close();
|
|
return;
|
|
}
|
|
if (global.checkACL(req, 'eventLog') == false) {
|
|
ws.send(JSON.stringify({ error: 'Not authorized' }))
|
|
ws.close();
|
|
return;
|
|
}
|
|
|
|
global.dbEvent.on('event', (event) => {
|
|
ws.send(JSON.stringify(event));
|
|
});
|
|
});
|
|
|
|
module.exports = router; |