|
|
|
@ -1,11 +1,13 @@
|
|
|
|
|
'use strict';
|
|
|
|
|
|
|
|
|
|
const validator = require('validator');
|
|
|
|
|
const groups = require('../groups');
|
|
|
|
|
const meta = require('../meta');
|
|
|
|
|
const user = require('../user');
|
|
|
|
|
const utils = require('../utils');
|
|
|
|
|
const events = require('../events');
|
|
|
|
|
const privileges = require('../privileges');
|
|
|
|
|
const notifications = require('../notifications');
|
|
|
|
|
|
|
|
|
|
const SocketGroups = module.exports;
|
|
|
|
|
|
|
|
|
@ -74,6 +76,16 @@ SocketGroups.leave = async (socket, data) => {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await groups.leave(data.groupName, socket.uid);
|
|
|
|
|
const username = await user.getUserField(socket.uid, 'username');
|
|
|
|
|
const notification = await notifications.create({
|
|
|
|
|
type: 'group-leave',
|
|
|
|
|
bodyShort: '[[groups:membership.leave.notification_title, ' + username + ', ' + data.groupName + ']]',
|
|
|
|
|
nid: 'group:' + validator.escape(data.groupName) + ':uid:' + socket.uid + ':group-leave',
|
|
|
|
|
path: '/groups/' + utils.slugify(data.groupName),
|
|
|
|
|
});
|
|
|
|
|
const uids = await groups.getOwners(data.groupName);
|
|
|
|
|
await notifications.push(notification, uids);
|
|
|
|
|
|
|
|
|
|
logGroupEvent(socket, 'group-leave', {
|
|
|
|
|
groupName: data.groupName,
|
|
|
|
|
});
|
|
|
|
|