mirror of
https://github.com/overleaf/overleaf.git
synced 2025-04-07 01:00:22 +00:00
should be able to set first and last name via user details on registration
This commit is contained in:
parent
895af7c07a
commit
c52af1393e
5 changed files with 49 additions and 6 deletions
|
@ -1,5 +1,6 @@
|
|||
User = require("../../models/User").User
|
||||
UserLocator = require("./UserLocator")
|
||||
logger = require("logger-sharelatex")
|
||||
|
||||
module.exports =
|
||||
|
||||
|
@ -12,16 +13,23 @@ module.exports =
|
|||
self.createNewUser email:email, holdingAccount:true, callback
|
||||
|
||||
createNewUser: (opts, callback)->
|
||||
logger.log opts:opts, "creating new user"
|
||||
user = new User()
|
||||
user.email = opts.email
|
||||
user.holdingAccount = opts.holdingAccount
|
||||
|
||||
username = opts.email.match(/^[^@]*/)
|
||||
if username?
|
||||
if opts.first_name? and opts.first_name.length != 0
|
||||
user.first_name = opts.first_name
|
||||
else if username?
|
||||
user.first_name = username[0]
|
||||
else
|
||||
user.first_name = ""
|
||||
user.last_name = ""
|
||||
|
||||
if opts.last_name?
|
||||
user.last_name = opts.last_name
|
||||
else
|
||||
user.last_name = ""
|
||||
|
||||
user.featureSwitches?.pdfng = true
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@ module.exports =
|
|||
activateAccountPage: (req, res) ->
|
||||
# An 'activation' is actually just a password reset on an account that
|
||||
# was set with a random password originally.
|
||||
logger.log query:req.query, "activiate account page called"
|
||||
if !req.query?.user_id? or !req.query?.token?
|
||||
return ErrorController.notFound(req, res)
|
||||
|
||||
|
@ -34,6 +35,7 @@ module.exports =
|
|||
if !user
|
||||
return ErrorController.notFound(req, res)
|
||||
if user.loginCount > 0
|
||||
logger.log user:user, "user has already logged in so is active, sending them to /login"
|
||||
# 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.
|
||||
|
|
|
@ -35,7 +35,8 @@ module.exports = UserRegistrationHandler =
|
|||
|
||||
_createNewUserIfRequired: (user, userDetails, callback)->
|
||||
if !user?
|
||||
UserCreator.createNewUser {holdingAccount:false, email:userDetails.email}, callback
|
||||
userDetails.holdingAccount = false
|
||||
UserCreator.createNewUser userDetails, callback
|
||||
else
|
||||
callback null, user
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@ describe "UserCreator", ->
|
|||
@UserCreator = SandboxedModule.require modulePath, requires:
|
||||
"../../models/User": User:@UserModel
|
||||
"./UserLocator":@UserLocator
|
||||
"logger-sharelatex":{log:->}
|
||||
|
||||
@email = "bob.oswald@gmail.com"
|
||||
|
||||
|
@ -53,5 +54,36 @@ describe "UserCreator", ->
|
|||
assert.equal user.first_name, "bob.oswald"
|
||||
done()
|
||||
|
||||
it "should use the start of the email if the first name is empty string", (done)->
|
||||
opts =
|
||||
email:@email
|
||||
holdingAccount:true
|
||||
first_name:""
|
||||
@UserCreator.createNewUser opts, (err, user)=>
|
||||
assert.equal user.email, @email
|
||||
assert.equal user.holdingAccount, true
|
||||
assert.equal user.first_name, "bob.oswald"
|
||||
done()
|
||||
|
||||
|
||||
it "should use the first name if passed", (done)->
|
||||
opts =
|
||||
email:@email
|
||||
holdingAccount:true
|
||||
first_name:"fiiirstname"
|
||||
@UserCreator.createNewUser opts, (err, user)=>
|
||||
assert.equal user.email, @email
|
||||
assert.equal user.holdingAccount, true
|
||||
assert.equal user.first_name, "fiiirstname"
|
||||
done()
|
||||
|
||||
it "should use the last name if passed", (done)->
|
||||
opts =
|
||||
email:@email
|
||||
holdingAccount:true
|
||||
last_name:"lastNammmmeee"
|
||||
@UserCreator.createNewUser opts, (err, user)=>
|
||||
assert.equal user.email, @email
|
||||
assert.equal user.holdingAccount, true
|
||||
assert.equal user.last_name, "lastNammmmeee"
|
||||
done()
|
||||
|
|
|
@ -106,19 +106,19 @@ describe "UserRegistrationHandler", ->
|
|||
|
||||
it "should create a new user", (done)->
|
||||
@handler.registerNewUser @passingRequest, (err)=>
|
||||
@UserCreator.createNewUser.calledWith({email:@passingRequest.email, holdingAccount:false}).should.equal true
|
||||
@UserCreator.createNewUser.calledWith({email:@passingRequest.email, holdingAccount:false, password:"123"}).should.equal true
|
||||
done()
|
||||
|
||||
it 'lower case email', (done)->
|
||||
@passingRequest.email = "soMe@eMail.cOm"
|
||||
@handler.registerNewUser @passingRequest, (err)=>
|
||||
@UserCreator.createNewUser.calledWith({email:@passingRequest.email.toLowerCase(), holdingAccount:false}).should.equal true
|
||||
@UserCreator.createNewUser.args[0][0].email.should.equal "some@email.com"
|
||||
done()
|
||||
|
||||
it 'trim white space from email', (done)->
|
||||
@passingRequest.email = " some@email.com "
|
||||
@handler.registerNewUser @passingRequest, (err)=>
|
||||
@UserCreator.createNewUser.calledWith({email:"some@email.com", holdingAccount:false}).should.equal true
|
||||
@UserCreator.createNewUser.args[0][0].email.should.equal "some@email.com"
|
||||
done()
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue