SubscriptionGroupController.coffee 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. SubscriptionGroupHandler = require("./SubscriptionGroupHandler")
  2. logger = require("logger-sharelatex")
  3. SubscriptionLocator = require("./SubscriptionLocator")
  4. ErrorsController = require("../Errors/ErrorController")
  5. SubscriptionDomainHandler = require("./SubscriptionDomainHandler")
  6. AuthenticationController = require('../Authentication/AuthenticationController')
  7. _ = require("underscore")
  8. async = require("async")
  9. module.exports =
  10. addUserToGroup: (req, res)->
  11. adminUserId = AuthenticationController.getLoggedInUserId(req)
  12. newEmail = req.body?.email?.toLowerCase()?.trim()
  13. logger.log adminUserId:adminUserId, newEmail:newEmail, "adding user to group subscription"
  14. SubscriptionGroupHandler.addUserToGroup adminUserId, newEmail, (err, user)->
  15. if err?
  16. logger.err err:err, newEmail:newEmail, adminUserId:adminUserId, "error adding user from group"
  17. return res.sendStatus 500
  18. result =
  19. user:user
  20. if err and err.limitReached
  21. result.limitReached = true
  22. res.json(result)
  23. removeUserFromGroup: (req, res)->
  24. adminUserId = AuthenticationController.getLoggedInUserId(req)
  25. userToRemove_id = req.params.user_id
  26. logger.log adminUserId:adminUserId, userToRemove_id:userToRemove_id, "removing user from group subscription"
  27. SubscriptionGroupHandler.removeUserFromGroup adminUserId, userToRemove_id, (err)->
  28. if err?
  29. logger.err err:err, adminUserId:adminUserId, userToRemove_id:userToRemove_id, "error removing user from group"
  30. return res.sendStatus 500
  31. res.send()
  32. removeEmailInviteFromGroup: (req, res)->
  33. adminUserId = AuthenticationController.getLoggedInUserId(req)
  34. email = req.params.email
  35. logger.log {adminUserId, email}, "removing email invite from group subscription"
  36. SubscriptionGroupHandler.removeEmailInviteFromGroup adminUserId, email, (err)->
  37. return next(error) if error?
  38. res.send()
  39. removeSelfFromGroup: (req, res)->
  40. adminUserId = req.query.admin_user_id
  41. userToRemove_id = AuthenticationController.getLoggedInUserId(req)
  42. logger.log adminUserId:adminUserId, userToRemove_id:userToRemove_id, "removing user from group subscription after self request"
  43. SubscriptionGroupHandler.removeUserFromGroup adminUserId, userToRemove_id, (err)->
  44. if err?
  45. logger.err err:err, userToRemove_id:userToRemove_id, adminUserId:adminUserId, "error removing self from group"
  46. return res.sendStatus 500
  47. res.send()
  48. renderSubscriptionGroupAdminPage: (req, res)->
  49. user_id = AuthenticationController.getLoggedInUserId(req)
  50. SubscriptionLocator.getUsersSubscription user_id, (err, subscription)->
  51. if !subscription?.groupPlan
  52. return res.redirect("/user/subscription")
  53. SubscriptionGroupHandler.getPopulatedListOfMembers user_id, (err, users)->
  54. res.render "subscriptions/group_admin",
  55. title: 'group_admin'
  56. users: users
  57. subscription: subscription
  58. exportGroupCsv: (req, res)->
  59. user_id = AuthenticationController.getLoggedInUserId(req)
  60. logger.log user_id: user_id, "exporting group csv"
  61. SubscriptionLocator.getUsersSubscription user_id, (err, subscription)->
  62. if !subscription.groupPlan
  63. return res.redirect("/")
  64. SubscriptionGroupHandler.getPopulatedListOfMembers user_id, (err, users)->
  65. groupCsv = ""
  66. for user in users
  67. groupCsv += user.email + "\n"
  68. res.header(
  69. "Content-Disposition",
  70. "attachment; filename=Group.csv"
  71. )
  72. res.contentType('text/csv')
  73. res.send(groupCsv)