X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Fmoderation.ts;h=c2565f86769601ab7d2bcfcb546252147b759d8d;hb=419b520ca4434d17f3505013174e195c3a316716;hp=0cefe1648faf2a7d61621a2561952ab424bfd066;hpb=8f608a4cb22ab232cfab20665050764b38bac9c7;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/moderation.ts b/server/lib/moderation.ts index 0cefe1648..c2565f867 100644 --- a/server/lib/moderation.ts +++ b/server/lib/moderation.ts @@ -23,7 +23,7 @@ import { ActivityCreate } from '../../shared/models/activitypub' import { VideoObject } from '../../shared/models/activitypub/objects' import { VideoCommentObject } from '../../shared/models/activitypub/objects/video-comment-object' import { LiveVideoCreate, VideoCreate, VideoImportCreate } from '../../shared/models/videos' -import { VideoCommentCreate } from '../../shared/models/videos/comment/video-comment.model' +import { VideoCommentCreate } from '../../shared/models/videos/comment' import { ActorModel } from '../models/actor/actor' import { UserModel } from '../models/user/user' import { VideoModel } from '../models/video/video' @@ -107,8 +107,9 @@ async function createVideoAbuse (options: { endAt: number transaction: Transaction reporterAccount: MAccountDefault + skipNotification: boolean }) { - const { baseAbuse, videoInstance, startAt, endAt, transaction, reporterAccount } = options + const { baseAbuse, videoInstance, startAt, endAt, transaction, reporterAccount, skipNotification } = options const associateFun = async (abuseInstance: MAbuseFull) => { const videoAbuseInstance: MVideoAbuseVideoFull = await VideoAbuseModel.create({ @@ -129,6 +130,7 @@ async function createVideoAbuse (options: { reporterAccount, flaggedAccount: videoInstance.VideoChannel.Account, transaction, + skipNotification, associateFun }) } @@ -138,8 +140,9 @@ function createVideoCommentAbuse (options: { commentInstance: MCommentOwnerVideo transaction: Transaction reporterAccount: MAccountDefault + skipNotification: boolean }) { - const { baseAbuse, commentInstance, transaction, reporterAccount } = options + const { baseAbuse, commentInstance, transaction, reporterAccount, skipNotification } = options const associateFun = async (abuseInstance: MAbuseFull) => { const commentAbuseInstance: MCommentAbuseAccountVideo = await VideoCommentAbuseModel.create({ @@ -158,6 +161,7 @@ function createVideoCommentAbuse (options: { reporterAccount, flaggedAccount: commentInstance.Account, transaction, + skipNotification, associateFun }) } @@ -167,11 +171,12 @@ function createAccountAbuse (options: { accountInstance: MAccountDefault transaction: Transaction reporterAccount: MAccountDefault + skipNotification: boolean }) { - const { baseAbuse, accountInstance, transaction, reporterAccount } = options + const { baseAbuse, accountInstance, transaction, reporterAccount, skipNotification } = options - const associateFun = async () => { - return { isOwned: accountInstance.isOwned() } + const associateFun = () => { + return Promise.resolve({ isOwned: accountInstance.isOwned() }) } return createAbuse({ @@ -179,6 +184,7 @@ function createAccountAbuse (options: { reporterAccount, flaggedAccount: accountInstance, transaction, + skipNotification, associateFun }) } @@ -207,9 +213,10 @@ async function createAbuse (options: { reporterAccount: MAccountDefault flaggedAccount: MAccountLight associateFun: (abuseInstance: MAbuseFull) => Promise<{ isOwned: boolean} > + skipNotification: boolean transaction: Transaction }) { - const { base, reporterAccount, flaggedAccount, associateFun, transaction } = options + const { base, reporterAccount, flaggedAccount, associateFun, transaction, skipNotification } = options const auditLogger = auditLoggerFactory('abuse') const abuseAttributes = Object.assign({}, base, { flaggedAccountId: flaggedAccount.id }) @@ -221,19 +228,21 @@ async function createAbuse (options: { const { isOwned } = await associateFun(abuseInstance) if (isOwned === false) { - await sendAbuse(reporterAccount.Actor, abuseInstance, abuseInstance.FlaggedAccount, transaction) + sendAbuse(reporterAccount.Actor, abuseInstance, abuseInstance.FlaggedAccount, transaction) } const abuseJSON = abuseInstance.toFormattedAdminJSON() auditLogger.create(reporterAccount.Actor.getIdentifier(), new AbuseAuditView(abuseJSON)) - afterCommitIfTransaction(transaction, () => { - Notifier.Instance.notifyOnNewAbuse({ - abuse: abuseJSON, - abuseInstance, - reporter: reporterAccount.Actor.getIdentifier() + if (!skipNotification) { + afterCommitIfTransaction(transaction, () => { + Notifier.Instance.notifyOnNewAbuse({ + abuse: abuseJSON, + abuseInstance, + reporter: reporterAccount.Actor.getIdentifier() + }) }) - }) + } logger.info('Abuse report %d created.', abuseInstance.id)