From 478faac945881ac207f12e23a3b02a70ae2579b9 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Thu, 24 Dec 2015 09:52:25 +0200 Subject: [PATCH] closes #3997 --- src/controllers/accounts/chats.js | 2 ++ src/socket.io/modules.js | 12 ++++++++++++ src/views/admin/settings/chat.tpl | 5 +++++ 3 files changed, 19 insertions(+) diff --git a/src/controllers/accounts/chats.js b/src/controllers/accounts/chats.js index 66c4257f97..c30a4f0103 100644 --- a/src/controllers/accounts/chats.js +++ b/src/controllers/accounts/chats.js @@ -65,6 +65,8 @@ chatsController.get = function(req, res, callback) { room.nextStart = recentChats.nextStart; room.title = room.roomName; room.breadcrumbs = helpers.buildBreadcrumbs([{text: '[[pages:chats]]', url: '/chats'}, {text: room.roomName}]); + room.maximumUsersInChatRoom = parseInt(meta.config.maximumUsersInChatRoom, 10) || 0; + room.showUserInput = !room.maximumUsersInChatRoom || room.maximumUsersInChatRoom > 2; res.render('chats', room); }); diff --git a/src/socket.io/modules.js b/src/socket.io/modules.js index 9e1d221726..1e4dda83c7 100644 --- a/src/socket.io/modules.js +++ b/src/socket.io/modules.js @@ -125,6 +125,8 @@ SocketModules.chats.loadRoom = function(socket, data, callback) { function (results, next) { results.roomData.users = results.users; 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; next(null, results.roomData); } ], callback); @@ -135,6 +137,16 @@ SocketModules.chats.addUserToRoom = function(socket, data, callback) { return callback(new Error('[[error:invalid-data]]')); } async.waterfall([ + function (next) { + Messaging.getUserCountInRoom(data.roomId, next); + }, + function (userCount, next) { + var maxUsers = parseInt(meta.config.maximumUsersInChatRoom, 10) || 0; + if (maxUsers && userCount >= maxUsers) { + return next(new Error('[[error:cant-add-more-users-to-chat-room]]')); + } + next(); + }, function (next) { user.getUidByUsername(data.username, next); }, diff --git a/src/views/admin/settings/chat.tpl b/src/views/admin/settings/chat.tpl index 828bf339a0..0cb7b3fdca 100644 --- a/src/views/admin/settings/chat.tpl +++ b/src/views/admin/settings/chat.tpl @@ -20,6 +20,11 @@ + +
+ + +