summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThuan Pham Quoc <thuanpq.io@gmail.com>2017-11-08 11:34:05 +0700
committerThuan Pham Quoc <thuanpq.io@gmail.com>2017-11-08 11:34:05 +0700
commite3b7f85cc35b650e72259909608237ea0347a7fb (patch)
tree83d342f7a56891f2ffa4c4f92172df6c5f5df8b8
parent3bead1bf78758e81a97150053c5df8e6be2d6fe1 (diff)
downloadwekan-e3b7f85cc35b650e72259909608237ea0347a7fb.tar.gz
wekan-e3b7f85cc35b650e72259909608237ea0347a7fb.tar.bz2
wekan-e3b7f85cc35b650e72259909608237ea0347a7fb.zip
Updated users methods to get user id from client on updating user data, is aimed to support admin update other user profile
-rw-r--r--client/components/users/userHeader.js10
-rw-r--r--models/users.js15
2 files changed, 13 insertions, 12 deletions
diff --git a/client/components/users/userHeader.js b/client/components/users/userHeader.js
index 90205ee1..481b13c3 100644
--- a/client/components/users/userHeader.js
+++ b/client/components/users/userHeader.js
@@ -42,7 +42,7 @@ Template.editProfilePopup.events({
isChangeUserName = username !== Meteor.user().username;
isChangeEmail = email.toLowerCase() !== Meteor.user().emails[0].address.toLowerCase();
if (isChangeUserName && isChangeEmail) {
- Meteor.call('setUsernameAndEmail', username, email.toLowerCase(), function(error) {
+ Meteor.call('setUsernameAndEmail', username, email.toLowerCase(), Meteor.userId(), function (error) {
const usernameMessageElement = tpl.$('.username-taken');
const emailMessageElement = tpl.$('.email-taken');
if (error) {
@@ -61,7 +61,7 @@ Template.editProfilePopup.events({
}
});
} else if (isChangeUserName) {
- Meteor.call('setUsername', username, function(error) {
+ Meteor.call('setUsername', username, Meteor.userId(), function (error) {
const messageElement = tpl.$('.username-taken');
if (error) {
messageElement.show();
@@ -71,7 +71,7 @@ Template.editProfilePopup.events({
}
});
} else if (isChangeEmail) {
- Meteor.call('setEmail', email.toLowerCase(), function(error) {
+ Meteor.call('setEmail', email.toLowerCase(), Meteor.userId(), function (error) {
const messageElement = tpl.$('.email-taken');
if (error) {
messageElement.show();
@@ -105,7 +105,7 @@ Template.editNotificationPopup.events({
// XXX For some reason the useraccounts autofocus isnt working in this case.
// See https://github.com/meteor-useraccounts/core/issues/384
-Template.changePasswordPopup.onRendered(function() {
+Template.changePasswordPopup.onRendered(function () {
this.find('#at-field-current_password').focus();
});
@@ -116,7 +116,7 @@ Template.changeLanguagePopup.helpers({
tag: code,
name: lang.name === 'br' ? 'Brezhoneg' : lang.name,
};
- }).sort(function(a, b) {
+ }).sort(function (a, b) {
if (a.name === b.name) {
return 0;
} else {
diff --git a/models/users.js b/models/users.js
index abc0f82d..a4106023 100644
--- a/models/users.js
+++ b/models/users.js
@@ -325,13 +325,13 @@ Users.mutations({
});
Meteor.methods({
- setUsername(username) {
+ setUsername(username, userId) {
check(username, String);
const nUsersWithUsername = Users.find({ username }).count();
if (nUsersWithUsername > 0) {
throw new Meteor.Error('username-already-taken');
} else {
- Users.update(this.userId, { $set: { username } });
+ Users.update(userId, {$set: {username}});
}
},
toggleSystemMessages() {
@@ -342,13 +342,13 @@ Meteor.methods({
check(limit, Number);
Meteor.user().setShowCardsCountAt(limit);
},
- setEmail(email) {
+ setEmail(email, userId) {
check(email, String);
const existingUser = Users.findOne({ 'emails.address': email }, { fields: { _id: 1 } });
if (existingUser) {
throw new Meteor.Error('email-already-taken');
} else {
- Users.update(this.userId, {
+ Users.update(userId, {
$set: {
emails: [{
address: email,
@@ -358,11 +358,12 @@ Meteor.methods({
});
}
},
- setUsernameAndEmail(username, email) {
+ setUsernameAndEmail(username, email, userId) {
check(username, String);
check(email, String);
- Meteor.call('setUsername', username);
- Meteor.call('setEmail', email);
+ check(userId, String);
+ Meteor.call('setUsername', username, userId);
+ Meteor.call('setEmail', email, userId);
},
});