Files
cloudron-box/src/auditsource.js

25 lines
932 B
JavaScript
Raw Normal View History

2019-03-25 14:53:12 -07:00
'use strict';
class AuditSource {
constructor(username, userId, ip) {
this.username = username;
this.userId = userId || null;
this.ip = ip || null;
}
2019-03-25 15:07:06 -07:00
static fromRequest(req) {
const ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress || null;
return new AuditSource(req.user?.username, req.user?.id, ip);
}
2019-03-25 15:07:06 -07:00
}
// these can be static variables but see https://stackoverflow.com/questions/60046847/eslint-does-not-allow-static-class-properties#comment122122927_60464446
AuditSource.CRON = new AuditSource('cron');
AuditSource.HEALTH_MONITOR = new AuditSource('healthmonitor');
AuditSource.EXTERNAL_LDAP_TASK = new AuditSource('externalldap');
AuditSource.EXTERNAL_LDAP_AUTO_CREATE = new AuditSource('externalldap');
AuditSource.APPTASK = new AuditSource('apptask');
2021-11-17 10:33:28 -08:00
AuditSource.PLATFORM = new AuditSource('platform');
exports = module.exports = AuditSource;