mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-11-14 06:03:45 +01: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:
committed by
sharelatex
parent
c6c948e9f9
commit
276310bd23
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user