Check the subscription is in a group plan before adding new members

This commit is contained in:
Alberto Fernández Capel 2018-06-08 09:58:51 +01:00
parent c4250e601e
commit 5159f6f33d
2 changed files with 15 additions and 3 deletions

View file

@ -124,6 +124,11 @@ removeInviteFromTeam = (subscriptionId, email, callback) ->
checkIfInviteIsPossible = (subscription, email, callback = (error, possible, reason) -> ) -> checkIfInviteIsPossible = (subscription, email, callback = (error, possible, reason) -> ) ->
unless subscription.groupPlan
logger.log {subscriptionId: subscription.id},
"can not add members to a subscription that is not in a group plan"
return callback(null, false, wrongPlan: true)
if LimitationsManager.teamHasReachedMemberLimit(subscription) if LimitationsManager.teamHasReachedMemberLimit(subscription)
logger.log {subscriptionId: subscription.id}, "team has reached member limit" logger.log {subscriptionId: subscription.id}, "team has reached member limit"
return callback(null, false, limitReached: true) return callback(null, false, limitReached: true)

View file

@ -26,9 +26,10 @@ describe "TeamInvitesHandler", ->
@subscription = { @subscription = {
id: "55153a8014829a865bbf700d", id: "55153a8014829a865bbf700d",
admin_id: @manager.id, admin_id: @manager.id,
member_ids: [] groupPlan: true,
teamInvites: [ @teamInvite ] member_ids: [],
save: sinon.stub().yields(null) teamInvites: [ @teamInvite ],
save: sinon.stub().yields(null),
} }
@SubscriptionLocator = { @SubscriptionLocator = {
@ -234,6 +235,12 @@ describe "TeamInvitesHandler", ->
expect(err).to.deep.equal(limitReached: true) expect(err).to.deep.equal(limitReached: true)
done() done()
it "doesn't create an invite if the subscription is not in a group plan", (done) ->
@subscription.groupPlan = false
@TeamInvitesHandler.createInvite @manager.id, "John.Snow@nightwatch.com", (err, invite) =>
expect(err).to.deep.equal(wrongPlan: true)
done()
it "doesn't create an invite if the user is already part of the team", (done) -> it "doesn't create an invite if the user is already part of the team", (done) ->
member = { member = {
id: "1a2b", id: "1a2b",