SubscriptionGroupController.coffee 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. SubscriptionGroupHandler = require("./SubscriptionGroupHandler")
  2. logger = require("logger-sharelatex")
  3. SubscriptionLocator = require("./SubscriptionLocator")
  4. AuthenticationController = require('../Authentication/AuthenticationController')
  5. _ = require("underscore")
  6. async = require("async")
  7. module.exports =
  8. removeUserFromGroup: (req, res, next)->
  9. subscription = req.entity
  10. userToRemove_id = req.params.user_id
  11. logger.log subscriptionId: subscription._id, userToRemove_id:userToRemove_id, "removing user from group subscription"
  12. SubscriptionGroupHandler.removeUserFromGroup subscription._id, userToRemove_id, (err)->
  13. if err?
  14. logger.err err:err, adminUserId:adminUserId, userToRemove_id:userToRemove_id, "error removing user from group"
  15. return next(err)
  16. res.send()
  17. removeSelfFromGroup: (req, res, next)->
  18. adminUserId = req.query.admin_user_id
  19. userToRemove_id = AuthenticationController.getLoggedInUserId(req)
  20. getManagedSubscription adminUserId, (error, subscription) ->
  21. return next(error) if error?
  22. logger.log adminUserId:adminUserId, userToRemove_id:userToRemove_id, "removing user from group subscription after self request"
  23. SubscriptionGroupHandler.removeUserFromGroup subscription._id, userToRemove_id, (err)->
  24. if err?
  25. logger.err err:err, userToRemove_id:userToRemove_id, adminUserId:adminUserId, "error removing self from group"
  26. return res.sendStatus 500
  27. res.send()
  28. # legacy route
  29. redirectToSubscriptionGroupAdminPage: (req, res, next) ->
  30. user_id = AuthenticationController.getLoggedInUserId(req)
  31. getManagedSubscription user_id, (error, subscription) ->
  32. return next(error) if error?
  33. if !subscription?.groupPlan
  34. return res.redirect("/user/subscription")
  35. res.redirect("/manage/groups/#{subscription._id}/members")
  36. getManagedSubscription = (managerId, callback) ->
  37. SubscriptionLocator.findManagedSubscription managerId, (err, subscription)->
  38. if subscription?
  39. logger.log managerId: managerId, "got managed subscription"
  40. else
  41. err ||= new Error("No subscription found managed by user #{managerId}")
  42. return callback(err, subscription)