From 22e369804b2a6ed82a6da2c469519cd7252693a0 Mon Sep 17 00:00:00 2001 From: Thuan Pham Quoc Date: Fri, 1 Dec 2017 15:55:53 +0700 Subject: Allow admin to change user password in admin panel --- client/components/settings/peopleBody.jade | 7 ++++--- client/components/settings/peopleBody.js | 14 ++++++++------ models/users.js | 7 +++++++ 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 @@ -67,9 +67,6 @@ template(name="editUserPopup") span.error.hide.username-taken | {{_ '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 @@ -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) { -- cgit v1.2.3-1-g7c22 From 3a391d5539aff500e4f6a438fd4c9bc4d19a1ec4 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 2 Dec 2017 21:01:40 +0200 Subject: Change password of any user in Standalone Wekan Admin Panel. Thanks to thuanpq ! --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a63c8a7b..ec2ecaf0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +# Upcoming Wekan release + +This release adds the following new features: + +* [Change password of any user in Standalone Wekan Admin Panel](https://github.com/wekan/wekan/pull/1372). + +Thanks to GitHub user thuanpq for contributions. + # v0.60 2017-11-29 Wekan release This release adds the following new features: -- cgit v1.2.3-1-g7c22