diff options
author | Maxime Quandalle <maxime@quandalle.com> | 2015-06-01 17:56:00 +0200 |
---|---|---|
committer | Maxime Quandalle <maxime@quandalle.com> | 2015-06-03 06:46:41 +0200 |
commit | 7f6929608c6423505778722dd4cb7bf8e837729e (patch) | |
tree | 67b1cca95c23e79e939a579c651ecbe42e37c8dd /collections/users.js | |
parent | 5f09c0ce406075bbd1ed9061f444e615375aa2d3 (diff) | |
download | wekan-7f6929608c6423505778722dd4cb7bf8e837729e.tar.gz wekan-7f6929608c6423505778722dd4cb7bf8e837729e.tar.bz2 wekan-7f6929608c6423505778722dd4cb7bf8e837729e.zip |
Work on the user account system
Allow a user to modifies its name, username, initials, and password.
Fixes username handling on sandstorm.
Fixes #149.
Diffstat (limited to 'collections/users.js')
-rw-r--r-- | collections/users.js | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/collections/users.js b/collections/users.js index 2f44e19e..8d1c0d58 100644 --- a/collections/users.js +++ b/collections/users.js @@ -41,11 +41,35 @@ Users.helpers({ } }); +Meteor.methods({ + setUsername: function(username) { + var nUsersWithUsername = Users.find({username: username}).count(); + if (nUsersWithUsername > 0) { + throw new Meteor.Error('username-already-taken'); + } else { + Users.update(this.userId, {$set: { + username: username + }}); + } + } +}); + Users.before.insert(function(userId, doc) { doc.profile = doc.profile || {}; + + if (! doc.username && doc.profile.name) { + doc.username = doc.profile.name.toLowerCase().replace(/\s/g, ''); + } }); if (Meteor.isServer) { + // Let mongoDB ensure username unicity + Meteor.startup(function() { + Users._collection._ensureIndex({ + username: 1 + }, { unique: true }); + }); + // Each board document contains the de-normalized number of users that have // starred it. If the user star or unstar a board, we need to update this // counter. |