Просмотр исходного кода

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 лет назад
Родитель
Сommit
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
 					users: users
 					subscription: subscription
 					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)->
 	exportGroupCsv: (req, res)->
 		user_id = AuthenticationController.getLoggedInUserId(req)
 		user_id = AuthenticationController.getLoggedInUserId(req)
 		logger.log user_id: user_id, "exporting group csv"
 		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')
 AuthenticationController = require('../Authentication/AuthenticationController')
 SubscriptionController = require('./SubscriptionController')
 SubscriptionController = require('./SubscriptionController')
 SubscriptionGroupController = require './SubscriptionGroupController'
 SubscriptionGroupController = require './SubscriptionGroupController'
+DomainSubscriptionController = require './DomainSubscriptionController'
 TeamInvitesController = require './TeamInvitesController'
 TeamInvitesController = require './TeamInvitesController'
 Settings = require "settings-sharelatex"
 Settings = require "settings-sharelatex"
 
 
@@ -36,10 +37,9 @@ module.exports =
 		webRouter.delete '/subscription/invites/:email/',  AuthenticationController.requireLogin(),
 		webRouter.delete '/subscription/invites/:email/',  AuthenticationController.requireLogin(),
 			TeamInvitesController.revokeInvite
 			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
 		#recurly callback
 		publicApiRouter.post '/user/subscription/callback',   SubscriptionController.recurlyNotificationParser, SubscriptionController.recurlyCallback
 		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  
 				div  
 			.row
 			.row
 				.col-md-8.col-md-offset-2(ng-cloak)
 				.col-md-8.col-md-offset-2(ng-cloak)
-					.card(ng-controller="GroupSubscriptionInviteController")
+					.card(ng-controller="DomainSubscriptionJoinController")
 						.page-header
 						.page-header
 							h1.text-centered #{translate("you_are_invited_to_group", {groupName:licenceName})}
 							h1.text-centered #{translate("you_are_invited_to_group", {groupName:licenceName})}
 
 
@@ -31,7 +31,7 @@ block content
 									span  
 									span  
 									a.btn.btn.btn-primary(ng-click="cancelSubscription()", ng-disabled="inflight") #{translate("cancel_your_subscription")}
 									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
 							.row
 								.col-md-12 #{translate("group_provides_you_with_premium_account", {groupName:licenceName})}
 								.col-md-12 #{translate("group_provides_you_with_premium_account", {groupName:licenceName})}
 							.row
 							.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/annual-upgrade"
 	"main/announcements"
 	"main/announcements"
 	"main/register-users"
 	"main/register-users"
-	"main/subscription/group-subscription-invite-controller"
+	"main/subscription/domain-subscription-join-controller"
 	"main/subscription/team-invite-controller"
 	"main/subscription/team-invite-controller"
 	"main/contact-us"
 	"main/contact-us"
 	"main/learn"
 	"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 [
 define [
 	"base"
 	"base"
 ], (App) ->
 ], (App) ->
-	App.controller "GroupSubscriptionInviteController", ($scope, $http) ->
+	App.controller "DomainSubscriptionJoinController", ($scope, $http) ->
 
 
 		$scope.inflight = false
 		$scope.inflight = false
 
 
 		if has_personal_subscription
 		if has_personal_subscription
 			$scope.view = "personalSubscription"
 			$scope.view = "personalSubscription"
-		else 
-			$scope.view = "groupSubscriptionInvite"
+		else
+			$scope.view = "domainSubscriptionJoin"
 
 
 		$scope.keepPersonalSubscription = ->
 		$scope.keepPersonalSubscription = ->
-			$scope.view = "groupSubscriptionInvite"
+			$scope.view = "domainSubscriptionJoin"
 
 
 		$scope.cancelSubscription = ->
 		$scope.cancelSubscription = ->
 			$scope.inflight = true
 			$scope.inflight = true
 			request = $http.post "/user/subscription/cancel", {_csrf:window.csrfToken}
 			request = $http.post "/user/subscription/cancel", {_csrf:window.csrfToken}
 			request.then ()->
 			request.then ()->
 				$scope.inflight = false
 				$scope.inflight = false
-				$scope.view = "groupSubscriptionInvite"
+				$scope.view = "domainSubscriptionJoin"
 			request.catch ()->
 			request.catch ()->
-				console.log "the request failed"					
+				console.log "the request failed"
 
 
 		$scope.joinGroup = ->
 		$scope.joinGroup = ->
 			$scope.view = "requestSent"
 			$scope.view = "requestSent"
 			$scope.inflight = true
 			$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)->
 			request.then (response)->
 				{ status } = response
 				{ status } = response
 				$scope.inflight = false
 				$scope.inflight = false
 				if status != 200 # assume request worked
 				if status != 200 # assume request worked
 					$scope.requestSent = false
 					$scope.requestSent = false
 			request.catch ()->
 			request.catch ()->
-				console.log "the request failed"
+				console.log "the request failed"