| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- /* eslint-disable
- max-len,
- no-undef,
- no-unused-vars,
- */
- // TODO: This file was created by bulk-decaffeinate.
- // Fix any style issues and re-enable lint.
- /*
- * decaffeinate suggestions:
- * DS102: Remove unnecessary code created because of implicit returns
- * DS207: Consider shorter variations of null checks
- * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
- */
- const settings = require('settings-sharelatex')
- const logger = require('logger-sharelatex')
- const TeamInvitesHandler = require('./TeamInvitesHandler')
- const AuthenticationController = require('../Authentication/AuthenticationController')
- const SubscriptionLocator = require('./SubscriptionLocator')
- const ErrorController = require('../Errors/ErrorController')
- const EmailHelper = require('../Helpers/EmailHelper')
- module.exports = {
- createInvite(req, res, next) {
- const teamManagerId = AuthenticationController.getLoggedInUserId(req)
- const subscription = req.entity
- const email = EmailHelper.parseEmail(req.body.email)
- if (email == null) {
- return res.status(422).json({
- error: {
- code: 'invalid_email',
- message: req.i18n.translate('invalid_email')
- }
- })
- }
- return TeamInvitesHandler.createInvite(
- teamManagerId,
- subscription,
- email,
- function (err, inviteUserData) {
- if (err != null) {
- if (err.alreadyInTeam) {
- return res.status(400).json({
- error: {
- code: 'user_already_added',
- message: req.i18n.translate('user_already_added')
- }
- })
- }
- if (err.limitReached) {
- return res.status(400).json({
- error: {
- code: 'group_full',
- message: req.i18n.translate('group_full')
- }
- })
- }
- return next(err)
- }
- return res.json({ user: inviteUserData })
- }
- )
- },
- viewInvite(req, res, next) {
- const { token } = req.params
- const userId = AuthenticationController.getLoggedInUserId(req)
- return TeamInvitesHandler.getInvite(
- token,
- function (err, invite, teamSubscription) {
- if (err != null) {
- return next(err)
- }
- if (!invite) {
- return ErrorController.notFound(req, res, next)
- }
- return SubscriptionLocator.getUsersSubscription(
- userId,
- function (err, personalSubscription) {
- if (err != null) {
- return next(err)
- }
- const hasIndividualRecurlySubscription =
- personalSubscription != null &&
- personalSubscription.planCode.match(/(free|trial)/) == null &&
- personalSubscription.groupPlan === false &&
- personalSubscription.recurlySubscription_id != null &&
- personalSubscription.recurlySubscription_id !== ''
- return res.render('subscriptions/team/invite', {
- inviterName: invite.inviterName,
- inviteToken: invite.token,
- hasIndividualRecurlySubscription,
- appName: settings.appName,
- expired: req.query.expired
- })
- }
- )
- }
- )
- },
- acceptInvite(req, res, next) {
- const { token } = req.params
- const userId = AuthenticationController.getLoggedInUserId(req)
- return TeamInvitesHandler.acceptInvite(
- token,
- userId,
- function (err, results) {
- if (err != null) {
- return next(err)
- }
- return res.sendStatus(204)
- }
- )
- },
- revokeInvite(req, res) {
- const subscription = req.entity
- const email = EmailHelper.parseEmail(req.params.email)
- const teamManagerId = AuthenticationController.getLoggedInUserId(req)
- if (email == null) {
- return res.sendStatus(400)
- }
- return TeamInvitesHandler.revokeInvite(
- teamManagerId,
- subscription,
- email,
- function (err, results) {
- if (err != null) {
- return next(err)
- }
- return res.sendStatus(204)
- }
- )
- }
- }
|