* Fix #5592
Escape translation tokens in topic titles, descriptions, profile about, and post contents

* Fix tests
This commit is contained in:
Peter Jaszkowiak
2017-04-13 12:37:54 -06:00
committed by psychobunny
parent c3febca9c8
commit 1fb48ef7a7
9 changed files with 31 additions and 18 deletions

View File

@@ -12,6 +12,7 @@ var accountHelpers = require('./helpers');
var helpers = require('../helpers');
var pagination = require('../../pagination');
var messaging = require('../../messaging');
var translator = require('../../translator');
var profileController = {};
@@ -74,7 +75,7 @@ profileController.get = function (req, res, callback) {
return p && parseInt(p.deleted, 10) !== 1;
});
userData.hasPrivateChat = results.hasPrivateChat;
userData.aboutme = results.aboutme;
userData.aboutme = translator.escape(results.aboutme);
userData.nextStart = results.posts.nextStart;
userData.breadcrumbs = helpers.buildBreadcrumbs([{ text: userData.username }]);
userData.title = userData.username;

View File

@@ -12,6 +12,7 @@ var meta = require('../meta');
var pagination = require('../pagination');
var helpers = require('./helpers');
var utils = require('../utils');
var translator = require('../translator');
var categoryController = {};
@@ -160,6 +161,10 @@ categoryController.get = function (req, res, callback) {
return callback(err);
}
categoryData.topics.forEach(function (topic) {
topic.title = translator.escape(topic.title);
});
categoryData.description = translator.escape(categoryData.description);
categoryData.privileges = userPrivileges;
categoryData.showSelect = categoryData.privileges.editable;
@@ -207,7 +212,7 @@ categoryController.get = function (req, res, callback) {
categoryData['feeds:disableRSS'] = parseInt(meta.config['feeds:disableRSS'], 10) === 1;
categoryData.rssFeedUrl = nconf.get('relative_path') + '/category/' + categoryData.cid + '.rss';
categoryData.title = categoryData.name;
categoryData.title = translator.escape(categoryData.name);
pageCount = Math.max(1, Math.ceil(categoryData.topic_count / settings.topicsPerPage));
categoryData.pagination = pagination.create(currentPage, pageCount, req.query);
categoryData.pagination.rel.forEach(function (rel) {

View File

@@ -14,6 +14,7 @@ var plugins = require('../plugins');
var helpers = require('./helpers');
var pagination = require('../pagination');
var utils = require('../utils');
var translator = require('../translator');
var topicsController = {};
@@ -129,13 +130,14 @@ topicsController.get = function (req, res, callback) {
plugins.fireHook('filter:controllers.topic.get', { topicData: topicData, uid: req.uid }, next);
},
function (data, next) {
data.topicData.title = translator.escape(data.topicData.title);
var breadcrumbs = [
{
text: data.topicData.category.name,
url: nconf.get('relative_path') + '/category/' + data.topicData.category.slug,
},
{
text: data.topicData.title,
text: translator.escape(data.topicData.title),
},
];