SubscriptionGroupController.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. const SubscriptionGroupHandler = require('./SubscriptionGroupHandler')
  2. const OError = require('@overleaf/o-error')
  3. const logger = require('@overleaf/logger')
  4. const SubscriptionLocator = require('./SubscriptionLocator')
  5. const SessionManager = require('../Authentication/SessionManager')
  6. function removeUserFromGroup(req, res, next) {
  7. const subscription = req.entity
  8. const userToRemoveId = req.params.user_id
  9. logger.debug(
  10. { subscriptionId: subscription._id, userToRemove_id: userToRemoveId },
  11. 'removing user from group subscription'
  12. )
  13. SubscriptionGroupHandler.removeUserFromGroup(
  14. subscription._id,
  15. userToRemoveId,
  16. function (error) {
  17. if (error) {
  18. OError.tag(error, 'error removing user from group', {
  19. subscriptionId: subscription._id,
  20. userToRemove_id: userToRemoveId,
  21. })
  22. return next(error)
  23. }
  24. res.sendStatus(200)
  25. }
  26. )
  27. }
  28. function removeSelfFromGroup(req, res, next) {
  29. const subscriptionId = req.query.subscriptionId
  30. const userToRemoveId = SessionManager.getLoggedInUserId(req.session)
  31. SubscriptionLocator.getSubscription(
  32. subscriptionId,
  33. function (error, subscription) {
  34. if (error) {
  35. return next(error)
  36. }
  37. SubscriptionGroupHandler.removeUserFromGroup(
  38. subscription._id,
  39. userToRemoveId,
  40. function (error) {
  41. if (error) {
  42. logger.err(
  43. { err: error, userToRemove_id: userToRemoveId, subscriptionId },
  44. 'error removing self from group'
  45. )
  46. return res.sendStatus(500)
  47. }
  48. res.sendStatus(200)
  49. }
  50. )
  51. }
  52. )
  53. }
  54. module.exports = {
  55. removeUserFromGroup,
  56. removeSelfFromGroup,
  57. }