mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-01 19:46:01 +01:00
closes #5618
This commit is contained in:
@@ -148,7 +148,9 @@ module.exports = function (Groups) {
|
|||||||
async.parallel([
|
async.parallel([
|
||||||
async.apply(db.setRemove, 'group:' + groupName + ':pending', uid),
|
async.apply(db.setRemove, 'group:' + groupName + ':pending', uid),
|
||||||
async.apply(db.setRemove, 'group:' + groupName + ':invited', uid),
|
async.apply(db.setRemove, 'group:' + groupName + ':invited', uid),
|
||||||
], callback);
|
], function (err) {
|
||||||
|
callback(err);
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
Groups.invite = function (groupName, uid, callback) {
|
Groups.invite = function (groupName, uid, callback) {
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ var meta = require('../meta');
|
|||||||
var user = require('../user');
|
var user = require('../user');
|
||||||
var utils = require('../utils');
|
var utils = require('../utils');
|
||||||
var groupsController = require('../controllers/groups');
|
var groupsController = require('../controllers/groups');
|
||||||
|
var events = require('../events');
|
||||||
|
|
||||||
var SocketGroups = module.exports;
|
var SocketGroups = module.exports;
|
||||||
|
|
||||||
@@ -104,19 +105,47 @@ SocketGroups.rescind = isOwner(function (socket, data, callback) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
SocketGroups.accept = isOwner(function (socket, data, callback) {
|
SocketGroups.accept = isOwner(function (socket, data, callback) {
|
||||||
groups.acceptMembership(data.groupName, data.toUid, callback);
|
async.waterfall([
|
||||||
|
function (next) {
|
||||||
|
groups.acceptMembership(data.groupName, data.toUid, next);
|
||||||
|
},
|
||||||
|
function (next) {
|
||||||
|
events.log({
|
||||||
|
type: 'accept-membership',
|
||||||
|
uid: socket.uid,
|
||||||
|
ip: socket.ip,
|
||||||
|
groupName: data.groupName,
|
||||||
|
targetUid: data.toUid,
|
||||||
|
});
|
||||||
|
setImmediate(next);
|
||||||
|
},
|
||||||
|
], callback);
|
||||||
});
|
});
|
||||||
|
|
||||||
SocketGroups.reject = isOwner(function (socket, data, callback) {
|
SocketGroups.reject = isOwner(function (socket, data, callback) {
|
||||||
groups.rejectMembership(data.groupName, data.toUid, callback);
|
async.waterfall([
|
||||||
|
function (next) {
|
||||||
|
groups.rejectMembership(data.groupName, data.toUid, next);
|
||||||
|
},
|
||||||
|
function (next) {
|
||||||
|
events.log({
|
||||||
|
type: 'reject-membership',
|
||||||
|
uid: socket.uid,
|
||||||
|
ip: socket.ip,
|
||||||
|
groupName: data.groupName,
|
||||||
|
targetUid: data.toUid,
|
||||||
|
});
|
||||||
|
setImmediate(next);
|
||||||
|
},
|
||||||
|
], callback);
|
||||||
});
|
});
|
||||||
|
|
||||||
SocketGroups.acceptAll = isOwner(function (socket, data, callback) {
|
SocketGroups.acceptAll = isOwner(function (socket, data, callback) {
|
||||||
acceptRejectAll(groups.acceptMembership, socket, data, callback);
|
acceptRejectAll(SocketGroups.accept, socket, data, callback);
|
||||||
});
|
});
|
||||||
|
|
||||||
SocketGroups.rejectAll = isOwner(function (socket, data, callback) {
|
SocketGroups.rejectAll = isOwner(function (socket, data, callback) {
|
||||||
acceptRejectAll(groups.rejectMembership, socket, data, callback);
|
acceptRejectAll(SocketGroups.reject, socket, data, callback);
|
||||||
});
|
});
|
||||||
|
|
||||||
function acceptRejectAll(method, socket, data, callback) {
|
function acceptRejectAll(method, socket, data, callback) {
|
||||||
@@ -126,7 +155,7 @@ function acceptRejectAll(method, socket, data, callback) {
|
|||||||
},
|
},
|
||||||
function (uids, next) {
|
function (uids, next) {
|
||||||
async.each(uids, function (uid, next) {
|
async.each(uids, function (uid, next) {
|
||||||
method(data.groupName, uid, next);
|
method(socket, { groupName: data.groupName, toUid: uid }, next);
|
||||||
}, next);
|
}, next);
|
||||||
},
|
},
|
||||||
], callback);
|
], callback);
|
||||||
|
|||||||
Reference in New Issue
Block a user