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

added route for getting connected users

Henry Oswald пре 12 година
родитељ
комит
4a71b38721

+ 1 - 1
services/web/app/coffee/Features/ConnectedUsers/ConnectedUsersController.coffee

@@ -4,7 +4,7 @@ logger = require("logger-sharelatex")
 module.exports = 
 
 	getConnectedUsers: (req, res)->
-		project_id = req.params.project_id
+		project_id = req.params.Project_id
 		ConnectedUsersManager.getConnectedUsers project_id, (err, users)->
 			if err?
 				logger.err err:err, project_id:project_id, "problem getting connected users"

+ 2 - 1
services/web/app/coffee/Features/ConnectedUsers/ConnectedUsersManager.coffee

@@ -50,7 +50,8 @@ module.exports =
 			else
 				result.connected = true
 				result.user_id = user_id
-
+				if result.cursorData?
+					result.cursorData = JSON.parse(result.cursorData)
 			callback err, result
 
 	setUserCursorPosition: (project_id, user_id, cursorData, callback)->

+ 5 - 2
services/web/app/coffee/router.coffee

@@ -37,6 +37,7 @@ PasswordResetRouter = require("./Features/PasswordReset/PasswordResetRouter")
 StaticPagesRouter = require("./Features/StaticPages/StaticPagesRouter")
 ChatController = require("./Features/Chat/ChatController")
 BlogController = require("./Features/Blog/BlogController")
+ConnectedUsersController = require("./Features/ConnectedUsers/ConnectedUsersController")
 
 logger = require("logger-sharelatex")
 _ = require("underscore")
@@ -133,6 +134,8 @@ module.exports = class Router
 		app.post '/project/:project_id/leave', AuthenticationController.requireLogin(), CollaboratorsController.removeSelfFromProject
 		app.get  '/project/:Project_id/collaborators', SecurityManager.requestCanAccessProject(allow_auth_token: true), CollaboratorsController.getCollaborators
 
+		app.get  '/project/:Project_id/connected_users', SecurityManager.requestCanAccessProject, ConnectedUsersController.getConnectedUsers
+
 		app.get  '/Project/:Project_id/download/zip', SecurityManager.requestCanAccessProject, ProjectDownloadsController.downloadProject
 		app.get  '/project/download/zip', SecurityManager.requestCanAccessMultipleProjects, ProjectDownloadsController.downloadMultipleProjects
 
@@ -157,8 +160,8 @@ module.exports = class Router
 		app.post "/spelling/check", AuthenticationController.requireLogin(), SpellingController.proxyRequestToSpellingApi
 		app.post "/spelling/learn", AuthenticationController.requireLogin(), SpellingController.proxyRequestToSpellingApi
 
-		app.get  "/project/:project_id/messages", ChatController.getMessages
-		app.post "/project/:project_id/messages", ChatController.sendMessage
+		app.get  "/project/:project_id/messages", SecurityManager.requestCanAccessProject, ChatController.getMessages
+		app.post "/project/:project_id/messages", SecurityManager.requestCanAccessProject, ChatController.sendMessage
 
 		#Admin Stuff
 		app.get  '/admin', SecurityManager.requestIsAdmin, AdminController.index

+ 2 - 1
services/web/test/UnitTests/coffee/ConnectedUsers/ConnectedUsersManagerTests.coffee

@@ -88,7 +88,8 @@ describe "ConnectedUsersManager", ->
 	describe "_getConnectedUser", ->
 
 		it "should get the user returning connected if there is a value", (done)->
-			@rClient.hgetall.callsArgWith(1, null, {connected_at:new Date(), cursorData:{row:1}})
+			cursorData = JSON.stringify(cursorData:{row:1})
+			@rClient.hgetall.callsArgWith(1, null, {connected_at:new Date(), cursorData})
 			@ConnectedUsersManager._getConnectedUser @project_id, @user_id, (err, result)=>
 				result.connected.should.equal true
 				result.user_id.should.equal @user_id