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

moved logout to new user controller

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

+ 13 - 2
services/web/app/coffee/Features/User/UserController.coffee

@@ -1,9 +1,10 @@
 UserDeleter = require("./UserDeleter")
 UserDeleter = require("./UserDeleter")
+UserLocator = require("./UserLocator")
 User = require("../../models/User").User
 User = require("../../models/User").User
 newsLetterManager = require('../Newsletter/NewsletterManager')
 newsLetterManager = require('../Newsletter/NewsletterManager')
 sanitize = require('sanitizer')
 sanitize = require('sanitizer')
 logger = require("logger-sharelatex")
 logger = require("logger-sharelatex")
-
+metrics = require("../../infrastructure/Metrics")
 
 
 module.exports =
 module.exports =
 
 
@@ -34,4 +35,14 @@ module.exports =
 			user.ace.spellCheckLanguage = req.body.spellCheckLanguage
 			user.ace.spellCheckLanguage = req.body.spellCheckLanguage
 			user.ace.pdfViewer = req.body.pdfViewer
 			user.ace.pdfViewer = req.body.pdfViewer
 			user.save ->
 			user.save ->
-				res.send()
+				res.send()
+
+	logout : (req, res)->
+		metrics.inc "user.logout"
+		logger.log user: req?.session?.user, "logging out"
+		req.session.destroy (err)->
+			if err
+				logger.err err: err, 'error destorying session'
+			res.redirect '/login'
+
+

+ 0 - 9
services/web/app/coffee/controllers/UserController.coffee

@@ -95,15 +95,6 @@ module.exports =
 					 type:'failure'
 					 type:'failure'
 				logger.info email: email, "no user found with email"
 				logger.info email: email, "no user found with email"
 				
 				
-	logout : (req, res)->
-		metrics.inc "user.logout"
-		if req.session? && req.session.user?
-			logger.log user: req.session.user, "logging out"
-		req.session.destroy (err)->
-			if err
-				logger.err err: err, 'error destorying session'
-			res.redirect '/login'
-
 
 
 	changePassword : (req, res, next = (error) ->)->
 	changePassword : (req, res, next = (error) ->)->
 		metrics.inc "user.password-change"
 		metrics.inc "user.password-change"

+ 1 - 1
services/web/app/coffee/router.coffee

@@ -51,7 +51,7 @@ module.exports = class Router
 		
 		
 		app.get  '/login', UserPagesController.loginPage
 		app.get  '/login', UserPagesController.loginPage
 		app.post '/login', AuthenticationController.login
 		app.post '/login', AuthenticationController.login
-		app.get  '/logout', UserController.logout
+		app.get  '/logout', UserController_new.logout
 		app.get  '/restricted', SecurityManager.restricted
 		app.get  '/restricted', SecurityManager.restricted
 
 
 		app.get '/resources', HomeController.externalPage("resources", "LaTeX Resources")
 		app.get '/resources', HomeController.externalPage("resources", "LaTeX Resources")

+ 18 - 3
services/web/test/UnitTests/coffee/User/UserControllerTests.coffee

@@ -18,11 +18,14 @@ describe "UserController", ->
 
 
 		@UserDeleter = 
 		@UserDeleter = 
 			deleteUser: sinon.stub().callsArgWith(1)
 			deleteUser: sinon.stub().callsArgWith(1)
+		@UserLocator = 
+			findById: sinon.stub().callsArgWith(1, null, @user)
 		@User =
 		@User =
 			findById: sinon.stub().callsArgWith(1, null, @user)
 			findById: sinon.stub().callsArgWith(1, null, @user)
 		@NewsLetterManager =
 		@NewsLetterManager =
 			unsubscribe: sinon.stub().callsArgWith(1)
 			unsubscribe: sinon.stub().callsArgWith(1)
 		@UserController = SandboxedModule.require modulePath, requires:
 		@UserController = SandboxedModule.require modulePath, requires:
+			"./UserLocator": @UserLocator
 			"./UserDeleter": @UserDeleter
 			"./UserDeleter": @UserDeleter
 			"../../models/User": User:@User
 			"../../models/User": User:@User
 			'../Newsletter/NewsletterManager':@NewsLetterManager
 			'../Newsletter/NewsletterManager':@NewsLetterManager
@@ -53,8 +56,6 @@ describe "UserController", ->
 				done()
 				done()
 			@UserController.unsubscribe @req, @res
 			@UserController.unsubscribe @req, @res
 
 
-
-
 	describe "updateUserSettings", ->
 	describe "updateUserSettings", ->
 
 
 		it "should call save", (done)->
 		it "should call save", (done)->
@@ -64,7 +65,6 @@ describe "UserController", ->
 				done()
 				done()
 			@UserController.updateUserSettings @req, @res
 			@UserController.updateUserSettings @req, @res
 
 
-
 		it "should set the first name", (done)->
 		it "should set the first name", (done)->
 			@req.body =
 			@req.body =
 				first_name: "bobby  "
 				first_name: "bobby  "
@@ -82,3 +82,18 @@ describe "UserController", ->
 			@UserController.updateUserSettings @req, @res
 			@UserController.updateUserSettings @req, @res
 
 
 
 
+	describe "logout", ->
+
+		it "should destroy the session", (done)->
+
+			@req.session.destroy = (cb)-> 
+				if cb?
+					cb()
+			@res.redirect = (url)=>
+				url.should.equal "/login"
+				@req.session.destroy.called.should.equal true
+				done()
+
+			@UserController.logout @req, @res
+
+