Sfoglia il codice sorgente

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.
Alberto Fernández Capel 8 anni fa
parent
commit
39c8595c27

+ 45 - 0
services/web/app/coffee/Features/Subscription/DomainSubscriptionController.coffee

@@ -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

+ 0 - 62
services/web/app/coffee/Features/Subscription/SubscriptionGroupController.coffee

@@ -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"

+ 4 - 4
services/web/app/coffee/Features/Subscription/SubscriptionRouter.coffee

@@ -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

+ 2 - 2
services/web/app/views/subscriptions/group/invite.pug → services/web/app/views/subscriptions/group/join.pug

@@ -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

+ 0 - 25
services/web/app/views/subscriptions/group/successful_join.pug

@@ -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")} 
-
-

+ 1 - 1
services/web/public/coffee/main.coffee

@@ -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"

+ 8 - 8
services/web/public/coffee/main/subscription/group-subscription-invite-controller.coffee → services/web/public/coffee/main/subscription/domain-subscription-join-controller.coffee

@@ -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"