X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fhelpers%2Fcustom-validators%2Factivitypub%2Fvideo-comments.ts;h=ea852c4910a3ab43e9a0dce75ae9425bcb1eef97;hb=2b02c520e66ea452687cab39401b371711caa9ed;hp=e04c5388f9059bf5cfc7022fbbe0fe8cb302c786;hpb=b91bc1d1f3591c35ab4426f6ab594b4bd9f1ef62;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/helpers/custom-validators/activitypub/video-comments.ts b/server/helpers/custom-validators/activitypub/video-comments.ts index e04c5388f..ea852c491 100644 --- a/server/helpers/custom-validators/activitypub/video-comments.ts +++ b/server/helpers/custom-validators/activitypub/video-comments.ts @@ -1,13 +1,22 @@ -import * as validator from 'validator' +import validator from 'validator' import { ACTIVITY_PUB } from '../../../initializers/constants' import { exists, isArray, isDateValid } from '../misc' import { isActivityPubUrlValid } from './misc' function sanitizeAndCheckVideoCommentObject (comment: any) { - if (!comment || comment.type !== 'Note') return false + if (!comment) return false + + if (!isCommentTypeValid(comment)) return false normalizeComment(comment) + if (comment.type === 'Tombstone') { + return isActivityPubUrlValid(comment.id) && + isDateValid(comment.published) && + isDateValid(comment.deleted) && + isActivityPubUrlValid(comment.url) + } + return isActivityPubUrlValid(comment.id) && isCommentContentValid(comment.content) && isActivityPubUrlValid(comment.inReplyTo) && @@ -39,6 +48,12 @@ function normalizeComment (comment: any) { if (typeof comment.url === 'object') comment.url = comment.url.href || comment.url.url else comment.url = comment.id } +} + +function isCommentTypeValid (comment: any): boolean { + if (comment.type === 'Note') return true + + if (comment.type === 'Tombstone' && comment.formerType === 'Note') return true - return + return false }