فهرست منبع

Use TpdsUpdateSender to use CollaboratorsHandler

James Allen 10 سال پیش
والد
کامیت
5f5445f625

+ 1 - 1
services/web/app/coffee/Features/Collaborators/CollaboratorsHandler.coffee

@@ -54,7 +54,7 @@ module.exports = CollaboratorsHandler =
 					return callback null, true, member.privilegeLevel
 					return callback null, true, member.privilegeLevel
 			return callback null, false, null
 			return callback null, false, null
 			
 			
-	getProjectsUserIsMemberOf: (user_id, fields, callback = (error, readAndWriteProjects, readOnlyProjects) ->) ->
+	getProjectsUserIsCollaboratorOf: (user_id, fields, callback = (error, readAndWriteProjects, readOnlyProjects) ->) ->
 		Project.find {collaberator_refs:user_id}, fields, (err, readAndWriteProjects)=>
 		Project.find {collaberator_refs:user_id}, fields, (err, readAndWriteProjects)=>
 			Project.find {readOnly_refs:user_id}, fields, (err, readOnlyProjects)=>
 			Project.find {readOnly_refs:user_id}, fields, (err, readOnlyProjects)=>
 				callback(err, readAndWriteProjects, readOnlyProjects)
 				callback(err, readAndWriteProjects, readOnlyProjects)

+ 1 - 1
services/web/app/coffee/Features/Project/ProjectGetter.coffee

@@ -33,6 +33,6 @@ module.exports = ProjectGetter =
 		CollaboratorsHandler = require "../Collaborators/CollaboratorsHandler"
 		CollaboratorsHandler = require "../Collaborators/CollaboratorsHandler"
 		Project.find {owner_ref: user_id}, fields, (error, projects) ->
 		Project.find {owner_ref: user_id}, fields, (error, projects) ->
 			return callback(error) if error?
 			return callback(error) if error?
-			CollaboratorsHandler.getProjectsUserIsMemberOf user_id, fields, (error, readAndWriteProjects, readOnlyProjects) ->
+			CollaboratorsHandler.getProjectsUserIsCollaboratorOf user_id, fields, (error, readAndWriteProjects, readOnlyProjects) ->
 				return callback(error) if error?
 				return callback(error) if error?
 				callback null, projects, readAndWriteProjects, readOnlyProjects
 				callback null, projects, readAndWriteProjects, readOnlyProjects

+ 6 - 3
services/web/app/coffee/Features/ThirdPartyDataStore/TpdsUpdateSender.coffee

@@ -5,6 +5,7 @@ Project = require('../../models/Project').Project
 keys = require('../../infrastructure/Keys')
 keys = require('../../infrastructure/Keys')
 metrics = require("../../infrastructure/Metrics")
 metrics = require("../../infrastructure/Metrics")
 request = require("request")
 request = require("request")
+CollaboratorsHandler = require('../Collaborators/CollaboratorsHandler')
 
 
 buildPath = (user_id, project_name, filePath)->
 buildPath = (user_id, project_name, filePath)->
 	projectPath = path.join(project_name, "/", filePath)
 	projectPath = path.join(project_name, "/", filePath)
@@ -116,9 +117,11 @@ module.exports = TpdsUpdateSender =
 		TpdsUpdateSender._enqueue "poll-dropbox:#{user_id}", "standardHttpRequest", options, callback
 		TpdsUpdateSender._enqueue "poll-dropbox:#{user_id}", "standardHttpRequest", options, callback
 
 
 getProjectsUsersIds = (project_id, callback = (err, owner_id, allUserIds)->)->
 getProjectsUsersIds = (project_id, callback = (err, owner_id, allUserIds)->)->
