overleaf/services/web/app/src/Features/Subscription/SubscriptionGroupController.js

63 lines
1.7 KiB
JavaScript
Raw Normal View History

const SubscriptionGroupHandler = require('./SubscriptionGroupHandler')
const OError = require('@overleaf/o-error')
const logger = require('@overleaf/logger')
const SubscriptionLocator = require('./SubscriptionLocator')
const SessionManager = require('../Authentication/SessionManager')
function removeUserFromGroup(req, res, next) {
const subscription = req.entity
const userToRemoveId = req.params.user_id
logger.debug(
{ subscriptionId: subscription._id, userToRemove_id: userToRemoveId },
'removing user from group subscription'
)
SubscriptionGroupHandler.removeUserFromGroup(
subscription._id,
userToRemoveId,
function (error) {
if (error) {
OError.tag(error, 'error removing user from group', {
subscriptionId: subscription._id,
userToRemove_id: userToRemoveId,
})
return next(error)
}
res.sendStatus(200)
}
)
}
function removeSelfFromGroup(req, res, next) {
const subscriptionId = req.query.subscriptionId
const userToRemoveId = SessionManager.getLoggedInUserId(req.session)
SubscriptionLocator.getSubscription(
subscriptionId,
function (error, subscription) {
if (error) {
return next(error)
}
SubscriptionGroupHandler.removeUserFromGroup(
subscription._id,
userToRemoveId,
function (error) {
if (error) {
logger.err(
{ err: error, userToRemove_id: userToRemoveId, subscriptionId },
'error removing self from group'
)
return res.sendStatus(500)
}
res.sendStatus(200)
}
)
}
)
}
module.exports = {
removeUserFromGroup,
removeSelfFromGroup,
}