diff --git a/services/web/app/coffee/Features/User/UserInfoController.coffee b/services/web/app/coffee/Features/User/UserInfoController.coffee index 54ccc6b514..ac4a3fecaf 100644 --- a/services/web/app/coffee/Features/User/UserInfoController.coffee +++ b/services/web/app/coffee/Features/User/UserInfoController.coffee @@ -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 diff --git a/services/web/app/coffee/Features/User/UserUpdater.coffee b/services/web/app/coffee/Features/User/UserUpdater.coffee index 7fba8b349b..9d7241e01a 100644 --- a/services/web/app/coffee/Features/User/UserUpdater.coffee +++ b/services/web/app/coffee/Features/User/UserUpdater.coffee @@ -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) \ No newline at end of file diff --git a/services/web/app/coffee/router.coffee b/services/web/app/coffee/router.coffee index 45cf7a170b..2206e495e8 100644 --- a/services/web/app/coffee/router.coffee +++ b/services/web/app/coffee/router.coffee @@ -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 diff --git a/services/web/test/UnitTests/coffee/User/UserUpdaterTests.coffee b/services/web/test/UnitTests/coffee/User/UserUpdaterTests.coffee index 181cfc467f..fd8cfef3ec 100644 --- a/services/web/test/UnitTests/coffee/User/UserUpdaterTests.coffee +++ b/services/web/test/UnitTests/coffee/User/UserUpdaterTests.coffee @@ -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() +