ProjectDetailsHandler.coffee 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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. PublicAccessLevels = require("../Authorization/PublicAccessLevels")
  8. module.exports =
  9. getDetails: (project_id, callback)->
  10. ProjectGetter.getProject project_id, {name:true, description:true, compiler:true, features:true, owner_ref:true}, (err, project)->
  11. if err?
  12. logger.err err:err, project_id:project_id, "error getting project"
  13. return callback(err)
  14. UserGetter.getUser project.owner_ref, (err, user) ->
  15. return callback(err) if err?
  16. details =
  17. name : project.name
  18. description: project.description
  19. compiler: project.compiler
  20. features: user.features
  21. logger.log project_id:project_id, details:details, "getting project details"
  22. callback(err, details)
  23. getProjectDescription: (project_id, callback)->
  24. Project.findOne _id:project_id, "description", (err, project)->
  25. callback(err, project?.description)
  26. setProjectDescription: (project_id, description, callback)->
  27. conditions = _id:project_id
  28. update = description:description
  29. logger.log conditions:conditions, update:update, project_id:project_id, description:description, "setting project description"
  30. Project.update conditions, update, (err)->
  31. if err?
  32. logger.err err:err, "something went wrong setting project description"
  33. callback(err)
  34. renameProject: (project_id, newName, callback = ->)->
  35. logger.log project_id: project_id, newName:newName, "renaming project"
  36. ProjectGetter.getProject project_id, {name:true}, (err, project)->
  37. if err? or !project?
  38. logger.err err:err, project_id:project_id, "error getting project or could not find it todo project rename"
  39. return callback(err)
  40. oldProjectName = project.name
  41. Project.update _id:project_id, {name: newName}, (err, project)=>
  42. if err?
  43. return callback(err)
  44. tpdsUpdateSender.moveEntity {project_id:project_id, project_name:oldProjectName, newProjectName:newName}, callback
  45. setPublicAccessLevel : (project_id, newAccessLevel, callback = ->)->
  46. logger.log project_id: project_id, level: newAccessLevel, "set public access level"
  47. if project_id? && newAccessLevel? and _.include [PublicAccessLevels.READ_ONLY, PublicAccessLevels.READ_AND_WRITE, PublicAccessLevels.PRIVATE], newAccessLevel
  48. Project.update {_id:project_id},{publicAccesLevel:newAccessLevel}, (err)->
  49. callback()