From 36f119a96a69ceb2b91ced23f9b1d756d5d58974 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Thu, 15 Apr 2021 12:43:28 -0400 Subject: [PATCH] fix: #9492, keep query params on redirect --- src/middleware/user.js | 5 ++--- test/controllers.js | 10 ++++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/middleware/user.js b/src/middleware/user.js index 32f0cc6955..061b791feb 100644 --- a/src/middleware/user.js +++ b/src/middleware/user.js @@ -194,9 +194,8 @@ module.exports = function (middleware) { if (!userslug) { return next(); } - const path = req.path.replace(/^\/api/, '') - .replace('uid', 'user') - .replace(uid, () => userslug); + const path = req.url.replace(/^\/api/, '') + .replace(`/uid/${uid}`, () => `/user/${userslug}`); controllers.helpers.redirect(res, path); }); diff --git a/test/controllers.js b/test/controllers.js index 2c3bc80f43..02157321ff 100644 --- a/test/controllers.js +++ b/test/controllers.js @@ -1050,6 +1050,16 @@ describe('Controllers', () => { }); }); + it('should redirect to userslug and keep query params', (done) => { + request(`${nconf.get('url')}/api/uid/${fooUid}/topics?foo=bar`, { json: true }, (err, res, body) => { + assert.ifError(err); + assert.equal(res.statusCode, 200); + assert.equal(res.headers['x-redirect'], '/user/foo/topics?foo=bar'); + assert.equal(body, '/user/foo/topics?foo=bar'); + done(); + }); + }); + it('should 404 if user does not exist', (done) => { request(`${nconf.get('url')}/api/uid/123123`, { json: true }, (err, res) => { assert.ifError(err);