-	Project.findById project_id, "_id owner_ref readOnly_refs collaberator_refs", (err, project)->
-		allUserIds = [].concat(project.collaberator_refs).concat(project.readOnly_refs).concat(project.owner_ref)
-		callback err, project.owner_ref, allUserIds
+	Project.findById project_id, "_id owner_ref", (err, project) ->
+		return callback(err) if err?
+		CollaboratorsHandler.getMemberIds project_id, (err, member_ids) ->
+			return callback(err) if err?
+			callback err, project.owner_ref, member_ids
 
 
 mergeProjectNameAndPath = (project_name, path)->
 mergeProjectNameAndPath = (project_name, path)->
 	if(path.indexOf('/') == 0)
 	if(path.indexOf('/') == 0)

+ 2 - 2
services/web/test/UnitTests/coffee/Collaborators/CollaboratorsHandlerTests.coffee

@@ -112,13 +112,13 @@ describe "CollaboratorsHandler", ->
 					.calledWith(null, false, null)
 					.calledWith(null, false, null)
 					.should.equal true
 					.should.equal true
 	
 	
-	describe "getProjectsUserIsMemberOf", ->
+	describe "getProjectsUserIsCollaboratorOf", ->
 		beforeEach ->
 		beforeEach ->
 			@fields = "mock fields"
 			@fields = "mock fields"
 			@Project.find = sinon.stub()
 			@Project.find = sinon.stub()
 			@Project.find.withArgs({collaberator_refs:@user_id}, @fields).yields(null, ["mock-read-write-project-1", "mock-read-write-project-2"])
 			@Project.find.withArgs({collaberator_refs:@user_id}, @fields).yields(null, ["mock-read-write-project-1", "mock-read-write-project-2"])
 			@Project.find.withArgs({readOnly_refs:@user_id}, @fields).yields(null, ["mock-read-only-project-1", "mock-read-only-project-2"])
 			@Project.find.withArgs({readOnly_refs:@user_id}, @fields).yields(null, ["mock-read-only-project-1", "mock-read-only-project-2"])
-			@CollaboratorHandler.getProjectsUserIsMemberOf @user_id, @fields, @callback
+			@CollaboratorHandler.getProjectsUserIsCollaboratorOf @user_id, @fields, @callback
 		
 		
 		it "should call the callback with the projects", ->
 		it "should call the callback with the projects", ->
 			@callback
 			@callback

+ 5 - 1
services/web/test/UnitTests/coffee/ThirdPartyDataStore/TpdsUpdateSenderTests.coffee

@@ -20,7 +20,10 @@ filestoreUrl = "filestore.sharelatex.com"
 describe 'TpdsUpdateSender', ->
 describe 'TpdsUpdateSender', ->
 	beforeEach ->
 	beforeEach ->
 		@requestQueuer = (queue, meth, opts, callback)->
 		@requestQueuer = (queue, meth, opts, callback)->
-		project = {owner_ref:user_id,readOnly_refs:[read_only_ref_1], collaberator_refs:[collaberator_ref_1]}
+		project = {owner_ref:user_id}
+		member_ids = [collaberator_ref_1, read_only_ref_1, user_id]
+		@CollaboratorsHandler =
+			getMemberIds: sinon.stub().yields(null, member_ids)
 		@Project = findById:sinon.stub().callsArgWith(2, null, project)
 		@Project = findById:sinon.stub().callsArgWith(2, null, project)
 		@docstoreUrl = "docstore.sharelatex.env"
 		@docstoreUrl = "docstore.sharelatex.env"
 		@request = sinon.stub().returns(pipe:->)
 		@request = sinon.stub().returns(pipe:->)
@@ -38,6 +41,7 @@ describe 'TpdsUpdateSender', ->
 			"logger-sharelatex":{log:->}
 			"logger-sharelatex":{log:->}
 			'../../models/Project': Project:@Project
 			'../../models/Project': Project:@Project
 			'request':@request
 			'request':@request
+			'../Collaborators/CollaboratorsHandler': @CollaboratorsHandler
 
 
 	describe "_enqueue", ->
 	describe "_enqueue", ->