X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fhelpers%2Faudit-logger.ts;h=5f2e870e38ff001c09d9b3e0c47e82ba5b44caec;hb=c55e3d7227fe1453869e309025996b9d75256d5d;hp=0bbfbc753e559a3ba89465ff18d43aac6e4268a7;hpb=1b05d82d861f42c27766e9f24d8d55e68b0cf098;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/helpers/audit-logger.ts b/server/helpers/audit-logger.ts index 0bbfbc753..5f2e870e3 100644 --- a/server/helpers/audit-logger.ts +++ b/server/helpers/audit-logger.ts @@ -1,15 +1,15 @@ -import * as path from 'path' -import * as express from 'express' import { diff } from 'deep-object-diff' +import express from 'express' +import flatten from 'flat' import { chain } from 'lodash' -import * as flatten from 'flat' -import * as winston from 'winston' -import { jsonLoggerFormat, labelFormatter } from './logger' -import { User, VideoAbuse, VideoChannel, VideoDetails, VideoImport } from '../../shared' -import { VideoComment } from '../../shared/models/videos/video-comment.model' +import { join } from 'path' +import { addColors, config, createLogger, format, transports } from 'winston' +import { AUDIT_LOG_FILENAME } from '@server/initializers/constants' +import { AdminAbuse, User, VideoChannel, VideoDetails, VideoImport } from '../../shared' import { CustomConfig } from '../../shared/models/server/custom-config.model' +import { VideoComment } from '../../shared/models/videos/comment/video-comment.model' import { CONFIG } from '../initializers/config' -import { AUDIT_LOG_FILENAME } from '@server/initializers/constants' +import { jsonLoggerFormat, labelFormatter } from './logger' function getAuditIdFromRes (res: express.Response) { return res.locals.oauth.token.User.username @@ -21,23 +21,23 @@ enum AUDIT_TYPE { DELETE = 'delete' } -const colors = winston.config.npm.colors -colors.audit = winston.config.npm.colors.info +const colors = config.npm.colors +colors.audit = config.npm.colors.info -winston.addColors(colors) +addColors(colors) -const auditLogger = winston.createLogger({ +const auditLogger = createLogger({ levels: { audit: 0 }, transports: [ - new winston.transports.File({ - filename: path.join(CONFIG.STORAGE.LOG_DIR, AUDIT_LOG_FILENAME), + new transports.File({ + filename: join(CONFIG.STORAGE.LOG_DIR, AUDIT_LOG_FILENAME), level: 'audit', maxsize: 5242880, maxFiles: 5, - format: winston.format.combine( - winston.format.timestamp(), + format: format.combine( + format.timestamp(), labelFormatter(), - winston.format.splat(), + format.splat(), jsonLoggerFormat ) }) @@ -84,9 +84,9 @@ abstract class EntityAuditView { constructor (private readonly keysToKeep: string[], private readonly prefix: string, private readonly entityInfos: object) { } toLogKeys (): object { - return chain(flatten(this.entityInfos, { delimiter: '-', safe: true })) + return chain(flatten(this.entityInfos, { delimiter: '-', safe: true })) .pick(this.keysToKeep) - .mapKeys((value, key) => `${this.prefix}-${key}`) + .mapKeys((_value, key) => `${this.prefix}-${key}`) .value() } } @@ -212,18 +212,15 @@ class VideoChannelAuditView extends EntityAuditView { } } -const videoAbuseKeysToKeep = [ +const abuseKeysToKeep = [ 'id', 'reason', 'reporterAccount', - 'video-id', - 'video-name', - 'video-uuid', 'createdAt' ] -class VideoAbuseAuditView extends EntityAuditView { - constructor (private readonly videoAbuse: VideoAbuse) { - super(videoAbuseKeysToKeep, 'abuse', videoAbuse) +class AbuseAuditView extends EntityAuditView { + constructor (private readonly abuse: AdminAbuse) { + super(abuseKeysToKeep, 'abuse', abuse) } } @@ -274,6 +271,6 @@ export { CommentAuditView, UserAuditView, VideoAuditView, - VideoAbuseAuditView, + AbuseAuditView, CustomConfigAuditView }