SubscriptionGroupController.coffee 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. removeSelfFromGroup: (req, res)->
  33. adminUserId = req.query.admin_user_id
  34. userToRemove_id = AuthenticationController.getLoggedInUserId(req)
  35. logger.log adminUserId:adminUserId, userToRemove_id:userToRemove_id, "removing user from group subscription after self request"
  36. SubscriptionGroupHandler.removeUserFromGroup adminUserId, userToRemove_id, (err)->
  37. if err?
  38. logger.err err:err, userToRemove_id:userToRemove_id, adminUserId:adminUserId, "error removing self from group"
  39. return res.sendStatus 500
  40. res.send()
  41. renderSubscriptionGroupAdminPage: (req, res)->
  42. user_id = AuthenticationController.getLoggedInUserId(req)
  43. SubscriptionLocator.getUsersSubscription user_id, (err, subscription)->
  44. if !subscription?.groupPlan
  45. return res.redirect("/user/subscription")
  46. SubscriptionGroupHandler.getPopulatedListOfMembers user_id, (err, users)->
  47. res.render "subscriptions/group_admin",
  48. title: 'group_admin'
  49. users: users
  50. subscription: subscription
  51. exportGroupCsv: (req, res)->
  52. user_id = AuthenticationController.getLoggedInUserId(req)
  53. logger.log user_id: user_id, "exporting group csv"
  54. SubscriptionLocator.getUsersSubscription user_id, (err, subscription)->
  55. if !subscription.groupPlan
  56. return res.redirect("/")
  57. SubscriptionGroupHandler.getPopulatedListOfMembers user_id, (err, users)->
  58. groupCsv = ""
  59. for user in users
  60. groupCsv += user.email + "\n"
  61. res.header(
  62. "Content-Disposition",
  63. "attachment; filename=Group.csv"
  64. )
  65. res.contentType('text/csv')
  66. res.send(groupCsv)