mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 16:46:12 +01:00
fix(writeapi): client-side group join API call
This commit is contained in:
@@ -1,6 +1,5 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
|
||||||
define('forum/groups/details', [
|
define('forum/groups/details', [
|
||||||
'forum/groups/memberlist',
|
'forum/groups/memberlist',
|
||||||
'iconSelect',
|
'iconSelect',
|
||||||
@@ -9,7 +8,8 @@ define('forum/groups/details', [
|
|||||||
'pictureCropper',
|
'pictureCropper',
|
||||||
'translator',
|
'translator',
|
||||||
'vendor/colorpicker/colorpicker',
|
'vendor/colorpicker/colorpicker',
|
||||||
], function (memberList, iconSelect, components, coverPhoto, pictureCropper, translator) {
|
'api',
|
||||||
|
], function (memberList, iconSelect, components, coverPhoto, pictureCropper, translator, api) {
|
||||||
var Details = {};
|
var Details = {};
|
||||||
var groupName;
|
var groupName;
|
||||||
|
|
||||||
@@ -106,7 +106,10 @@ define('forum/groups/details', [
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'join': // intentional fall-throughs!
|
case 'join': // intentional fall-throughs!
|
||||||
case 'leave':
|
api.put('/groups/' + ajaxify.data.group.slug + '/membership/' + (uid || app.user.uid), undefined, () => ajaxify.refresh(), err => app.alertError(err.status.message));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'leave': // intentional fall-throughs!
|
||||||
case 'accept':
|
case 'accept':
|
||||||
case 'reject':
|
case 'reject':
|
||||||
case 'issueInvite':
|
case 'issueInvite':
|
||||||
|
|||||||
@@ -54,19 +54,16 @@ Groups.join = async (req, res) => {
|
|||||||
});
|
});
|
||||||
const [isCallerOwner, userExists] = await Promise.all([
|
const [isCallerOwner, userExists] = await Promise.all([
|
||||||
groups.ownership.isOwner(req.user.uid, group.name),
|
groups.ownership.isOwner(req.user.uid, group.name),
|
||||||
user.exists(req.user.uid),
|
user.exists(req.params.uid),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if (group.isMember) {
|
if (!userExists) {
|
||||||
|
throw new Error('[[error:invalid-uid]]');
|
||||||
|
} else if (group.isMember) {
|
||||||
// No change
|
// No change
|
||||||
return helpers.formatApiResponse(200, res);
|
return helpers.formatApiResponse(200, res);
|
||||||
} else if (!userExists) {
|
|
||||||
throw new Error('[[error:invalid-uid]]');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// console.log(res.locals.privileges);
|
|
||||||
// return res.sendStatus(200);
|
|
||||||
|
|
||||||
if (!res.locals.privileges.isAdmin) {
|
if (!res.locals.privileges.isAdmin) {
|
||||||
// Admin and privilege groups unjoinable client-side
|
// Admin and privilege groups unjoinable client-side
|
||||||
if (group.name === 'administrators' || groups.isPrivilegeGroup(group.name)) {
|
if (group.name === 'administrators' || groups.isPrivilegeGroup(group.name)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user