mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
Roughly working account-merge-by-email callback endpoint
This commit is contained in:
parent
958c7a19b6
commit
6cfe68db26
3 changed files with 43 additions and 6 deletions
|
@ -1,5 +1,44 @@
|
|||
UserGetter = require '../User/UserGetter'
|
||||
UserUpdater = require '../User/UserUpdater'
|
||||
OneTimeTokenHandler = require '../Security/OneTimeTokenHandler'
|
||||
logger = require 'logger-sharelatex'
|
||||
Settings = require 'settings-sharelatex'
|
||||
|
||||
|
||||
module.exports = AccountMergeEmailController =
|
||||
|
||||
confirmMergeFromEmail: (req, res, next) ->
|
||||
return res.render('account_merge/finish', {})
|
||||
token = req.query.token
|
||||
if !token
|
||||
return res.status(400).send()
|
||||
OneTimeTokenHandler.getValueFromTokenAndExpire 'account-merge-email-to-ol', token, (err, data) ->
|
||||
return next(err) if err?
|
||||
if !data
|
||||
return res.status(404).send()
|
||||
if data.origin != 'sl'
|
||||
logger.log {}, "Only sharelatex origin supported"
|
||||
# TODO: better error handling
|
||||
return res.status(501).send()
|
||||
{ sl_id, v1_id, final_email } = data
|
||||
UserGetter.getUser sl_id, {_id: 1, overleaf: 1}, (err, user) ->
|
||||
return next(err) if err?
|
||||
if !user?
|
||||
logger.err {userId: sl_id}, 'SL user not found for account-merge'
|
||||
# TODO: better error handling
|
||||
return res.status(400).send()
|
||||
if user?.overleaf?.id?
|
||||
logger.err {userId: sl_id}, 'SL user is already linked to overleaf'
|
||||
return res.status(400).send()
|
||||
logger.log {sl_id, v1_id, final_email, origin: data.origin},
|
||||
"[AccountMergeEmailController] about to merge sharelatex and overleaf-v1 accounts"
|
||||
UserUpdater.updateUser sl_id, {
|
||||
'$set': {
|
||||
'overleaf.id': v1_id,
|
||||
email: final_email
|
||||
}
|
||||
}, (err) ->
|
||||
return next(err) if err?
|
||||
res.render 'account_merge/finish', {
|
||||
finalEmail: final_email,
|
||||
continueUrl: "#{Settings.accountMerge.sharelatexHost}/user/login_to_ol_v2"
|
||||
}
|
||||
|
|
|
@ -12,4 +12,6 @@ block content
|
|||
div.container-fluid
|
||||
.row
|
||||
.col-md-12
|
||||
p Test
|
||||
p New email is #{finalEmail}
|
||||
p
|
||||
a.btn.btn-lg.btn-success(href=continueUrl) Continue
|
||||
|
|
|
@ -8,7 +8,6 @@ define [
|
|||
$scope.olEmail = ""
|
||||
$scope.errorCode = null
|
||||
$scope.success = null
|
||||
console.log ">>>> here"
|
||||
|
||||
$scope.submitEmail = () ->
|
||||
return if !$scope.olEmail
|
||||
|
@ -16,15 +15,12 @@ define [
|
|||
overleafEmail: $scope.olEmail
|
||||
_csrf: window.csrfToken
|
||||
}
|
||||
console.log ">>>> sending email", data
|
||||
$scope.errorCode = null
|
||||
$http.post("/account-merge/email/overleaf", data)
|
||||
.then (resp) ->
|
||||
console.log ">>>> success", resp
|
||||
$scope.errorCode = null
|
||||
$scope.success = true
|
||||
.catch (resp) ->
|
||||
console.log ">>>> error", resp
|
||||
$scope.errorCode = resp?.data?.errorCode || 'default_error'
|
||||
$scope.success = false
|
||||
|
||||
|
|
Loading…
Reference in a new issue