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

Ensure we can import both user and user stubs to teams

Alberto Fernández Capel 8 лет назад
Родитель
Сommit
7e5ababe66

+ 2 - 3
services/web/app/coffee/Features/Referal/ReferalFeatures.coffee

@@ -1,12 +1,11 @@
 _ = require("underscore")
 _ = require("underscore")
 logger = require('logger-sharelatex')
 logger = require('logger-sharelatex')
-User = require('../../models/User').User
+UserGetter = require('../User/UserGetter')
 Settings = require "settings-sharelatex"
 Settings = require "settings-sharelatex"
 
 
 module.exports = ReferalFeatures =
 module.exports = ReferalFeatures =
 	getBonusFeatures: (user_id, callback = (error) ->) ->
 	getBonusFeatures: (user_id, callback = (error) ->) ->
-		query = _id: user_id
-		User.findOne query, (error, user) ->
+		UserGetter.getUserOrUserStubById user_id, { _id: 1 }, (error, user) ->
 			return callback(error) if error
 			return callback(error) if error
 			return callback(new Error("user not found #{user_id} for assignBonus")) if !user?
 			return callback(new Error("user not found #{user_id} for assignBonus")) if !user?
 			logger.log user_id: user_id, refered_user_count: user.refered_user_count, "assigning bonus"
 			logger.log user_id: user_id, refered_user_count: user.refered_user_count, "assigning bonus"

+ 4 - 1
services/web/app/coffee/Features/Subscription/SubscriptionLocator.coffee

@@ -32,4 +32,7 @@ module.exports =
 		Subscription.find {member_ids: user_id}, {_id:1, planCode:1}, callback
 		Subscription.find {member_ids: user_id}, {_id:1, planCode:1}, callback
 
 
 	getGroupsWithEmailInvite: (email, callback) ->
 	getGroupsWithEmailInvite: (email, callback) ->
-		Subscription.find { invited_emails: email }, callback
+		Subscription.find { invited_emails: email }, callback
+
+	getGroupWithV1Id: (v1TeamId, callback) ->
+		Subscription.findOne { "overleaf.id": v1TeamId }, callback

+ 12 - 0
services/web/app/coffee/Features/Subscription/SubscriptionUpdater.coffee

@@ -24,6 +24,15 @@ module.exports = SubscriptionUpdater =
 					return callback(err) if err?
 					return callback(err) if err?
 					SubscriptionUpdater._updateSubscriptionFromRecurly recurlySubscription, subscription, callback
 					SubscriptionUpdater._updateSubscriptionFromRecurly recurlySubscription, subscription, callback
 
 
+	addUsersToGroup: (subscriptionId, memberIds, callback)->
+		logger.log subscriptionId: subscriptionId, memberIds: memberIds, "adding members into mongo subscription"
+		searchOps =
+			_id: new ObjectId(subscriptionId.toString())
+		insertOperation =
+			{ $push: { member_ids: { $each: memberIds } } }
+
+		Subscription.findAndModify searchOps, insertOperation, callback
+
 	addUserToGroup: (adminUser_id, user_id, callback)->
 	addUserToGroup: (adminUser_id, user_id, callback)->
 		logger.log adminUser_id:adminUser_id, user_id:user_id, "adding user into mongo subscription"
 		logger.log adminUser_id:adminUser_id, user_id:user_id, "adding user into mongo subscription"
 		searchOps =
 		searchOps =
@@ -47,6 +56,9 @@ module.exports = SubscriptionUpdater =
 				return callback(err)
 				return callback(err)
 			FeaturesUpdater.refreshFeatures user_id, callback
 			FeaturesUpdater.refreshFeatures user_id, callback
 
 
+	deleteWithV1Id: (v1TeamId, callback)->
+		Subscription.deleteOne { "overleaf.id": v1TeamId }, callback
+
 	deleteSubscription: (subscription_id, callback = (error) ->) ->
 	deleteSubscription: (subscription_id, callback = (error) ->) ->
 		SubscriptionLocator.getSubscription subscription_id, (err, subscription) ->
 		SubscriptionLocator.getSubscription subscription_id, (err, subscription) ->
 			return callback(err) if err?
 			return callback(err) if err?

+ 1 - 1
services/web/app/coffee/Features/User/UserGetter.coffee

@@ -62,7 +62,7 @@ module.exports = UserGetter =
 			user_ids = user_ids.map (u) -> ObjectId(u.toString())
 			user_ids = user_ids.map (u) -> ObjectId(u.toString())
 		catch error
 		catch error
 			return callback error
 			return callback error
-		
+
 		db.users.find { _id: { $in: user_ids} }, projection, callback
 		db.users.find { _id: { $in: user_ids} }, projection, callback
 
 
 	getUserOrUserStubById: (user_id, projection, callback = (error, user) ->) ->
 	getUserOrUserStubById: (user_id, projection, callback = (error, user) ->) ->