From fa78db5c59d8e3a1317b8420875ad77bda0d2443 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Mon, 7 Apr 2014 16:07:44 +0100 Subject: [PATCH] moved setPublicAccessLevel to project details handler --- .../coffee/Features/Editor/EditorController.coffee | 2 +- .../Features/Project/ProjectDetailsHandler.coffee | 8 +++++++- .../web/app/coffee/handlers/ProjectHandler.coffee | 8 +------- .../coffee/Editor/EditorControllerTests.coffee | 4 ++-- .../coffee/Project/ProjectDetailsHandlerTests.coffee | 11 +++++++++++ 5 files changed, 22 insertions(+), 11 deletions(-) diff --git a/services/web/app/coffee/Features/Editor/EditorController.coffee b/services/web/app/coffee/Features/Editor/EditorController.coffee index 38552630d5..4cfd5a9972 100644 --- a/services/web/app/coffee/Features/Editor/EditorController.coffee +++ b/services/web/app/coffee/Features/Editor/EditorController.coffee @@ -267,7 +267,7 @@ module.exports = EditorController = callback?() setPublicAccessLevel : (project_id, newAccessLevel, callback)-> - ProjectHandler.setPublicAccessLevel project_id, newAccessLevel, => + ProjectDetailsHandler.setPublicAccessLevel project_id, newAccessLevel, => EditorRealTimeController.emitToRoom project_id, 'publicAccessLevelUpdated', newAccessLevel callback?() diff --git a/services/web/app/coffee/Features/Project/ProjectDetailsHandler.coffee b/services/web/app/coffee/Features/Project/ProjectDetailsHandler.coffee index 3bcf98cb14..500823cd03 100644 --- a/services/web/app/coffee/Features/Project/ProjectDetailsHandler.coffee +++ b/services/web/app/coffee/Features/Project/ProjectDetailsHandler.coffee @@ -3,7 +3,7 @@ UserGetter = require("../User/UserGetter") Project = require('../../models/Project').Project logger = require("logger-sharelatex") tpdsUpdateSender = require '../ThirdPartyDataStore/TpdsUpdateSender' - +_ = require("underscore") module.exports = @@ -42,3 +42,9 @@ module.exports = if err? return callback(err) tpdsUpdateSender.moveEntity {project_id:project_id, project_name:oldProjectName, newProjectName:newName}, callback + + setPublicAccessLevel : (project_id, newAccessLevel, callback = ->)-> + logger.log project_id: project_id, level: newAccessLevel, "set public access level" + if project_id? && newAccessLevel? and _.include ['readOnly', 'readAndWrite', 'private'], newAccessLevel + Project.update {_id:project_id},{publicAccesLevel:newAccessLevel}, (err)-> + callback() \ No newline at end of file diff --git a/services/web/app/coffee/handlers/ProjectHandler.coffee b/services/web/app/coffee/handlers/ProjectHandler.coffee index f1ca69c051..e18d5c46f3 100755 --- a/services/web/app/coffee/handlers/ProjectHandler.coffee +++ b/services/web/app/coffee/handlers/ProjectHandler.coffee @@ -20,13 +20,7 @@ tagsHandler = require('../Features/Tags/TagsHandler') module.exports = class ProjectHandler - setPublicAccessLevel : (project_id, newAccessLevel, callback)-> - logger.log project_id: project_id, level: newAccessLevel, "set public access level" - if project_id? && newAccessLevel? - if _.include ['readOnly', 'readAndWrite', 'private'], newAccessLevel - Project.update {_id:project_id},{publicAccesLevel:newAccessLevel},{}, (err)-> - if callback? - callback() + addUserToProject: (project_id, email, privlages, callback)-> if email != '' diff --git a/services/web/test/UnitTests/coffee/Editor/EditorControllerTests.coffee b/services/web/test/UnitTests/coffee/Editor/EditorControllerTests.coffee index 655ba0fcc6..cc1dde8a85 100644 --- a/services/web/test/UnitTests/coffee/Editor/EditorControllerTests.coffee +++ b/services/web/test/UnitTests/coffee/Editor/EditorControllerTests.coffee @@ -690,12 +690,12 @@ describe "EditorController", -> beforeEach -> @err = "errro" @newAccessLevel = "public" - @ProjectHandler::setPublicAccessLevel = sinon.stub().callsArgWith(2, @err) + @ProjectDetailsHandler.setPublicAccessLevel = sinon.stub().callsArgWith(2, @err) @EditorRealTimeController.emitToRoom = sinon.stub() it "should call the ProjectHandler", (done)-> @EditorController.setPublicAccessLevel @project_id, @newAccessLevel, => - @ProjectHandler::setPublicAccessLevel.calledWith(@project_id, @newAccessLevel).should.equal true + @ProjectDetailsHandler.setPublicAccessLevel.calledWith(@project_id, @newAccessLevel).should.equal true done() it "should emit the update to the room", (done)-> diff --git a/services/web/test/UnitTests/coffee/Project/ProjectDetailsHandlerTests.coffee b/services/web/test/UnitTests/coffee/Project/ProjectDetailsHandlerTests.coffee index f30e513243..986be9d629 100644 --- a/services/web/test/UnitTests/coffee/Project/ProjectDetailsHandlerTests.coffee +++ b/services/web/test/UnitTests/coffee/Project/ProjectDetailsHandlerTests.coffee @@ -81,3 +81,14 @@ describe 'Project details handler', -> @tpdsUpdateSender.moveEntity.calledWith({project_id:@project_id, project_name:@project.name, newProjectName:@newName}).should.equal true done() + + describe "setPublicAccessLevel", -> + beforeEach -> + @ProjectModel.update.callsArgWith(2) + @accessLevel = "readOnly" + + it "should update the project with the new level", (done)-> + @handler.setPublicAccessLevel @project_id, @accessLevel, => + @ProjectModel.update.calledWith({_id: @project_id}, {publicAccesLevel: @accessLevel}).should.equal true + done() +