From e8c221a8c000ced3685241e81e86dd702dab05a7 Mon Sep 17 00:00:00 2001 From: cleverbeagle Date: Mon, 31 Jul 2017 10:37:11 -0500 Subject: [PATCH] move handling of password change in profile to client --- imports/api/Users/server/edit-profile.js | 14 +------------- imports/api/Users/server/methods.js | 1 - imports/ui/pages/Profile/Profile.js | 13 +++++++++++-- 3 files changed, 12 insertions(+), 16 deletions(-) diff --git a/imports/api/Users/server/edit-profile.js b/imports/api/Users/server/edit-profile.js index fc4d236..fc44093 100644 --- a/imports/api/Users/server/edit-profile.js +++ b/imports/api/Users/server/edit-profile.js @@ -1,19 +1,9 @@ /* eslint-disable consistent-return */ import { Meteor } from 'meteor/meteor'; -import { Accounts } from 'meteor/accounts-base'; let action; -const updatePassword = (userId, newPassword) => { - try { - throw new Meteor.Error('500', 'Testing failures.'); - Accounts.setPassword(userId, newPassword, { logout: false }); - } catch (exception) { - action.reject(`[editProfile.updatePassword] ${exception}`); - } -}; - const updateUser = (userId, { emailAddress, profile }) => { try { Meteor.users.update(userId, { @@ -30,15 +20,13 @@ const updateUser = (userId, { emailAddress, profile }) => { const editProfile = ({ userId, profile }, promise) => { try { action = promise; - updateUser(userId, profile); - if (profile.password) updatePassword(userId, profile.password); + action.resolve(); } catch (exception) { action.reject(`[editProfile.handler] ${exception}`); } }; - export default options => new Promise((resolve, reject) => editProfile(options, { resolve, reject })); diff --git a/imports/api/Users/server/methods.js b/imports/api/Users/server/methods.js index 23d3929..80e34fc 100644 --- a/imports/api/Users/server/methods.js +++ b/imports/api/Users/server/methods.js @@ -7,7 +7,6 @@ Meteor.methods({ 'users.editProfile': function usersEditProfile(profile) { check(profile, { emailAddress: String, - password: Match.Optional(Object), profile: { name: { first: String, diff --git a/imports/ui/pages/Profile/Profile.js b/imports/ui/pages/Profile/Profile.js index dbb3738..b6b9aaa 100644 --- a/imports/ui/pages/Profile/Profile.js +++ b/imports/ui/pages/Profile/Profile.js @@ -92,8 +92,6 @@ class Profile extends React.Component { }, }; - if (this.newPassword.value) profile.password = Accounts._hashPassword(this.newPassword.value); - Meteor.call('users.editProfile', profile, (error) => { if (error) { Bert.alert(error.reason, 'danger'); @@ -101,6 +99,17 @@ class Profile extends React.Component { Bert.alert('Profile updated!', 'success'); } }); + + if (this.newPassword.value) { + Accounts.changePassword(this.currentPassword.value, this.newPassword.value, (error) => { + if (error) { + Bert.alert(error.reason, 'danger'); + } else { + this.currentPassword.value = ''; + this.newPassword.value = ''; + } + }); + } } renderOAuthUser(loading, user) {