summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--client/components/settings/peopleBody.jade7
-rw-r--r--client/components/settings/peopleBody.js14
-rw-r--r--models/users.js7
3 files changed, 19 insertions, 9 deletions
diff --git a/client/components/settings/peopleBody.jade b/client/components/settings/peopleBody.jade
index d6568720..a3506a24 100644
--- a/client/components/settings/peopleBody.jade
+++ b/client/components/settings/peopleBody.jade
@@ -68,9 +68,6 @@ template(name="editUserPopup")
| {{_ 'error-username-taken'}}
input.js-profile-username(type="text" value=user.username)
label
- | {{_ 'initials'}}
- input.js-profile-initials(type="text" value=user.profile.initials)
- label
| {{_ 'email'}}
span.error.hide.email-taken
| {{_ 'error-email-taken'}}
@@ -85,5 +82,9 @@ template(name="editUserPopup")
select.select-active.js-profile-isactive
option(value="false") {{_ 'yes'}}
option(value="true" selected="{{user.loginDisabled}}") {{_ 'no'}}
+ hr
+ label
+ | {{_ 'password'}}
+ input.js-profile-password(type="password")
input.primary.wide(type="submit" value="{{_ 'save'}}")
diff --git a/client/components/settings/peopleBody.js b/client/components/settings/peopleBody.js
index d0da60d0..7cc992f2 100644
--- a/client/components/settings/peopleBody.js
+++ b/client/components/settings/peopleBody.js
@@ -87,24 +87,26 @@ Template.editUserPopup.events({
const user = Users.findOne(this.userId);
const fullname = tpl.find('.js-profile-fullname').value.trim();
const username = tpl.find('.js-profile-username').value.trim();
- const initials = tpl.find('.js-profile-initials').value.trim();
+ const password = tpl.find('.js-profile-password').value;
const isAdmin = tpl.find('.js-profile-isadmin').value.trim();
const isActive = tpl.find('.js-profile-isactive').value.trim();
const email = tpl.find('.js-profile-email').value.trim();
- let isChangeUserName = false;
- let isChangeEmail = false;
+
+ const isChangePassword = password.length > 0;
+ const isChangeUserName = username !== user.username;
+ const isChangeEmail = email.toLowerCase() !== user.emails[0].address.toLowerCase();
Users.update(this.userId, {
$set: {
'profile.fullname': fullname,
- 'profile.initials': initials,
'isAdmin': isAdmin === 'true',
'loginDisabled': isActive === 'true',
},
});
- isChangeUserName = username !== user.username;
- isChangeEmail = email.toLowerCase() !== user.emails[0].address.toLowerCase();
+ if(isChangePassword){
+ Meteor.call('setPassword', password, this.userId);
+ }
if (isChangeUserName && isChangeEmail) {
Meteor.call('setUsernameAndEmail', username, email.toLowerCase(), this.userId, function (error) {
diff --git a/models/users.js b/models/users.js
index 11a53ce6..92cee9f6 100644
--- a/models/users.js
+++ b/models/users.js
@@ -372,6 +372,13 @@ Meteor.methods({
Meteor.call('setUsername', username, userId);
Meteor.call('setEmail', email, userId);
},
+ setPassword(newPassword, userId) {
+ check(userId, String);
+ check(newPassword, String);
+ if(Meteor.user().isAdmin){
+ Accounts.setPassword(userId, newPassword);
+ }
+ },
});
if (Meteor.isServer) {