2014-04-09 10:04:47 -04:00
|
|
|
UserLocator = require("./UserLocator")
|
2015-12-11 06:30:06 -05:00
|
|
|
UserGetter = require("./UserGetter")
|
|
|
|
ErrorController = require("../Errors/ErrorController")
|
2014-04-09 10:04:47 -04:00
|
|
|
logger = require("logger-sharelatex")
|
|
|
|
Settings = require("settings-sharelatex")
|
|
|
|
fs = require('fs')
|
2014-04-09 07:17:50 -04:00
|
|
|
|
|
|
|
module.exports =
|
|
|
|
|
2014-04-09 07:22:57 -04:00
|
|
|
registerPage : (req, res)->
|
2014-04-09 07:17:50 -04:00
|
|
|
sharedProjectData =
|
|
|
|
project_name:req.query.project_name
|
|
|
|
user_first_name:req.query.user_first_name
|
|
|
|
|
|
|
|
newTemplateData = {}
|
|
|
|
if req.session.templateData?
|
|
|
|
newTemplateData.templateName = req.session.templateData.templateName
|
|
|
|
|
|
|
|
res.render 'user/register',
|
2014-08-01 08:47:14 -04:00
|
|
|
title: 'register'
|
2014-04-09 07:17:50 -04:00
|
|
|
redir: req.query.redir
|
|
|
|
sharedProjectData: sharedProjectData
|
|
|
|
newTemplateData: newTemplateData
|
2014-04-09 07:22:57 -04:00
|
|
|
new_email:req.query.new_email || ""
|
2015-12-11 06:30:06 -05:00
|
|
|
|
|
|
|
activateAccountPage: (req, res) ->
|
|
|
|
# An 'activation' is actually just a password reset on an account that
|
|
|
|
# was set with a random password originally.
|
2016-06-13 08:21:44 -04:00
|
|
|
logger.log query:req.query, "activiate account page called"
|
2015-12-11 06:30:06 -05:00
|
|
|
if !req.query?.user_id? or !req.query?.token?
|
|
|
|
return ErrorController.notFound(req, res)
|
|
|
|
|
|
|
|
UserGetter.getUser req.query.user_id, {email: 1, loginCount: 1}, (error, user) ->
|
|
|
|
return next(error) if error?
|
|
|
|
if !user
|
|
|
|
return ErrorController.notFound(req, res)
|
|
|
|
if user.loginCount > 0
|
2016-06-13 08:21:44 -04:00
|
|
|
logger.log user:user, "user has already logged in so is active, sending them to /login"
|
2015-12-11 06:30:06 -05:00
|
|
|
# Already seen this user, so account must be activate
|
|
|
|
# This lets users keep clicking the 'activate' link in their email
|
|
|
|
# as a way to log in which, if I know our users, they will.
|
|
|
|
res.redirect "/login?email=#{encodeURIComponent(user.email)}"
|
|
|
|
else
|
|
|
|
res.render 'user/activate',
|
|
|
|
title: 'activate_account'
|
|
|
|
email: user.email,
|
|
|
|
token: req.query.token
|
2014-04-09 07:22:57 -04:00
|
|
|
|
|
|
|
loginPage : (req, res)->
|
|
|
|
res.render 'user/login',
|
2014-08-01 08:47:14 -04:00
|
|
|
title: 'login',
|
2015-12-11 06:30:06 -05:00
|
|
|
redir: req.query.redir,
|
|
|
|
email: req.query.email
|
2014-04-09 07:22:57 -04:00
|
|
|
|
2015-02-05 13:20:25 -05:00
|
|
|
settingsPage : (req, res, next)->
|
2014-04-09 10:04:47 -04:00
|
|
|
logger.log user: req.session.user, "loading settings page"
|
|
|
|
UserLocator.findById req.session.user._id, (err, user)->
|
2015-02-05 13:20:25 -05:00
|
|
|
return next(err) if err?
|
|
|
|
res.render 'user/settings',
|
|
|
|
title:'account_settings'
|
|
|
|
user: user,
|
|
|
|
languages: Settings.languages,
|
|
|
|
accountSettingsTabActive: true
|