added default of empty string to user details, fixed route as well

This commit is contained in:
Henry Oswald 2014-06-11 15:14:03 +01:00
parent 473da4fa4c
commit e099a4a100
4 changed files with 18 additions and 6 deletions

View file

@ -23,12 +23,14 @@ module.exports = UserController =
updatePersonalInfo: (req, res, next = (error)->) ->
{first_name, last_name, role, institution} = req.body
user_id = req.session.user._id
logger.log data:req.body, user_id:user_id, "getting update for user personal info"
update =
first_name:sanitize.escape(first_name)
last_name:sanitize.escape(last_name)
role:sanitize.escape(role)
institution:sanitize.escape(institution)
UserUpdater.updatePersonalInfo req.session.user._id, update, (err)->
UserUpdater.updatePersonalInfo user_id, update, (err)->
if err?
res.send 500
else

View file

@ -33,9 +33,9 @@ module.exports = UserUpdater =
self = @
update =
$set:
"first_name": info.first_name
"last_name": info.last_name
"role": info.role
"institution": info.institution
"first_name": info.first_name || ""
"last_name": info.last_name || ""
"role": info.role || ""
"institution": info.institution || ""
self.updateUser user_id.toString(), update, (err)->
callback(err)

View file

@ -90,7 +90,7 @@ module.exports = class Router
app.get '/user/auth_token', AuthenticationController.requireLogin(), AuthenticationController.getAuthToken
app.get '/user/personal_info', AuthenticationController.requireLogin(allow_auth_token: true), UserInfoController.getLoggedInUsersPersonalInfo
app.post '/user/personal_info', AuthenticationController.requireLogin(), UserInfoController.getPersonalInfo
app.post '/user/personal_info', AuthenticationController.requireLogin(), UserInfoController.updatePersonalInfo
app.get '/user/:user_id/personal_info', httpAuth, UserInfoController.getPersonalInfo
app.get '/project', AuthenticationController.requireLogin(), ProjectController.projectListPage

View file

@ -72,3 +72,13 @@ describe "UserUpdater", ->
should.exist(err)
done()
it "should default them to empty strings", (done)->
@UserUpdater.updateUser = sinon.stub().callsArgWith(2)
@UserUpdater.updatePersonalInfo @user_id, {}, (err)=>
args = @UserUpdater.updateUser.args[0][1]
args["$set"].first_name.should.equal ""
args["$set"].last_name.should.equal ""
args["$set"].role.should.equal ""
args["$set"].institution.should.equal ""
done()