Просмотр исходного кода

Add `revokeAllSessions` handler, when password is reset

Shane Kilkelly 10 лет назад
Родитель
Сommit
88bef5c5ea

+ 6 - 7
services/web/app/coffee/Features/User/UserController.coffee

@@ -121,16 +121,15 @@ module.exports = UserController =
 					logger.log user: user, "password changed"
 					logger.log user: user, "password changed"
 					AuthenticationManager.setUserPassword user._id, newPassword1, (error) ->
 					AuthenticationManager.setUserPassword user._id, newPassword1, (error) ->
 						return next(error) if error?
 						return next(error) if error?
-						res.send
-							message:
-							  type:'success'
-							  text:'Your password has been changed'
+						UserSessionsManager.revokeAllSessions user, (err) ->
+							return next(err) if err
+							res.send
+								message:
+									type:'success'
+									text:'Your password has been changed'
 			else
 			else
 				logger.log user: user, "current password wrong"
 				logger.log user: user, "current password wrong"
 				res.send
 				res.send
 					message:
 					message:
 					  type:'error'
 					  type:'error'
 					  text:'Your old password is wrong'
 					  text:'Your old password is wrong'
-
-
-

+ 4 - 0
services/web/app/coffee/Features/User/UserSessionsManager.coffee

@@ -34,3 +34,7 @@ module.exports = UserSessionsManager =
 				logger.err {err, user_id: user._id, sessionId}, "error while removing session key from UserSessions set"
 				logger.err {err, user_id: user._id, sessionId}, "error while removing session key from UserSessions set"
 				return callback(err)
 				return callback(err)
 			callback()
 			callback()
+
+	revokeAllSessions: (user, callback=(err)->) ->
+		logger.log {user_id: user._id}, "revoking all existing sessions for user"
+		callback(null)