|
|
@ -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)) {
|
|
|
|