diff --git a/src/controllers/accounts/chats.js b/src/controllers/accounts/chats.js index c50f948ebe..02c9b404cc 100644 --- a/src/controllers/accounts/chats.js +++ b/src/controllers/accounts/chats.js @@ -27,9 +27,6 @@ chatsController.get = async function (req, res, next) { } if (!req.params.roomid) { - if (recentChats.rooms.length && recentChats.rooms[0]) { - return helpers.redirect(res, `/user/${req.params.userslug}/chats/${recentChats.rooms[0].roomId}`); - } return res.render('chats', { rooms: recentChats.rooms, uid: uid, diff --git a/src/middleware/render.js b/src/middleware/render.js index ee716b78ac..f5410469b4 100644 --- a/src/middleware/render.js +++ b/src/middleware/render.js @@ -7,6 +7,7 @@ const jsesc = require('jsesc'); const winston = require('winston'); const semver = require('semver'); +const db = require('../database'); const navigation = require('../navigation'); const translator = require('../translator'); const privileges = require('../privileges'); @@ -158,6 +159,7 @@ module.exports = function (middleware) { timeagoCode: languages.userTimeagoCode(res.locals.config.userLang), browserTitle: translator.translate(controllersHelpers.buildTitle(translator.unescape(options.title))), navigation: navigation.get(req.uid), + roomIds: db.getSortedSetRevRange(`uid:${req.uid}:chat:rooms`, 0, 0), }); const unreadData = { @@ -174,6 +176,7 @@ module.exports = function (middleware) { results.user.privileges = results.privileges; results.user.timeagoCode = results.timeagoCode; results.user[results.user.status] = true; + results.user.lastRoomId = results.roomIds.length ? results.roomIds[0] : null; results.user.email = String(results.user.email); results.user['email:confirmed'] = results.user['email:confirmed'] === 1;