mirror of
https://github.com/overleaf/overleaf.git
synced 2024-09-16 02:52:31 -04:00
Honour invited_emails for the team being
We'll remove them soon, but we want to keep them for a while so recent invites can join their teams.
This commit is contained in:
parent
670f24ef6f
commit
a3bb99d755
5 changed files with 30 additions and 4 deletions
|
@ -56,7 +56,10 @@ module.exports = LimitationsManager =
|
||||||
callback err, subscriptions.length > 0, subscriptions
|
callback err, subscriptions.length > 0, subscriptions
|
||||||
|
|
||||||
teamHasReachedMemberLimit: (subscription) ->
|
teamHasReachedMemberLimit: (subscription) ->
|
||||||
currentTotal = (subscription.member_ids or []).length + (subscription.teamInvites or []).length
|
currentTotal = (subscription.member_ids or []).length
|
||||||
|
+ (subscription.teamInvites or []).length
|
||||||
|
+ (subscription.invited_emails or []).length
|
||||||
|
|
||||||
return currentTotal >= subscription.membersLimit
|
return currentTotal >= subscription.membersLimit
|
||||||
|
|
||||||
hasGroupMembersLimitReached: (user_id, callback = (err, limitReached, subscription)->)->
|
hasGroupMembersLimitReached: (user_id, callback = (err, limitReached, subscription)->)->
|
||||||
|
|
|
@ -47,6 +47,9 @@ module.exports = SubscriptionGroupHandler =
|
||||||
|
|
||||||
users = []
|
users = []
|
||||||
|
|
||||||
|
for email in subscription.invited_emails or []
|
||||||
|
users.push buildEmailInviteViewModel(email)
|
||||||
|
|
||||||
for teamInvite in subscription.teamInvites or []
|
for teamInvite in subscription.teamInvites or []
|
||||||
users.push buildEmailInviteViewModel(teamInvite.email)
|
users.push buildEmailInviteViewModel(teamInvite.email)
|
||||||
|
|
||||||
|
|
|
@ -47,6 +47,13 @@ module.exports = SubscriptionUpdater =
|
||||||
return callback(err)
|
return callback(err)
|
||||||
FeaturesUpdater.refreshFeatures user_id, callback
|
FeaturesUpdater.refreshFeatures user_id, callback
|
||||||
|
|
||||||
|
removeEmailInviteFromGroup: (adminUser_id, email, callback)->
|
||||||
|
Subscription.update {
|
||||||
|
admin_id: adminUser_id
|
||||||
|
}, "$pull": {
|
||||||
|
invited_emails: email
|
||||||
|
}, callback
|
||||||
|
|
||||||
deleteSubscription: (subscription_id, callback = (error) ->) ->
|
deleteSubscription: (subscription_id, callback = (error) ->) ->
|
||||||
SubscriptionLocator.getSubscription subscription_id, (err, subscription) ->
|
SubscriptionLocator.getSubscription subscription_id, (err, subscription) ->
|
||||||
return callback(err) if err?
|
return callback(err) if err?
|
||||||
|
|
|
@ -110,10 +110,18 @@ createInvite = (subscription, email, inviterName, callback) ->
|
||||||
return callback(error, invite)
|
return callback(error, invite)
|
||||||
|
|
||||||
removeInviteFromTeam = (subscriptionId, email, callback) ->
|
removeInviteFromTeam = (subscriptionId, email, callback) ->
|
||||||
searchConditions = { _id: new ObjectId(subscriptionId.toString()) }
|
email = email.trim().toLowerCase()
|
||||||
updateOp = { $pull: { teamInvites: { email: email.trim().toLowerCase() } } }
|
|
||||||
|
searchConditions = { _id: new ObjectId(subscriptionId.toString()) }
|
||||||
|
|
||||||
|
removeInvite = { $pull: { teamInvites: { email: email } } }
|
||||||
|
removeLegacyInvite = { $pull: { invited_emails: email } }
|
||||||
|
|
||||||
|
async.series [
|
||||||
|
(cb) -> Subscription.update(searchConditions, removeInvite, cb),
|
||||||
|
(cb) -> Subscription.update(searchConditions, removeLegacyInvite, cb),
|
||||||
|
], callback
|
||||||
|
|
||||||
Subscription.update(searchConditions, updateOp, callback)
|
|
||||||
|
|
||||||
checkIfInviteIsPossible = (subscription, email, callback = (error, possible, reason) -> ) ->
|
checkIfInviteIsPossible = (subscription, email, callback = (error, possible, reason) -> ) ->
|
||||||
if LimitationsManager.teamHasReachedMemberLimit(subscription)
|
if LimitationsManager.teamHasReachedMemberLimit(subscription)
|
||||||
|
|
|
@ -201,6 +201,11 @@ describe "TeamInvitesHandler", ->
|
||||||
{ _id: new ObjectId("55153a8014829a865bbf700d") },
|
{ _id: new ObjectId("55153a8014829a865bbf700d") },
|
||||||
{ '$pull': { teamInvites: { email: "jorah@mormont.org" } } }
|
{ '$pull': { teamInvites: { email: "jorah@mormont.org" } } }
|
||||||
).should.eq true
|
).should.eq true
|
||||||
|
|
||||||
|
@Subscription.update.calledWith(
|
||||||
|
{ _id: new ObjectId("55153a8014829a865bbf700d") },
|
||||||
|
{ '$pull': { invited_emails: "jorah@mormont.org" } }
|
||||||
|
).should.eq true
|
||||||
done()
|
done()
|
||||||
|
|
||||||
describe "createTeamInvitesForLegacyInvitedEmail", (done) ->
|
describe "createTeamInvitesForLegacyInvitedEmail", (done) ->
|
||||||
|
|
Loading…
Reference in a new issue