From d9383e0f97a44dae97938ee91921286462b2bfb3 Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Fri, 4 Sep 2015 16:21:42 +0200 Subject: [PATCH] add Group.methods.leave, user is removed from groups when his account is deleted --- website/src/models/group.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/website/src/models/group.js b/website/src/models/group.js index 29ddb673c8..9c0f75fd91 100644 --- a/website/src/models/group.js +++ b/website/src/models/group.js @@ -413,19 +413,23 @@ GroupSchema.methods.leave = function(user, keep, mainCb){ }, cb); }else{ // otherwise just remove a member var update = {$pull: {members: user._id}}; + if (group.type == 'party' && group.quest.key){ update['$unset'] = {}; update['$unset']['quest.members.' + user._id] = 1; } var seniorMember = _.find(group.members, function (m) {return m != user._id}); + // If the leader is leaving (or if the leader previously left, and this wasn't accounted for) var leader = group.leader; if (leader == user._id || !~group.members.indexOf(leader)) { update['$set'] = update['$set'] || {}; update['$set'].leader = seniorMember; } + leader = group.quest && group.quest.leader; + if (leader && (leader == user._id || !~group.members.indexOf(leader))) { update['$set'] = update['$set'] || {}; update['$set']['quest.leader'] = seniorMember;