diff --git a/src/socket.io/user/status.js b/src/socket.io/user/status.js index c911ecf588..e3411ddbf3 100644 --- a/src/socket.io/user/status.js +++ b/src/socket.io/user/status.js @@ -27,7 +27,12 @@ module.exports = function(SocketUser) { if (allowedStatus.indexOf(status) === -1) { return callback(new Error('[[error:invalid-user-status]]')); } - user.setUserField(socket.uid, 'status', status, function(err) { + + var data = {status: status}; + if (status !== 'offline') { + data.lastonline = Date.now(); + } + user.setUserFields(socket.uid, data, function(err) { if (err) { return callback(err); } diff --git a/src/user.js b/src/user.js index 50adb467e4..bc7b2a724c 100644 --- a/src/user.js +++ b/src/user.js @@ -134,7 +134,7 @@ var utils = require('../public/src/utils'); }; User.getStatus = function(userData) { - var isOnline = Date.now() - parseInt(userData.lastonline, 10) < 300000; + var isOnline = (Date.now() - parseInt(userData.lastonline, 10)) < 300000; return isOnline ? (userData.status || 'online') : 'offline'; };