fix(groups): you should not be able to join a group you are not invited to

This commit is contained in:
Matteo Pagliazzi 2015-05-07 18:56:41 +02:00
parent a60f7f68af
commit 25fe1d34d6

View file

@ -398,7 +398,8 @@ api.likeChatMessage = function(req, res, next) {
api.join = function(req, res, next) {
var user = res.locals.user,
group = res.locals.group;
group = res.locals.group,
isUserInvited = false;
if (group.type == 'party' && group._id == (user.invitations && user.invitations.party && user.invitations.party.id)) {
User.update({_id:user.invitations.party.inviter}, {$inc:{'items.quests.basilist':1}}).exec(); // Reward inviter
@ -409,12 +410,18 @@ api.join = function(req, res, next) {
group.quest.members[user._id] = undefined;
group.markModified('quest.members');
}
}
else if (group.type == 'guild' && user.invitations && user.invitations.guilds) {
isUserInvited = true;
} else if (group.type == 'guild' && user.invitations && user.invitations.guilds) {
var i = _.findIndex(user.invitations.guilds, {id:group._id});
if (~i) user.invitations.guilds.splice(i,1);
if (~i){
user.invitations.guilds.splice(i,1);
user.save();
}else{
isUserInvited = group.privacy === 'private' ? false : true;
}
}
if(!isUserInvited) return res.json(401, {err: "Can't join a group you're not invited to."});
if (!_.contains(group.members, user._id)){
group.members.push(user._id);