Merge pull request #293 from sharelatex/ja-allow-sl-login-to-v2

Show different message if user comes from SL instead of OL v2
This commit is contained in:
James Allen 2018-01-31 10:23:22 +00:00 committed by GitHub
commit 97c0577d8e
5 changed files with 45 additions and 21 deletions

View file

@ -157,7 +157,7 @@ module.exports = ProjectController =
hasSubscription: (cb)->
LimitationsManager.userHasSubscriptionOrIsGroupMember currentUser, cb
user: (cb) ->
User.findById user_id, "featureSwitches", cb
User.findById user_id, "featureSwitches overleaf", cb
}, (err, results)->
if err?
logger.err err:err, "error getting data for project list page"

View file

@ -93,6 +93,10 @@ module.exports = (app, webRouter, privateApiRouter, publicApiRouter)->
req.externalAuthenticationSystemUsed = Features.externalAuthenticationSystemUsed
res.locals.externalAuthenticationSystemUsed = Features.externalAuthenticationSystemUsed
req.hasFeature = res.locals.hasFeature = Features.hasFeature
res.locals.userIsFromOLv1 = (user) ->
user.overleaf?.id?
res.locals.userIsFromSL = (user) ->
!user.overleaf?.id?
next()
webRouter.use (req, res, next)->

View file

@ -12,5 +12,7 @@ module.exports = Features =
return not Features.externalAuthenticationSystemUsed()
when 'github-sync'
return Settings.enableGithubSync
when 'v1-return-message'
return Settings.accountMerge? and Settings.overleaf?
else
throw new Error("unknown feature: #{feature}")

View file

@ -64,13 +64,18 @@ block content
aside.project-list-sidebar.col-md-2.col-xs-3
include ./list/side-bar
if isShowingV1Projects && settings.overleaf && settings.overleaf.host
if hasFeature('v1-return-message')
.project-list-sidebar-v2-pane.col-md-2.col-xs-3
span Welcome to the Overleaf v2 alpha! #[a(href="https://www.overleaf.com/help/342-overleaf-v2-faq") Find out more].
span To tag or rename your v1 projects, please go back to Overleaf v1.
a.project-list-sidebar-v1-link(
href=settings.overleaf.host + "/dash?prefer-v1-dash=1"
) Go back to v1
if userIsFromOLv1(user)
span To tag or rename your v1 projects, please go back to Overleaf v1.
a.project-list-sidebar-v1-link(
href=settings.overleaf.host + "/dash?prefer-v1-dash=1"
) Go back to v1
if userIsFromSL(user)
a.project-list-sidebar-v1-link(
href=settings.accountMerge.sharelatexHost
) Go back to ShareLaTeX
.project-list-main.col-md-10.col-xs-9
include ./list/notifications

View file

@ -18,22 +18,27 @@ class User
})
login: (callback = (error) ->) ->
@getCsrfToken (error) =>
@ensureUserExists (error) =>
return callback(error) if error?
filter = {@email}
options = {upsert: true, new: true, setDefaultsOnInsert: true}
UserModel.findOneAndUpdate filter, {}, options, (error, user) =>
@getCsrfToken (error) =>
return callback(error) if error?
AuthenticationManager.setUserPassword user._id, @password, (error) =>
return callback(error) if error?
@id = user?._id?.toString()
@_id = user?._id?.toString()
@first_name = user?.first_name
@referal_id = user?.referal_id
@request.post {
url: "/login"
json: { @email, @password }
}, callback
@request.post {
url: "/login"
json: { @email, @password }
}, callback
ensureUserExists: (callback = (error) ->) ->
filter = {@email}
options = {upsert: true, new: true, setDefaultsOnInsert: true}
UserModel.findOneAndUpdate filter, {}, options, (error, user) =>
return callback(error) if error?
AuthenticationManager.setUserPassword user._id, @password, (error) =>
return callback(error) if error?
@id = user?._id?.toString()
@_id = user?._id?.toString()
@first_name = user?.first_name
@referal_id = user?.referal_id
callback(null, @password)
logout: (callback = (error) ->) ->
@getCsrfToken (error) =>
@ -212,6 +217,14 @@ class User
return callback(error) if error?
callback(null, response.statusCode)
isLoggedIn: (callback = (error, loggedIn) ->) ->
@request.get "/user/personal_info", (error, response, body) ->
return callback(error) if error?
if response.statusCode == 200
return callback(null, true)
else if response.statusCode == 302
return callback(null, false)
else
return callback(new Error("unexpected status code from /user/personal_info: #{response.statusCode}"))
module.exports = User