Преглед изворни кода

Differentiate project members by source, include token members

Shane Kilkelly пре 9 година
родитељ
комит
06966f67db

+ 12 - 2
services/web/app/coffee/Features/Collaborators/CollaboratorsHandler.coffee

@@ -10,6 +10,9 @@ Errors = require "../Errors/Errors"
 EmailHelper = require "../Helpers/EmailHelper"
 EmailHelper = require "../Helpers/EmailHelper"
 ProjectEditorHandler = require "../Project/ProjectEditorHandler"
 ProjectEditorHandler = require "../Project/ProjectEditorHandler"
 
 
+Sources =
+	INVITE: 'invite'
+	TOKEN: 'token'
 
 
 module.exports = CollaboratorsHandler =
 module.exports = CollaboratorsHandler =
 
 
@@ -18,11 +21,18 @@ module.exports = CollaboratorsHandler =
 			return callback(error) if error?
 			return callback(error) if error?
 			return callback new Errors.NotFoundError("no project found with id #{project_id}") if !project?
 			return callback new Errors.NotFoundError("no project found with id #{project_id}") if !project?
 			members = []
 			members = []
+			# Project owner
 			members.push { id: project.owner_ref.toString(), privilegeLevel: PrivilegeLevels.OWNER }
 			members.push { id: project.owner_ref.toString(), privilegeLevel: PrivilegeLevels.OWNER }
+			# Invited members
 			for member_id in project.readOnly_refs or []
 			for member_id in project.readOnly_refs or []
-				members.push { id: member_id.toString(), privilegeLevel: PrivilegeLevels.READ_ONLY }
+				members.push { id: member_id.toString(), privilegeLevel: PrivilegeLevels.READ_ONLY, source: Sources.INVITE }
 			for member_id in project.collaberator_refs or []
 			for member_id in project.collaberator_refs or []
-				members.push { id: member_id.toString(), privilegeLevel: PrivilegeLevels.READ_AND_WRITE }
+				members.push { id: member_id.toString(), privilegeLevel: PrivilegeLevels.READ_AND_WRITE, source: Sources.INVITE }
+			# Token access
+			for member_id in project.tokenAccessReadOnly_refs or []
+				members.push { id: member_id.toString(), privilegeLevel: PrivilegeLevels.READ_ONLY, source: Sources.TOKEN }
+			for member_id in project.tokenAccessReadAndWrite_refs or []
+				members.push { id: member_id.toString(), privilegeLevel: PrivilegeLevels.READ_AND_WRITE, source: Sources.TOKEN }
 			return callback null, members
 			return callback null, members
 
 
 	getMemberIds: (project_id, callback = (error, member_ids) ->) ->
 	getMemberIds: (project_id, callback = (error, member_ids) ->) ->

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

@@ -41,10 +41,10 @@ describe "CollaboratorsHandler", ->
 				@callback
 				@callback
 					.calledWith(null, [
 					.calledWith(null, [
 						{ id: "owner-ref", privilegeLevel: "owner" }
 						{ id: "owner-ref", privilegeLevel: "owner" }
-						{ id: "read-only-ref-1", privilegeLevel: "readOnly" }
-						{ id: "read-only-ref-2", privilegeLevel: "readOnly" }
-						{ id: "read-write-ref-1", privilegeLevel: "readAndWrite" }
-						{ id: "read-write-ref-2", privilegeLevel: "readAndWrite" }
+						{ id: "read-only-ref-1", privilegeLevel: "readOnly", source: 'invite'}
+						{ id: "read-only-ref-2", privilegeLevel: "readOnly", source: 'invite'}
+						{ id: "read-write-ref-1", privilegeLevel: "readAndWrite", source: 'invite'}
+						{ id: "read-write-ref-2", privilegeLevel: "readAndWrite", source: 'invite' }
 					])
 					])
 					.should.equal true
 					.should.equal true
 
 
@@ -74,11 +74,11 @@ describe "CollaboratorsHandler", ->
 		beforeEach ->
 		beforeEach ->
 			@CollaboratorHandler.getMemberIdsWithPrivilegeLevels = sinon.stub()
 			@CollaboratorHandler.getMemberIdsWithPrivilegeLevels = sinon.stub()
 			@CollaboratorHandler.getMemberIdsWithPrivilegeLevels.withArgs(@project_id).yields(null, [
 			@CollaboratorHandler.getMemberIdsWithPrivilegeLevels.withArgs(@project_id).yields(null, [
-				{ id: "read-only-ref-1", privilegeLevel: "readOnly" }
-				{ id: "read-only-ref-2", privilegeLevel: "readOnly" }
-				{ id: "read-write-ref-1", privilegeLevel: "readAndWrite" }
-				{ id: "read-write-ref-2", privilegeLevel: "readAndWrite" }
-				{ id: "doesnt-exist", privilegeLevel: "readAndWrite" }
+				{ id: "read-only-ref-1", privilegeLevel: "readOnly", source: 'invite' }
+				{ id: "read-only-ref-2", privilegeLevel: "readOnly", source: 'invite' }
+				{ id: "read-write-ref-1", privilegeLevel: "readAndWrite", source: 'invite' }
+				{ id: "read-write-ref-2", privilegeLevel: "readAndWrite", source: 'invite' }
+				{ id: "doesnt-exist", privilegeLevel: "readAndWrite", source: 'invite' }
 			])
 			])
 			@UserGetter.getUserById = sinon.stub()
 			@UserGetter.getUserById = sinon.stub()
 			@UserGetter.getUserById.withArgs("read-only-ref-1").yields(null, { _id: "read-only-ref-1" })
 			@UserGetter.getUserById.withArgs("read-only-ref-1").yields(null, { _id: "read-only-ref-1" })