mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-28 17:46:16 +01:00
closes #5070
This commit is contained in:
@@ -74,6 +74,7 @@ chatsController.get = function(req, res, callback) {
|
||||
return user && parseInt(user.uid, 10) && parseInt(user.uid, 10) !== req.uid;
|
||||
});
|
||||
|
||||
room.groupChat = room.hasOwnProperty('groupChat') ? room.groupChat : room.users.length > 2;
|
||||
room.rooms = recentChats.rooms;
|
||||
room.uid = uid;
|
||||
room.userslug = req.params.userslug;
|
||||
|
||||
@@ -265,7 +265,7 @@ var async = require('async'),
|
||||
},
|
||||
users: function(next) {
|
||||
async.map(roomIds, function(roomId, next) {
|
||||
db.getSortedSetRevRange('chat:room:' + roomId + ':uids', 0, 3, function(err, uids) {
|
||||
db.getSortedSetRevRange('chat:room:' + roomId + ':uids', 0, 9, function(err, uids) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
|
||||
@@ -13,10 +13,7 @@ module.exports = function(Messaging) {
|
||||
if (err || !data) {
|
||||
return callback(err || new Error('[[error:no-chat-room]]'));
|
||||
}
|
||||
data.roomName = data.roomName || '[[modules:chat.roomname, ' + roomId + ']]';
|
||||
if (data.roomName) {
|
||||
data.roomName = validator.escape(String(data.roomName));
|
||||
}
|
||||
modifyRoomData([data]);
|
||||
callback(null, data);
|
||||
});
|
||||
};
|
||||
@@ -29,16 +26,23 @@ module.exports = function(Messaging) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
roomData.forEach(function(data) {
|
||||
if (data) {
|
||||
data.roomName = data.roomName || '[[modules:chat.roomname, ' + data.roomId + ']]';
|
||||
data.roomName = validator.escape(String(data.roomName));
|
||||
}
|
||||
});
|
||||
modifyRoomData(roomData);
|
||||
callback(null, roomData);
|
||||
});
|
||||
};
|
||||
|
||||
function modifyRoomData(rooms) {
|
||||
rooms.forEach(function(data) {
|
||||
if (data) {
|
||||
data.roomName = data.roomName || '[[modules:chat.roomname, ' + data.roomId + ']]';
|
||||
data.roomName = validator.escape(String(data.roomName));
|
||||
if (data.hasOwnProperty('groupChat')) {
|
||||
data.groupChat = parseInt(data.groupChat, 10) === 1;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Messaging.newRoom = function(uid, toUids, callback) {
|
||||
var roomId;
|
||||
var now = Date.now();
|
||||
@@ -105,6 +109,18 @@ module.exports = function(Messaging) {
|
||||
return now;
|
||||
});
|
||||
db.sortedSetAdd('chat:room:' + roomId + ':uids', timestamps, uids, next);
|
||||
},
|
||||
function(next) {
|
||||
async.parallel({
|
||||
userCount: async.apply(db.sortedSetCard, 'chat:room:' + roomId + ':uids'),
|
||||
roomData: async.apply(db.getObject, 'chat:room:' + roomId)
|
||||
}, next);
|
||||
},
|
||||
function(results, next) {
|
||||
if (!results.roomData.hasOwnProperty('groupChat') && results.userCount > 2) {
|
||||
return db.setObjectField('chat:room:' + roomId, 'groupChat', 1, next);
|
||||
}
|
||||
next();
|
||||
}
|
||||
], callback);
|
||||
};
|
||||
|
||||
@@ -133,6 +133,7 @@ SocketModules.chats.loadRoom = function(socket, data, callback) {
|
||||
},
|
||||
function (results, next) {
|
||||
results.roomData.users = results.users;
|
||||
results.roomData.groupChat = results.roomData.hasOwnProperty('groupChat') ? results.roomData.groupChat : results.users.length > 2;
|
||||
results.roomData.isOwner = parseInt(results.roomData.owner, 10) === socket.uid;
|
||||
results.roomData.maximumUsersInChatRoom = parseInt(meta.config.maximumUsersInChatRoom, 10) || 0;
|
||||
results.roomData.showUserInput = !results.roomData.maximumUsersInChatRoom || results.roomData.maximumUsersInChatRoom > 2;
|
||||
|
||||
Reference in New Issue
Block a user