UserMembershipController.coffee 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. AuthenticationController = require('../Authentication/AuthenticationController')
  2. UserMembershipHandler = require('./UserMembershipHandler')
  3. logger = require("logger-sharelatex")
  4. module.exports =
  5. index: (entityName, req, res, next)->
  6. userId = AuthenticationController.getLoggedInUserId(req)
  7. UserMembershipHandler.getEntity entityName, userId, (error, entity)->
  8. return next(error) if error?
  9. UserMembershipHandler.getUsers entityName, entity, (error, users)->
  10. return next(error) if error?
  11. res.render "user_membership/index",
  12. users: users
  13. entity: entity
  14. translations: getTranslationsFor(entityName)
  15. paths: getPathsFor(entityName)
  16. add: (entityName, req, res, next)->
  17. userId = AuthenticationController.getLoggedInUserId(req)
  18. email = req.body.email
  19. return res.sendStatus 422 unless email
  20. UserMembershipHandler.getEntity entityName, userId, (error, entity)->
  21. return next(error) if error?
  22. UserMembershipHandler.addUser entityName, entity, email, (error, user)->
  23. return next(error) if error?
  24. res.json(user: user)
  25. remove: (entityName, req, res, next)->
  26. loggedInUserId = AuthenticationController.getLoggedInUserId(req)
  27. userId = req.params.userId
  28. UserMembershipHandler.getEntity entityName, loggedInUserId, (error, entity)->
  29. return next(error) if error?
  30. UserMembershipHandler.removeUser entityName, entity, userId, (error, user)->
  31. return next(error) if error?
  32. res.send()
  33. getTranslationsFor = (entityName) ->
  34. switch entityName
  35. when 'group'
  36. title: 'group_account'
  37. remove: 'remove_from_group'
  38. when 'groupManagers'
  39. title: 'group_managers'
  40. remove: 'remove_manager'
  41. when 'institution'
  42. title: 'institution_managers'
  43. remove: 'remove_manager'
  44. getPathsFor = (entityName) ->
  45. switch entityName
  46. when 'group'
  47. addMember: '/subscription/invites'
  48. removeMember: '/subscription/group/user'
  49. removeInvite: '/subscription/invites'
  50. exportMembers: '/subscription/group/export'
  51. when 'groupManagers'
  52. addMember: "/manage/group/managers"
  53. removeMember: "/manage/group/managers"
  54. when 'institution'
  55. addMember: "/manage/institution/managers"
  56. removeMember: "/manage/institution/managers"