X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Femailer.ts;h=650a3c090948b2a19e533b4ea89b550ddaf7a56b;hb=9252a33d115bba85adcfbc18ab3725924642871c;hp=708808cf23f75e10f50892889982017ac2af55a7;hpb=b9cf3fb6381f71c976fbe515f728082d90a9c437;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/emailer.ts b/server/lib/emailer.ts index 708808cf2..650a3c090 100644 --- a/server/lib/emailer.ts +++ b/server/lib/emailer.ts @@ -5,6 +5,7 @@ import { join } from 'path' import { VideoChannelModel } from '@server/models/video/video-channel' import { MVideoBlacklistLightVideo, MVideoBlacklistVideo } from '@server/types/models/video/video-blacklist' import { MVideoImport, MVideoImportVideo } from '@server/types/models/video/video-import' +import { SANITIZE_OPTIONS, TEXT_WITH_HTML_RULES } from '@shared/core-utils' import { AbuseState, EmailPayload, UserAbuse } from '@shared/models' import { SendEmailOptions } from '../../shared/models/server/emailer.model' import { isTestInstance, root } from '../helpers/core-utils' @@ -20,14 +21,7 @@ const markdownItEmoji = require('markdown-it-emoji/light') const MarkdownItClass = require('markdown-it') const markdownIt = new MarkdownItClass('default', { linkify: true, breaks: true, html: true }) -markdownIt.enable([ - 'linkify', - 'autolink', - 'emphasis', - 'link', - 'newline', - 'list' -]) +markdownIt.enable(TEXT_WITH_HTML_RULES) markdownIt.use(markdownItEmoji) @@ -39,27 +33,7 @@ const toSafeHtml = text => { const html = markdownIt.render(textWithLineFeed) // Convert to safe Html - return sanitizeHtml(html, { - allowedTags: [ 'a', 'p', 'span', 'br', 'strong', 'em', 'ul', 'ol', 'li' ], - allowedSchemes: [ 'http', 'https' ], - allowedAttributes: { - a: [ 'href', 'class', 'target', 'rel' ] - }, - transformTags: { - a: (tagName, attribs) => { - let rel = 'noopener noreferrer' - if (attribs.rel === 'me') rel += ' me' - - return { - tagName, - attribs: Object.assign(attribs, { - target: '_blank', - rel - }) - } - } - } - }) + return sanitizeHtml(html, SANITIZE_OPTIONS) } const Email = require('email-templates') @@ -256,7 +230,7 @@ class Emailer { } myVideoImportErrorNotification (to: string[], videoImport: MVideoImport) { - const importUrl = WEBSERVER.URL + '/my-account/video-imports' + const importUrl = WEBSERVER.URL + '/my-library/video-imports' const text = `Your video import "${videoImport.getTargetIdentifier()}" encountered an error.` +