diff --git a/lib/app/index.js b/lib/app/index.js index 32f35a6222..898cfecf03 100644 --- a/lib/app/index.js +++ b/lib/app/index.js @@ -26,7 +26,7 @@ get('/:uidParam?', function(page, model, _arg) { return model.subscribe("users." + userId, function(err, user) { var guid, newUser, task, _i, _len, _ref1; if (!user.get('id')) { - newUser = schema.userSchema; + newUser = require('node.extend')(true, {}, schema.userSchema); _ref1 = content.defaultTasks; for (_i = 0, _len = _ref1.length; _i < _len; _i++) { task = _ref1[_i]; diff --git a/package.json b/package.json index 331fd2b8b1..919720099b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "habitrpg", "description": "A habit tracker app which treats your goals like a Role Playing Game.", - "version": "0.0.0-95", + "version": "0.0.0-101", "main": "./server.js", "dependencies": { "derby": "git://github.com/codeparty/derby#master", @@ -10,7 +10,8 @@ "racer-db-mongo": "0.3.11", "connect-mongo": ">=0.1.9", "derby-ui-boot": "*", - "guid": "*" + "guid": "*", + "node.extend": "*" }, "private": true, "devDependencies": { diff --git a/src/app/index.coffee b/src/app/index.coffee index 37440d675f..0b989baa95 100644 --- a/src/app/index.coffee +++ b/src/app/index.coffee @@ -9,12 +9,13 @@ scoring = require('./scoring') schema = require('./schema') helpers = require('./helpers') helpers.viewHelpers(view) +# $ = require('jQuery') +# _ = require('underscore') # ========== ROUTES ========== get '/:uidParam?', (page, model, {uidParam}) -> - # Current browser session # The session middleware will assign a _userId automatically userId = model.get '_userId' @@ -22,7 +23,8 @@ get '/:uidParam?', (page, model, {uidParam}) -> # Create new user if none exists unless user.get('id') - newUser = schema.userSchema + # deep clone, else further new users get duplicate objects + newUser = require('node.extend')(true, {}, schema.userSchema) for task in content.defaultTasks guid = task.id = require('derby/node_modules/racer').uuid() newUser.tasks[guid] = task