diff --git a/package-lock.json b/package-lock.json index d02475f757..cb6ded3e5e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9361,16 +9361,16 @@ } }, "mongoose": { - "version": "5.11.8", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.11.8.tgz", - "integrity": "sha512-RRfrYLg7pyuyx7xu5hwadjIZZJB9W2jqIMkL1CkTmk/uOCX3MX2tl4BVIi2rJUtgMNwn6dy3wBD3soB8I9Nlog==", + "version": "5.11.10", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.11.10.tgz", + "integrity": "sha512-daE2L6VW7WNywv7tL2KUkBViWvODbzr50Of1kJpIbzW3w3N5/TYcgSmhCsEDWfYGQXbun2rdd7+sOdsEC8zQSQ==", "requires": { "@types/mongodb": "^3.5.27", "bson": "^1.1.4", "kareem": "2.3.2", "mongodb": "3.6.3", "mongoose-legacy-pluralize": "1.0.2", - "mpath": "0.8.1", + "mpath": "0.8.3", "mquery": "3.2.3", "ms": "2.1.2", "regexp-clone": "1.0.0", @@ -9547,9 +9547,9 @@ } }, "mpath": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.1.tgz", - "integrity": "sha512-norEinle9aFc05McBawVPwqgFZ7npkts9yu17ztIVLwPwO9rq0OTp89kGVTqvv5rNLMz96E5iWHpVORjI411vA==" + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.3.tgz", + "integrity": "sha512-eb9rRvhDltXVNL6Fxd2zM9D4vKBxjVVQNLNijlj7uoXUy19zNDsIif5zR+pWmPCWNKwAtqyo4JveQm4nfD5+eA==" }, "mquery": { "version": "3.2.3", diff --git a/package.json b/package.json index 561d067a9b..c28bbba6ed 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,8 @@ "@babel/preset-env": "^7.12.11", "@babel/register": "^7.12.10", "@google-cloud/trace-agent": "^5.1.1", - "@slack/webhook": "^5.0.3", "@parse/node-apn": "^4.0.0", + "@slack/webhook": "^5.0.3", "accepts": "^1.3.5", "amazon-payments": "^0.2.8", "amplitude": "^5.1.4", @@ -48,7 +48,7 @@ "method-override": "^3.0.0", "moment": "^2.29.1", "moment-recur": "^1.0.7", - "mongoose": "^5.11.8", + "mongoose": "^5.11.10", "morgan": "^1.10.0", "nconf": "^0.11.0", "node-gcm": "^1.0.3", diff --git a/website/server/controllers/api-v3/groups.js b/website/server/controllers/api-v3/groups.js index 3e1a142803..9a21b14e7c 100644 --- a/website/server/controllers/api-v3/groups.js +++ b/website/server/controllers/api-v3/groups.js @@ -640,7 +640,6 @@ api.joinGroup = { inviter.items.quests.basilist += 1; inviter.markModified('items.quests'); } - promises.push(inviter.save()); } if (group.type === 'party' && inviter) { @@ -651,6 +650,7 @@ api.joinGroup = { { $or: [{ 'party._id': group._id }, { _id: user._id }], 'achievements.partyUp': { $ne: true }, + _id: { $ne: inviter._id }, }, { $set: { 'achievements.partyUp': true }, @@ -661,8 +661,7 @@ api.joinGroup = { if (inviter) { if (inviter.achievements.partyUp !== true) { - // Since the notification list of the inviter is already - // updated in this save we need to add the notification here + inviter.achievements.partyUp = true; inviter.addNotification('ACHIEVEMENT_PARTY_UP'); } } @@ -675,6 +674,7 @@ api.joinGroup = { { $or: [{ 'party._id': group._id }, { _id: user._id }], 'achievements.partyOn': { $ne: true }, + _id: { $ne: inviter._id }, }, { $set: { 'achievements.partyOn': true }, @@ -685,14 +685,14 @@ api.joinGroup = { if (inviter) { if (inviter.achievements.partyOn !== true) { - // Since the notification list of the inviter is already - // updated in this save we need to add the notification here + inviter.achievements.partyOn = true; inviter.addNotification('ACHIEVEMENT_PARTY_ON'); } } } } + if (inviter) promises.push(inviter.save()); promises = await Promise.all(promises); if (group.hasNotCancelled()) {