mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-19 07:37:25 +01:00
add Group.methods.leave, user is removed from groups when his account is deleted
This commit is contained in:
@@ -413,19 +413,23 @@ GroupSchema.methods.leave = function(user, keep, mainCb){
|
|||||||
}, cb);
|
}, cb);
|
||||||
}else{ // otherwise just remove a member
|
}else{ // otherwise just remove a member
|
||||||
var update = {$pull: {members: user._id}};
|
var update = {$pull: {members: user._id}};
|
||||||
|
|
||||||
if (group.type == 'party' && group.quest.key){
|
if (group.type == 'party' && group.quest.key){
|
||||||
update['$unset'] = {};
|
update['$unset'] = {};
|
||||||
update['$unset']['quest.members.' + user._id] = 1;
|
update['$unset']['quest.members.' + user._id] = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
var seniorMember = _.find(group.members, function (m) {return m != user._id});
|
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)
|
// If the leader is leaving (or if the leader previously left, and this wasn't accounted for)
|
||||||
var leader = group.leader;
|
var leader = group.leader;
|
||||||
if (leader == user._id || !~group.members.indexOf(leader)) {
|
if (leader == user._id || !~group.members.indexOf(leader)) {
|
||||||
update['$set'] = update['$set'] || {};
|
update['$set'] = update['$set'] || {};
|
||||||
update['$set'].leader = seniorMember;
|
update['$set'].leader = seniorMember;
|
||||||
}
|
}
|
||||||
|
|
||||||
leader = group.quest && group.quest.leader;
|
leader = group.quest && group.quest.leader;
|
||||||
|
|
||||||
if (leader && (leader == user._id || !~group.members.indexOf(leader))) {
|
if (leader && (leader == user._id || !~group.members.indexOf(leader))) {
|
||||||
update['$set'] = update['$set'] || {};
|
update['$set'] = update['$set'] || {};
|
||||||
update['$set']['quest.leader'] = seniorMember;
|
update['$set']['quest.leader'] = seniorMember;
|
||||||
|
|||||||
Reference in New Issue
Block a user