mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 08:36:12 +01:00
feat: replace relative urls to absolute before sending email notifs
https://github.com/NodeBB/NodeBB/pull/8366/files
This commit is contained in:
@@ -8,6 +8,7 @@ const _ = require('lodash');
|
||||
|
||||
const db = require('./database');
|
||||
const User = require('./user');
|
||||
const posts = require('./posts');
|
||||
const groups = require('./groups');
|
||||
const meta = require('./meta');
|
||||
const batch = require('./batch');
|
||||
@@ -172,14 +173,16 @@ async function pushToUids(uids, notification) {
|
||||
if (['new-reply', 'new-chat'].includes(notification.type)) {
|
||||
notification['cta-type'] = notification.type;
|
||||
}
|
||||
|
||||
let body = notification.bodyLong || '';
|
||||
body = posts.relativeToAbsolute(body, posts.urlRegex);
|
||||
body = posts.relativeToAbsolute(body, posts.imgRegex);
|
||||
await async.eachLimit(uids, 3, function (uid, next) {
|
||||
emailer.send('notification', uid, {
|
||||
path: notification.path,
|
||||
notification_url: notification.path.startsWith('http') ? notification.path : nconf.get('url') + notification.path,
|
||||
subject: utils.stripHTMLTags(notification.subject || '[[notifications:new_notification]]'),
|
||||
intro: utils.stripHTMLTags(notification.bodyShort),
|
||||
body: notification.bodyLong || '',
|
||||
body: body,
|
||||
notification: notification,
|
||||
showUnsubscribe: true,
|
||||
}, next);
|
||||
|
||||
@@ -77,7 +77,10 @@ module.exports = function (Posts) {
|
||||
};
|
||||
|
||||
Posts.relativeToAbsolute = function (content, regex) {
|
||||
// Turns relative links in post body to absolute urls
|
||||
// Turns relative links in content to absolute urls
|
||||
if (!content) {
|
||||
return content;
|
||||
}
|
||||
var parsed;
|
||||
var current = regex.regex.exec(content);
|
||||
var absolute;
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
'use strict';
|
||||
|
||||
const db = require('../database');
|
||||
const posts = require('../posts');
|
||||
const notifications = require('../notifications');
|
||||
const privileges = require('../privileges');
|
||||
const plugins = require('../plugins');
|
||||
@@ -163,9 +162,6 @@ module.exports = function (Topics) {
|
||||
title = utils.decodeHTMLEntities(title);
|
||||
}
|
||||
|
||||
postData.content = posts.relativeToAbsolute(postData.content, posts.urlRegex);
|
||||
postData.content = posts.relativeToAbsolute(postData.content, posts.imgRegex);
|
||||
|
||||
const notification = await notifications.create({
|
||||
subject: title,
|
||||
bodyLong: postData.content,
|
||||
|
||||
Reference in New Issue
Block a user