UploadsRouter.coffee 1.0 KB

123456789101112131415161718192021222324252627282930
  1. AuthorizationMiddlewear = require('../Authorization/AuthorizationMiddlewear')
  2. AuthenticationController = require('../Authentication/AuthenticationController')
  3. ProjectUploadController = require "./ProjectUploadController"
  4. RateLimiterMiddlewear = require('../Security/RateLimiterMiddlewear')
  5. Settings = require('settings-sharelatex')
  6. multer = require('multer')
  7. upload = multer(
  8. dest: Settings.path.uploadFolder
  9. limits: fileSize: Settings.maxUploadSize
  10. )
  11. module.exports =
  12. apply: (webRouter, apiRouter) ->
  13. webRouter.post '/project/new/upload',
  14. AuthenticationController.requireLogin(),
  15. upload.single('qqfile'),
  16. ProjectUploadController.uploadProject
  17. webRouter.post '/Project/:Project_id/upload',
  18. RateLimiterMiddlewear.rateLimit({
  19. endpointName: "file-upload"
  20. params: ["Project_id"]
  21. maxRequests: 200
  22. timeInterval: 60 * 30
  23. }),
  24. AuthenticationController.requireLogin(),
  25. AuthorizationMiddlewear.ensureUserCanWriteProjectContent,
  26. upload.single('qqfile'),
  27. ProjectUploadController.uploadFile