From 9043a40c358c19658b8468387a253bc01e599905 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Mon, 28 Dec 2015 14:37:53 +0200 Subject: [PATCH] backport private group fixes --- src/socket.io/groups.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/socket.io/groups.js b/src/socket.io/groups.js index 0361560f01..2321588d7f 100644 --- a/src/socket.io/groups.js +++ b/src/socket.io/groups.js @@ -22,6 +22,10 @@ SocketGroups.join = function(socket, data, callback) { return callback(new Error('[[error:invalid-uid]]')); } + if (data.groupName === 'administrators' || groups.isPrivilegeGroup(data.groupName)) { + return callback(new Error('[[error:not-allowed]]')); + } + groups.exists(data.groupName, function(err, exists) { if (err || !exists) { return callback(err || new Error('[[error:no-group]]')); @@ -39,10 +43,10 @@ SocketGroups.join = function(socket, data, callback) { return callback(err); } - if (checks.isPrivate && !checks.isAdmin) { - groups.requestMembership(data.groupName, socket.uid, callback); - } else { + if (!checks.isPrivate || checks.isAdmin) { groups.join(data.groupName, socket.uid, callback); + } else { + groups.requestMembership(data.groupName, socket.uid, callback); } }); });