From 7c10b5cd24bf392ddf69a7035b9d54c0221fa391 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Fri, 4 Apr 2014 16:53:59 +0100 Subject: [PATCH] moved setPublicAccessLevel from collab manager to editor controller --- .../Features/Editor/EditorController.coffee | 6 +++++- .../managers/CollaberationManager.coffee | 5 +---- services/web/app/coffee/router.coffee | 2 +- .../Editor/EditorControllerTests.coffee | 20 +++++++++++++++++++ 4 files changed, 27 insertions(+), 6 deletions(-) diff --git a/services/web/app/coffee/Features/Editor/EditorController.coffee b/services/web/app/coffee/Features/Editor/EditorController.coffee index 34474e7a74..a55e5ec33f 100644 --- a/services/web/app/coffee/Features/Editor/EditorController.coffee +++ b/services/web/app/coffee/Features/Editor/EditorController.coffee @@ -257,7 +257,6 @@ module.exports = EditorController = EditorRealTimeController.emitToRoom project_id, 'reciveEntityMove', entity_id, folder_id callback?() - renameProject: (project_id, window_id, newName, callback)-> newName = sanitize.escape(newName) ProjectHandler.renameProject project_id, window_id, newName, => @@ -265,6 +264,11 @@ module.exports = EditorController = EditorRealTimeController.emitToRoom project_id, 'projectNameUpdated', window_id, newName callback?() + setPublicAccessLevel : (project_id, newAccessLevel, callback)-> + ProjectHandler.setPublicAccessLevel project_id, newAccessLevel, => + EditorRealTimeController.emitToRoom project_id, 'publicAccessLevelUpdated', newAccessLevel + callback?() + p: notifyProjectUsersOfNewFolder: (project_id, folder_id, folder, callback = (error)->)-> logger.log project_id:project_id, folder:folder, parentFolder_id:folder_id, "sending newly created folder out to users" diff --git a/services/web/app/coffee/managers/CollaberationManager.coffee b/services/web/app/coffee/managers/CollaberationManager.coffee index 2cde97f17b..e7a51be154 100644 --- a/services/web/app/coffee/managers/CollaberationManager.coffee +++ b/services/web/app/coffee/managers/CollaberationManager.coffee @@ -15,10 +15,7 @@ EditorRealTimeController = require('../Features/Editor/EditorRealTimeController' module.exports = class CollaberationManager constructor: (@io)-> - setPublicAccessLevel : (project_id, newAccessLevel, callback)-> - projectHandler.setPublicAccessLevel project_id, newAccessLevel, => - EditorRealTimeController.emitToRoom project_id, 'publicAccessLevelUpdated', newAccessLevel - callback?() + distributMessage: (project_id, client, message)-> message = sanitize.escape(message) diff --git a/services/web/app/coffee/router.coffee b/services/web/app/coffee/router.coffee index 12b9506268..be156ef8ac 100644 --- a/services/web/app/coffee/router.coffee +++ b/services/web/app/coffee/router.coffee @@ -315,7 +315,7 @@ module.exports = class Router client.on 'setPublicAccessLevel', (newAccessLevel, callback)-> AuthorizationManager.ensureClientCanAdminProject client, (error, project_id) => - collaberationManager.setPublicAccessLevel(project_id, newAccessLevel, callback) + EditorController.setPublicAccessLevel(project_id, newAccessLevel, callback) client.on 'pdfProject', (opts, callback)-> AuthorizationManager.ensureClientCanViewProject client, (error, project_id) => diff --git a/services/web/test/UnitTests/coffee/Editor/EditorControllerTests.coffee b/services/web/test/UnitTests/coffee/Editor/EditorControllerTests.coffee index 6a474ce429..f74500768e 100644 --- a/services/web/test/UnitTests/coffee/Editor/EditorControllerTests.coffee +++ b/services/web/test/UnitTests/coffee/Editor/EditorControllerTests.coffee @@ -683,3 +683,23 @@ describe "EditorController", -> @EditorController.renameProject @project_id, @window_id, @newName, => @EditorRealTimeController.emitToRoom.calledWith(@project_id, 'projectNameUpdated', @window_id, @newName).should.equal true done() + + + describe "setPublicAccessLevel", -> + + beforeEach -> + @err = "errro" + @newAccessLevel = "public" + @ProjectHandler::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 + done() + + it "should emit the update to the room", (done)-> + @EditorController.setPublicAccessLevel @project_id, @newAccessLevel, => + @EditorRealTimeController.emitToRoom.calledWith(@project_id, 'publicAccessLevelUpdated', @newAccessLevel).should.equal true + done() +