summaryrefslogtreecommitdiffstats
path: root/collections/users.js
diff options
context:
space:
mode:
authorMaxime Quandalle <maxime@quandalle.com>2015-06-01 17:56:00 +0200
committerMaxime Quandalle <maxime@quandalle.com>2015-06-03 06:46:41 +0200
commit7f6929608c6423505778722dd4cb7bf8e837729e (patch)
tree67b1cca95c23e79e939a579c651ecbe42e37c8dd /collections/users.js
parent5f09c0ce406075bbd1ed9061f444e615375aa2d3 (diff)
downloadwekan-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.js24
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.