overleaf/services/web/app/coffee/Features/Subscription/SubscriptionGroupController.coffee
Timothée Alby 3d94be22b1 Merge pull request #1065 from sharelatex/ta-manage-group-members
Manage Group Members

GitOrigin-RevId: f0b120630ded1874dfc0352055633afff0015da9
2018-10-25 15:26:00 +00:00

48 lines
2.1 KiB
CoffeeScript

SubscriptionGroupHandler = require("./SubscriptionGroupHandler")
logger = require("logger-sharelatex")
SubscriptionLocator = require("./SubscriptionLocator")
AuthenticationController = require('../Authentication/AuthenticationController')
_ = require("underscore")
async = require("async")
module.exports =
removeUserFromGroup: (req, res, next)->
subscription = req.entity
userToRemove_id = req.params.user_id
logger.log subscriptionId: subscription._id, userToRemove_id:userToRemove_id, "removing user from group subscription"
SubscriptionGroupHandler.removeUserFromGroup subscription._id, userToRemove_id, (err)->
if err?
logger.err err:err, adminUserId:adminUserId, userToRemove_id:userToRemove_id, "error removing user from group"
return next(err)
res.send()
removeSelfFromGroup: (req, res, next)->
adminUserId = req.query.admin_user_id
userToRemove_id = AuthenticationController.getLoggedInUserId(req)
getManagedSubscription adminUserId, (error, subscription) ->
return next(error) if error?
logger.log adminUserId:adminUserId, userToRemove_id:userToRemove_id, "removing user from group subscription after self request"
SubscriptionGroupHandler.removeUserFromGroup subscription._id, userToRemove_id, (err)->
if err?
logger.err err:err, userToRemove_id:userToRemove_id, adminUserId:adminUserId, "error removing self from group"
return res.sendStatus 500
res.send()
# legacy route
redirectToSubscriptionGroupAdminPage: (req, res, next) ->
user_id = AuthenticationController.getLoggedInUserId(req)
getManagedSubscription user_id, (error, subscription) ->
return next(error) if error?
if !subscription?.groupPlan
return res.redirect("/user/subscription")
res.redirect("/manage/groups/#{subscription._id}/members")
getManagedSubscription = (managerId, callback) ->
SubscriptionLocator.findManagedSubscription managerId, (err, subscription)->
if subscription?
logger.log managerId: managerId, "got managed subscription"
else
err ||= new Error("No subscription found managed by user #{managerId}")
return callback(err, subscription)