fix: remove socketGroups.issueMassInvite

isekai-main
Julian Lam 2 years ago
parent b53f92fa2e
commit 9d49ec60a1

@ -285,21 +285,22 @@ define('forum/groups/details', [
});
});
$('[component="groups/members/bulk-invite-button"]').on('click', function () {
const usernames = $('[component="groups/members/bulk-invite"]').val();
$('[component="groups/members/bulk-invite-button"]').on('click', async () => {
let usernames = $('[component="groups/members/bulk-invite"]').val();
if (!usernames) {
return false;
}
socket.emit('groups.issueMassInvite', {
usernames: usernames,
groupName: ajaxify.data.group.name,
}, function (err) {
if (err) {
return alerts.error(err);
}
// Filter out bad usernames
usernames = usernames.split(',').map(username => slugify(username));
usernames = await Promise.all(usernames.map(slug => api.head(`/users/bySlug/${slug}`).then(() => slug).catch(() => false)));
usernames = usernames.filter(Boolean);
const uids = await Promise.all(usernames.map(slug => api.get(`/users/bySlug/${slug}`).then(({ uid }) => uid)));
await Promise.all(uids.map(async uid => api.post(`/groups/${ajaxify.data.group.slug}/invites/${uid}`))).then(() => {
updateList();
});
return false;
}).catch(alerts.error);
});
}

@ -56,27 +56,6 @@ async function isOwner(socket, data) {
}
}
SocketGroups.issueMassInvite = async (socket, data) => {
await isOwner(socket, data);
if (!data || !data.usernames || !data.groupName) {
throw new Error('[[error:invalid-data]]');
}
let usernames = String(data.usernames).split(',');
usernames = usernames.map(username => username && username.trim());
let uids = await user.getUidsByUsernames(usernames);
uids = uids.filter(uid => !!uid && parseInt(uid, 10));
await groups.invite(data.groupName, uids);
for (const uid of uids) {
logGroupEvent(socket, 'group-invite', {
groupName: data.groupName,
targetUid: uid,
});
}
};
SocketGroups.kick = async (socket, data) => {
await isOwner(socket, data);
if (socket.uid === parseInt(data.uid, 10)) {

@ -932,27 +932,6 @@ describe('Groups', () => {
assert(isInvited);
});
it('should fail with invalid data', (done) => {
socketGroups.issueMassInvite({ uid: adminUid }, { groupName: 'PrivateCanJoin', usernames: null }, (err) => {
assert.equal(err.message, '[[error:invalid-data]]');
done();
});
});
it('should issue mass invite to users', (done) => {
User.create({ username: 'invite2' }, (err, uid) => {
assert.ifError(err);
socketGroups.issueMassInvite({ uid: adminUid }, { groupName: 'PrivateCanJoin', usernames: 'invite1, invite2' }, (err) => {
assert.ifError(err);
Groups.isInvited([adminUid, uid], 'PrivateCanJoin', (err, isInvited) => {
assert.ifError(err);
assert.deepStrictEqual(isInvited, [false, true]);
done();
});
});
});
});
it('should rescind invite', async () => {
const uid = await User.create({ username: 'invite3' });
await apiGroups.issueInvite({ uid: adminUid }, { slug: 'privatecanjoin', uid });

Loading…
Cancel
Save