|
|
@@ -3,6 +3,7 @@ SubscriptionController = require('./SubscriptionController')
|
|
|
SubscriptionGroupController = require './SubscriptionGroupController'
|
|
|
DomainLicenceController = require './DomainLicenceController'
|
|
|
TeamInvitesController = require './TeamInvitesController'
|
|
|
+RateLimiterMiddlewear = require('../Security/RateLimiterMiddlewear')
|
|
|
Settings = require "settings-sharelatex"
|
|
|
|
|
|
module.exports =
|
|
|
@@ -24,12 +25,25 @@ module.exports =
|
|
|
# Team invites
|
|
|
webRouter.get '/subscription/invites/:token/', AuthenticationController.requireLogin(),
|
|
|
TeamInvitesController.viewInvite
|
|
|
- webRouter.put '/subscription/invites/:token/', AuthenticationController.requireLogin(),
|
|
|
+ webRouter.put '/subscription/invites/:token/',
|
|
|
+ AuthenticationController.requireLogin(),
|
|
|
+ RateLimiterMiddlewear.rateLimit({
|
|
|
+ endpointName: 'team-invite',
|
|
|
+ maxRequests: 10
|
|
|
+ timeInterval: 60
|
|
|
+ }),
|
|
|
TeamInvitesController.acceptInvite
|
|
|
|
|
|
# Routes to join a domain licence team
|
|
|
webRouter.get '/user/subscription/domain/join', AuthenticationController.requireLogin(), DomainLicenceController.join
|
|
|
- webRouter.post '/user/subscription/domain/join', AuthenticationController.requireLogin(), DomainLicenceController.createInvite
|
|
|
+ webRouter.post '/user/subscription/domain/join',
|
|
|
+ AuthenticationController.requireLogin(),
|
|
|
+ RateLimiterMiddlewear.rateLimit({
|
|
|
+ endpointName: 'join-domain-subscription',
|
|
|
+ maxRequests: 10
|
|
|
+ timeInterval: 60
|
|
|
+ }),
|
|
|
+ DomainLicenceController.createInvite
|
|
|
|
|
|
#recurly callback
|
|
|
publicApiRouter.post '/user/subscription/callback', SubscriptionController.recurlyNotificationParser, SubscriptionController.recurlyCallback
|