ProjectDetailsHandler.coffee 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. ProjectGetter = require("./ProjectGetter")
  2. UserGetter = require("../User/UserGetter")
  3. Project = require('../../models/Project').Project
  4. logger = require("logger-sharelatex")
  5. tpdsUpdateSender = require '../ThirdPartyDataStore/TpdsUpdateSender'
  6. _ = require("underscore")
  7. module.exports =
  8. getDetails: (project_id, callback)->
  9. ProjectGetter.getProjectWithoutDocLines project_id, (err, project)->
  10. if err?
  11. logger.err err:err, project_id:project_id, "error getting project"
  12. return callback(err)
  13. UserGetter.getUser project.owner_ref, (err, user) ->
  14. return callback(err) if err?
  15. details =
  16. name : project.name
  17. description: project.description
  18. compiler: project.compiler
  19. features: user.features
  20. logger.log project_id:project_id, details:details, "getting project details"
  21. callback(err, details)
  22. getProjectDescription: (project_id, callback)->
  23. Project.findOne _id:project_id, "description", (err, project)->
  24. callback(err, project?.description)
  25. setProjectDescription: (project_id, description, callback)->
  26. conditions = _id:project_id
  27. update = description:description
  28. logger.log conditions:conditions, update:update, project_id:project_id, description:description, "setting project description"
  29. Project.update conditions, update, (err)->
  30. if err?
  31. logger.err err:err, "something went wrong setting project description"
  32. callback(err)
  33. renameProject: (project_id, newName, callback = ->)->
  34. logger.log project_id: project_id, newName:newName, "renaming project"
  35. ProjectGetter.getProject project_id, {"name":1}, (err, project)->
  36. if err? or !project?
  37. logger.err err:err, project_id:project_id, "error getting project or could not find it todo project rename"
  38. return callback(err)
  39. oldProjectName = project.name
  40. Project.update _id:project_id, {name: newName}, (err, project)=>
  41. if err?
  42. return callback(err)
  43. tpdsUpdateSender.moveEntity {project_id:project_id, project_name:oldProjectName, newProjectName:newName}, callback
  44. setPublicAccessLevel : (project_id, newAccessLevel, callback = ->)->
  45. logger.log project_id: project_id, level: newAccessLevel, "set public access level"
  46. if project_id? && newAccessLevel? and _.include ['readOnly', 'readAndWrite', 'private'], newAccessLevel
  47. Project.update {_id:project_id},{publicAccesLevel:newAccessLevel}, (err)->
  48. callback()