mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-18 23:27:26 +01:00
Revert "Removed user's party invites when last user leaves party"
This commit is contained in:
@@ -172,11 +172,11 @@ describe "Guilds", ->
|
|||||||
cb()
|
cb()
|
||||||
], done
|
], done
|
||||||
|
|
||||||
it "deletes all invites to a group (guild) when the last member leaves", (done) ->
|
it "deletes all invites to a group when the last member leaves", (done) ->
|
||||||
groupToDeleteAfterLeave = undefined
|
groupToDeleteAfterLeave = undefined
|
||||||
userToRemoveInvite = undefined
|
userToRemoveInvite = undefined
|
||||||
request.post(baseURL + "/groups").send(
|
request.post(baseURL + "/groups").send(
|
||||||
name: "TestGroupToDeleteAfterLeave"
|
name: "TestGroupToDeleteAfteLeave"
|
||||||
type: "guild"
|
type: "guild"
|
||||||
privacy: "private"
|
privacy: "private"
|
||||||
).end (res) ->
|
).end (res) ->
|
||||||
@@ -217,53 +217,6 @@ describe "Guilds", ->
|
|||||||
cb()
|
cb()
|
||||||
], done
|
], done
|
||||||
|
|
||||||
it "deletes all invites to a group (party) when the last member leaves", (done) ->
|
|
||||||
partyToDeleteAfterLeave = undefined
|
|
||||||
userToRemovePartyInvite = undefined
|
|
||||||
request.post(baseURL + "/groups").send(
|
|
||||||
name: "TestPartyToDeleteAfterLeave"
|
|
||||||
type: "party"
|
|
||||||
).end (res) ->
|
|
||||||
partyToDeleteAfterLeave = res.body
|
|
||||||
async.waterfall [
|
|
||||||
(cb) ->
|
|
||||||
registerManyUsers 1, cb
|
|
||||||
|
|
||||||
(_members, cb) ->
|
|
||||||
userToRemovePartyInvite = _members[0]
|
|
||||||
inviteURL = baseURL + "/groups/" + partyToDeleteAfterLeave._id + "/invite"
|
|
||||||
request.post(inviteURL).send(
|
|
||||||
uuids: [userToRemovePartyInvite._id]
|
|
||||||
)
|
|
||||||
.end ->
|
|
||||||
cb()
|
|
||||||
|
|
||||||
(cb) ->
|
|
||||||
request.post(baseURL + "/groups/" + partyToDeleteAfterLeave._id + "/leave")
|
|
||||||
.end (res) ->
|
|
||||||
expectCode res, 204
|
|
||||||
cb()
|
|
||||||
|
|
||||||
(cb) ->
|
|
||||||
request.get(baseURL + '/user')
|
|
||||||
.set("X-API-User", userToRemovePartyInvite._id)
|
|
||||||
.set("X-API-Key", userToRemovePartyInvite.apiToken)
|
|
||||||
.end (err, res) ->
|
|
||||||
expectCode res, 200
|
|
||||||
party = partyToDeleteAfterLeave
|
|
||||||
partyInvitation = _.find(res.body.invitations.party, (invite) ->
|
|
||||||
return invite == party._id
|
|
||||||
)
|
|
||||||
expect(partyInvitation).to.not.exist
|
|
||||||
cb()
|
|
||||||
|
|
||||||
(cb) ->
|
|
||||||
request.post(baseURL + "/groups/" + partyToDeleteAfterLeave._id)
|
|
||||||
.end (res) ->
|
|
||||||
expectCode res, 404
|
|
||||||
cb()
|
|
||||||
], done
|
|
||||||
|
|
||||||
context "removing users groups", ->
|
context "removing users groups", ->
|
||||||
it "allows guild leaders to remove a member (but not themselves)", (done) ->
|
it "allows guild leaders to remove a member (but not themselves)", (done) ->
|
||||||
guildToRemoveMember = undefined
|
guildToRemoveMember = undefined
|
||||||
|
|||||||
@@ -89,22 +89,15 @@ GroupSchema.pre('remove', function(next) {
|
|||||||
var group = this;
|
var group = this;
|
||||||
async.waterfall([
|
async.waterfall([
|
||||||
function(cb) {
|
function(cb) {
|
||||||
var invitationQuery = {};
|
User.find({
|
||||||
var groupType = group.type;
|
'invitations.guilds.id': group._id
|
||||||
//Add an 's' to group type guild because the model has the plural version
|
}, cb);
|
||||||
if (group.type == "guild") groupType += "s";
|
|
||||||
invitationQuery['invitations.' + groupType + '.id'] = group._id;
|
|
||||||
User.find(invitationQuery, cb);
|
|
||||||
},
|
},
|
||||||
function(users, cb) {
|
function(users, cb) {
|
||||||
if (users) {
|
if (users) {
|
||||||
users.forEach(function (user, index, array) {
|
users.forEach(function (user, index, array) {
|
||||||
if ( group.type == "party" ) {
|
var i = _.findIndex(user.invitations.guilds, {id: group._id});
|
||||||
user.invitations.party = {};
|
user.invitations.guilds.splice(i, 1);
|
||||||
} else {
|
|
||||||
var i = _.findIndex(user.invitations.guilds, {id: group._id});
|
|
||||||
user.invitations.guilds.splice(i, 1);
|
|
||||||
}
|
|
||||||
user.save();
|
user.save();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user