mirror of
https://github.com/overleaf/overleaf.git
synced 2025-03-15 04:24:52 +00:00
Merge pull request #1778 from overleaf/hb-password-reset-sl
Handle users who haven't migrated better on password reset GitOrigin-RevId: f123a6fe4a5a958f558e3cf34c3180e8fc96d159
This commit is contained in:
parent
c6c948e9f9
commit
276310bd23
3 changed files with 22 additions and 0 deletions
|
@ -6,6 +6,7 @@ UserGetter = require("../User/UserGetter")
|
|||
UserUpdater = require("../User/UserUpdater")
|
||||
UserSessionsManager = require("../User/UserSessionsManager")
|
||||
logger = require "logger-sharelatex"
|
||||
Settings = require 'settings-sharelatex'
|
||||
|
||||
module.exports =
|
||||
|
||||
|
@ -31,6 +32,8 @@ module.exports =
|
|||
res.send 200, {message: {text: req.i18n.translate("password_reset_email_sent")}}
|
||||
else if status == 'secondary'
|
||||
res.send 404, {message: req.i18n.translate("secondary_email_password_reset")}
|
||||
else if status == 'sharelatex'
|
||||
res.send 404, {message: "<a href=\"#{Settings.accountMerge.sharelatexHost}/user/password/reset\">#{req.i18n.translate("reset_from_sl")}</a>"}
|
||||
else
|
||||
res.send 404, {message: req.i18n.translate("cant_find_email")}
|
||||
|
||||
|
|
|
@ -26,6 +26,8 @@ module.exports = PasswordResetHandler =
|
|||
UserGetter.getUserByAnyEmail email, (err, user) ->
|
||||
if !user
|
||||
return callback(error, null)
|
||||
else if !user.overleaf?.id?
|
||||
return callback(error, 'sharelatex')
|
||||
else
|
||||
return callback(error, 'secondary')
|
||||
|
||||
|
|
|
@ -127,9 +127,26 @@ describe "PasswordResetHandler", ->
|
|||
it 'should return status == null', ->
|
||||
@callback.calledWith(null, null).should.equal true
|
||||
|
||||
describe "when the user isn't on v2", ->
|
||||
beforeEach ->
|
||||
@V1Api.request = sinon.stub().yields(null, { statusCode: 404 }, {})
|
||||
@UserGetter.getUserByAnyEmail.callsArgWith(1, null, @user)
|
||||
@PasswordResetHandler.generateAndEmailResetToken @email, @callback
|
||||
|
||||
it 'should not set the password token data', ->
|
||||
@OneTimeTokenHandler.getNewToken
|
||||
.called.should.equal false
|
||||
|
||||
it 'should not send an email with the token', ->
|
||||
@EmailHandler.sendEmail.called.should.equal false
|
||||
|
||||
it 'should return status == sharelatex', ->
|
||||
@callback.calledWith(null, 'sharelatex').should.equal true
|
||||
|
||||
describe "when the email is a secondary email", ->
|
||||
beforeEach ->
|
||||
@V1Api.request = sinon.stub().yields(null, { statusCode: 404 }, {})
|
||||
@user.overleaf = {id: 101}
|
||||
@UserGetter.getUserByAnyEmail.callsArgWith(1, null, @user)
|
||||
@PasswordResetHandler.generateAndEmailResetToken @email, @callback
|
||||
|
||||
|
|
Loading…
Reference in a new issue