mirror of
https://github.com/overleaf/overleaf.git
synced 2025-04-09 04:16:02 +00:00
Split SubscriptionGroupInvites and rename to DomainSubscriptionJoin
To not cause confusion with team invites. They are not really an invite because they are user initiated, but more of a user choosing to join a team.
This commit is contained in:
parent
11edfde153
commit
39c8595c27
7 changed files with 60 additions and 102 deletions
|
@ -0,0 +1,45 @@
|
|||
SubscriptionGroupHandler = require("./SubscriptionGroupHandler")
|
||||
logger = require("logger-sharelatex")
|
||||
SubscriptionLocator = require("./SubscriptionLocator")
|
||||
ErrorsController = require("../Errors/ErrorController")
|
||||
SubscriptionDomainHandler = require("./SubscriptionDomainHandler")
|
||||
AuthenticationController = require('../Authentication/AuthenticationController')
|
||||
async = require("async")
|
||||
|
||||
module.exports =
|
||||
newInvite: (req, res)->
|
||||
group_subscription_id = req.params.subscription_id
|
||||
user_id = AuthenticationController.getLoggedInUserId(req)
|
||||
licence = SubscriptionDomainHandler.findDomainLicenceBySubscriptionId(group_subscription_id)
|
||||
if !licence?
|
||||
return ErrorsController.notFound(req, res)
|
||||
jobs =
|
||||
partOfGroup: (cb)->
|
||||
SubscriptionGroupHandler.isUserPartOfGroup user_id, licence.group_subscription_id, cb
|
||||
subscription: (cb)->
|
||||
SubscriptionLocator.getUsersSubscription user_id, cb
|
||||
async.series jobs, (err, results)->
|
||||
{partOfGroup, subscription} = results
|
||||
if partOfGroup
|
||||
return res.redirect("/user/subscription/custom_account")
|
||||
else
|
||||
res.render "subscriptions/group/join",
|
||||
title: "Group Invitation"
|
||||
group_subscription_id:group_subscription_id
|
||||
licenceName:licence.name
|
||||
has_personal_subscription: subscription?
|
||||
|
||||
createInvite: (req, res)->
|
||||
subscription_id = req.params.subscription_id
|
||||
currentUser = AuthenticationController.getSessionUser(req)
|
||||
if !currentUser?
|
||||
logger.err {subscription_id}, "error getting current user"
|
||||
return res.sendStatus 500
|
||||
licence = SubscriptionDomainHandler.findDomainLicenceBySubscriptionId(subscription_id)
|
||||
if !licence?
|
||||
return ErrorsController.notFound(req, res)
|
||||
SubscriptionGroupHandler.sendVerificationEmail subscription_id, licence.name, currentUser.email, (err)->
|
||||
if err?
|
||||
res.sendStatus 500
|
||||
else
|
||||
res.sendStatus 200
|
|
@ -62,68 +62,6 @@ module.exports =
|
|||
users: users
|
||||
subscription: subscription
|
||||
|
||||
renderGroupInvitePage: (req, res)->
|
||||
group_subscription_id = req.params.subscription_id
|
||||
user_id = AuthenticationController.getLoggedInUserId(req)
|
||||
licence = SubscriptionDomainHandler.findDomainLicenceBySubscriptionId(group_subscription_id)
|
||||
if !licence?
|
||||
return ErrorsController.notFound(req, res)
|
||||
jobs =
|
||||
partOfGroup: (cb)->
|
||||
SubscriptionGroupHandler.isUserPartOfGroup user_id, licence.group_subscription_id, cb
|
||||
subscription: (cb)->
|
||||
SubscriptionLocator.getUsersSubscription user_id, cb
|
||||
async.series jobs, (err, results)->
|
||||
{partOfGroup, subscription} = results
|
||||
if partOfGroup
|
||||
return res.redirect("/user/subscription/custom_account")
|
||||
else
|
||||
res.render "subscriptions/group/invite",
|
||||
title: "Group Invitation"
|
||||
group_subscription_id:group_subscription_id
|
||||
licenceName:licence.name
|
||||
has_personal_subscription: subscription?
|
||||
|
||||
beginJoinGroup: (req, res)->
|
||||
subscription_id = req.params.subscription_id
|
||||
currentUser = AuthenticationController.getSessionUser(req)
|
||||
if !currentUser?
|
||||
logger.err {subscription_id}, "error getting current user"
|
||||
return res.sendStatus 500
|
||||
licence = SubscriptionDomainHandler.findDomainLicenceBySubscriptionId(subscription_id)
|
||||
if !licence?
|
||||
return ErrorsController.notFound(req, res)
|
||||
SubscriptionGroupHandler.sendVerificationEmail subscription_id, licence.name, currentUser.email, (err)->
|
||||
if err?
|
||||
res.sendStatus 500
|
||||
else
|
||||
res.sendStatus 200
|
||||
|
||||
completeJoin: (req, res)->
|
||||
currentUser = AuthenticationController.getSessionUser(req)
|
||||
subscription_id = req.params.subscription_id
|
||||
if !SubscriptionDomainHandler.findDomainLicenceBySubscriptionId(subscription_id)?
|
||||
return ErrorsController.notFound(req, res)
|
||||
email = currentUser?.email
|
||||
logger.log subscription_id:subscription_id, user_id:currentUser?._id, email:email, "starting the completion of joining group"
|
||||
SubscriptionGroupHandler.processGroupVerification email, subscription_id, req.query?.token, (err)->
|
||||
if err? and err == "token_not_found"
|
||||
return res.redirect "/user/subscription/#{subscription_id}/group/invited?expired=true"
|
||||
else if err?
|
||||
return res.sendStatus 500
|
||||
else
|
||||
logger.log subscription_id:subscription_id, email:email, "user successful completed join of group subscription"
|
||||
return res.redirect "/user/subscription/#{subscription_id}/group/successful-join"
|
||||
|
||||
renderSuccessfulJoinPage: (req, res)->
|
||||
subscription_id = req.params.subscription_id
|
||||
licence = SubscriptionDomainHandler.findDomainLicenceBySubscriptionId(subscription_id)
|
||||
if !SubscriptionDomainHandler.findDomainLicenceBySubscriptionId(subscription_id)?
|
||||
return ErrorsController.notFound(req, res)
|
||||
res.render "subscriptions/group/successful_join",
|
||||
title: "Sucessfully joined group"
|
||||
licenceName:licence.name
|
||||
|
||||
exportGroupCsv: (req, res)->
|
||||
user_id = AuthenticationController.getLoggedInUserId(req)
|
||||
logger.log user_id: user_id, "exporting group csv"
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
AuthenticationController = require('../Authentication/AuthenticationController')
|
||||
SubscriptionController = require('./SubscriptionController')
|
||||
SubscriptionGroupController = require './SubscriptionGroupController'
|
||||
DomainSubscriptionController = require './DomainSubscriptionController'
|
||||
TeamInvitesController = require './TeamInvitesController'
|
||||
Settings = require "settings-sharelatex"
|
||||
|
||||
|
@ -36,10 +37,9 @@ module.exports =
|
|||
webRouter.delete '/subscription/invites/:email/', AuthenticationController.requireLogin(),
|
||||
TeamInvitesController.revokeInvite
|
||||
|
||||
webRouter.get '/user/subscription/:subscription_id/group/invited', AuthenticationController.requireLogin(), SubscriptionGroupController.renderGroupInvitePage
|
||||
webRouter.post '/user/subscription/:subscription_id/group/begin-join', AuthenticationController.requireLogin(), SubscriptionGroupController.beginJoinGroup
|
||||
webRouter.get '/user/subscription/:subscription_id/group/complete-join', AuthenticationController.requireLogin(), SubscriptionGroupController.completeJoin
|
||||
webRouter.get '/user/subscription/:subscription_id/group/successful-join', AuthenticationController.requireLogin(), SubscriptionGroupController.renderSuccessfulJoinPage
|
||||
# Routes to join a domain licence team
|
||||
webRouter.get '/user/subscription/:subscription_id/group/join', AuthenticationController.requireLogin(), DomainSubscriptionController.newInvite
|
||||
webRouter.post '/user/subscription/:subscription_id/group/join', AuthenticationController.requireLogin(), DomainSubscriptionController.createInvite
|
||||
|
||||
#recurly callback
|
||||
publicApiRouter.post '/user/subscription/callback', SubscriptionController.recurlyNotificationParser, SubscriptionController.recurlyCallback
|
||||
|
|
|
@ -17,7 +17,7 @@ block content
|
|||
div
|
||||
.row
|
||||
.col-md-8.col-md-offset-2(ng-cloak)
|
||||
.card(ng-controller="GroupSubscriptionInviteController")
|
||||
.card(ng-controller="DomainSubscriptionJoinController")
|
||||
.page-header
|
||||
h1.text-centered #{translate("you_are_invited_to_group", {groupName:licenceName})}
|
||||
|
||||
|
@ -31,7 +31,7 @@ block content
|
|||
span
|
||||
a.btn.btn.btn-primary(ng-click="cancelSubscription()", ng-disabled="inflight") #{translate("cancel_your_subscription")}
|
||||
|
||||
div(ng-show="view =='groupSubscriptionInvite'").row.text-centered
|
||||
div(ng-show="view =='domainSubscriptionJoin'").row.text-centered
|
||||
.row
|
||||
.col-md-12 #{translate("group_provides_you_with_premium_account", {groupName:licenceName})}
|
||||
.row
|
|
@ -1,25 +0,0 @@
|
|||
extends ../../layout
|
||||
|
||||
block scripts
|
||||
script(type='text/javascript').
|
||||
window.subscription_id = '#{subscription_id}'
|
||||
|
||||
block content
|
||||
.content.content-alt
|
||||
.container
|
||||
.row
|
||||
.col-md-8.col-md-offset-2(ng-cloak)
|
||||
.card
|
||||
.page-header.row.text-centered
|
||||
h1 #{translate("you_have_joined", {groupName:licenceName})}
|
||||
div(ng-show="!requestSent").row.text-centered
|
||||
.row
|
||||
.span-md-12 #{translate("claim_premium_account", {groupName:licenceName})}
|
||||
div
|
||||
.row
|
||||
.col-md-12
|
||||
.row
|
||||
.span-md-12
|
||||
a.btn.btn-success(href="/project") #{translate("done")}
|
||||
|
||||
|
|
@ -16,7 +16,7 @@ define [
|
|||
"main/annual-upgrade"
|
||||
"main/announcements"
|
||||
"main/register-users"
|
||||
"main/subscription/group-subscription-invite-controller"
|
||||
"main/subscription/domain-subscription-join-controller"
|
||||
"main/subscription/team-invite-controller"
|
||||
"main/contact-us"
|
||||
"main/learn"
|
||||
|
|
|
@ -1,35 +1,35 @@
|
|||
define [
|
||||
"base"
|
||||
], (App) ->
|
||||
App.controller "GroupSubscriptionInviteController", ($scope, $http) ->
|
||||
App.controller "DomainSubscriptionJoinController", ($scope, $http) ->
|
||||
|
||||
$scope.inflight = false
|
||||
|
||||
if has_personal_subscription
|
||||
$scope.view = "personalSubscription"
|
||||
else
|
||||
$scope.view = "groupSubscriptionInvite"
|
||||
else
|
||||
$scope.view = "domainSubscriptionJoin"
|
||||
|
||||
$scope.keepPersonalSubscription = ->
|
||||
$scope.view = "groupSubscriptionInvite"
|
||||
$scope.view = "domainSubscriptionJoin"
|
||||
|
||||
$scope.cancelSubscription = ->
|
||||
$scope.inflight = true
|
||||
request = $http.post "/user/subscription/cancel", {_csrf:window.csrfToken}
|
||||
request.then ()->
|
||||
$scope.inflight = false
|
||||
$scope.view = "groupSubscriptionInvite"
|
||||
$scope.view = "domainSubscriptionJoin"
|
||||
request.catch ()->
|
||||
console.log "the request failed"
|
||||
console.log "the request failed"
|
||||
|
||||
$scope.joinGroup = ->
|
||||
$scope.view = "requestSent"
|
||||
$scope.inflight = true
|
||||
request = $http.post "/user/subscription/#{group_subscription_id}/group/begin-join", {_csrf:window.csrfToken}
|
||||
request = $http.post "/user/subscription/#{group_subscription_id}/group/join", {_csrf:window.csrfToken}
|
||||
request.then (response)->
|
||||
{ status } = response
|
||||
$scope.inflight = false
|
||||
if status != 200 # assume request worked
|
||||
$scope.requestSent = false
|
||||
request.catch ()->
|
||||
console.log "the request failed"
|
||||
console.log "the request failed"
|
Loading…
Add table
Reference in a new issue