ProjectOptionsHandler.coffee 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. Project = require('../../models/Project').Project
  2. logger = require('logger-sharelatex')
  3. _ = require('underscore')
  4. settings = require("settings-sharelatex")
  5. safeCompilers = ["xelatex", "pdflatex", "latex", "lualatex"]
  6. module.exports =
  7. setCompiler : (project_id, compiler, callback = ()->)->
  8. logger.log project_id:project_id, compiler:compiler, "setting the compiler"
  9. compiler = compiler.toLowerCase()
  10. if !_.contains safeCompilers, compiler
  11. return callback()
  12. conditions = {_id:project_id}
  13. update = {compiler:compiler}
  14. Project.update conditions, update, {}, (err)->
  15. if callback?
  16. callback()
  17. setImageName : (project_id, imageName, callback = ()->)->
  18. logger.log project_id:project_id, imageName:imageName, "setting the imageName"
  19. imageName = imageName.toLowerCase()
  20. if ! _.some(settings.allowedImageNames, (allowed) -> imageName is allowed.imageName)
  21. return callback()
  22. conditions = {_id:project_id}
  23. update = {imageName: settings.imageRoot + '/' + imageName}
  24. Project.update conditions, update, {}, (err)->
  25. if callback?
  26. callback()
  27. setSpellCheckLanguage: (project_id, languageCode, callback = ()->)->
  28. logger.log project_id:project_id, languageCode:languageCode, "setting the spell check language"
  29. languageIsSafe = false
  30. settings.languages.forEach (safeLang)->
  31. if safeLang.code == languageCode
  32. languageIsSafe = true
  33. if languageCode == ""
  34. languageIsSafe = true
  35. if languageIsSafe
  36. conditions = {_id:project_id}
  37. update = {spellCheckLanguage:languageCode}
  38. Project.update conditions, update, {}, (err)->
  39. callback()
  40. else
  41. logger.err project_id:project_id, languageCode:languageCode, "tryed to set unsafe language"
  42. callback()
  43. setBrandVariationId: (project_id, brandVariationId, callback = ()->)->
  44. logger.log project_id:project_id, brandVariationId:brandVariationId, "setting the brand variation id"
  45. if !brandVariationId? or brandVariationId == ""
  46. return callback()
  47. conditions = {_id:project_id}
  48. update = {brandVariationId}
  49. Project.update conditions, update, {}, (err)->
  50. if err?
  51. logger.err err:err, "error setting brandVariationId"
  52. callback()