diff --git a/packages/rocketchat-authorization/server/startup.coffee b/packages/rocketchat-authorization/server/startup.coffee index 1fc3643b4d2..663f7354970 100644 --- a/packages/rocketchat-authorization/server/startup.coffee +++ b/packages/rocketchat-authorization/server/startup.coffee @@ -27,6 +27,9 @@ Meteor.startup -> { _id: 'edit-other-user-info', roles : ['admin']} + { _id: 'edit-other-user-password', + roles : ['admin']} + { _id: 'assign-admin-role', roles : ['admin']} diff --git a/packages/rocketchat-lib/server/methods/updateUser.coffee b/packages/rocketchat-lib/server/methods/updateUser.coffee index 53f3536d0d8..2416d3d1184 100644 --- a/packages/rocketchat-lib/server/methods/updateUser.coffee +++ b/packages/rocketchat-lib/server/methods/updateUser.coffee @@ -23,4 +23,8 @@ Meteor.methods Meteor.runAsUser userData._id, -> Meteor.call 'setUsername', userData.username + canEditUserPassword = RocketChat.authz.hasPermission( user._id, 'edit-other-user-password') + if canEditUserPassword and userData.password.trim() + Accounts.setPassword userData._id, userData.password.trim() + return true diff --git a/packages/rocketchat-ui-admin/admin/users/adminUserEdit.coffee b/packages/rocketchat-ui-admin/admin/users/adminUserEdit.coffee index f089dff3bed..aeb9352b155 100644 --- a/packages/rocketchat-ui-admin/admin/users/adminUserEdit.coffee +++ b/packages/rocketchat-ui-admin/admin/users/adminUserEdit.coffee @@ -23,6 +23,7 @@ Template.adminUserEdit.onCreated -> userData = { _id: Template.currentData()._id } userData.name = $("#name", ".edit-form").val() userData.username = $("#username", ".edit-form").val() + userData.password = $("#password", ".edit-form").val() unless userData._id and userData.name toastr.error TAPi18n.__('The_field_is_required'), TAPi18n.__('Name') @@ -32,4 +33,4 @@ Template.adminUserEdit.onCreated -> toastr.success t('User_updated_successfully') instance.cancel() if error - toastr.error error.reason \ No newline at end of file + toastr.error error.reason diff --git a/packages/rocketchat-ui-admin/admin/users/adminUserEdit.html b/packages/rocketchat-ui-admin/admin/users/adminUserEdit.html index 686f999ffdb..f1e620f95f9 100644 --- a/packages/rocketchat-ui-admin/admin/users/adminUserEdit.html +++ b/packages/rocketchat-ui-admin/admin/users/adminUserEdit.html @@ -13,6 +13,12 @@ + {{#if hasPermission 'edit-other-user-password'}} +