From b006eda9f08cf7a758b875a4f63f9d4f8e1edcd2 Mon Sep 17 00:00:00 2001 From: Kevin Ansfield Date: Tue, 15 Dec 2015 21:51:36 +0000 Subject: [PATCH] Fix password reset closes #6229 - removes `_super` call in the reset route's `setupController` hook to avoid a `model` property being set which was being picked up by the validation engine - throw the error if we fail in the password reset process from something we aren't expecting --- ghost/admin/app/controllers/reset.js | 8 ++++++-- ghost/admin/app/routes/reset.js | 1 - 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ghost/admin/app/controllers/reset.js b/ghost/admin/app/controllers/reset.js index 5f997e780c..29a2b97204 100644 --- a/ghost/admin/app/controllers/reset.js +++ b/ghost/admin/app/controllers/reset.js @@ -37,7 +37,7 @@ export default Controller.extend(ValidationEngine, { let credentials = this.getProperties('newPassword', 'ne2Password', 'token'); this.set('flowErrors', ''); - this.get('hasValidated').addObjects((['newPassword', 'ne2Password'])); + this.get('hasValidated').addObjects(['newPassword', 'ne2Password']); this.validate().then(() => { this.toggleProperty('submitting'); ajax({ @@ -54,7 +54,7 @@ export default Controller.extend(ValidationEngine, { this.get('notifications').showAPIError(response, {key: 'password.reset'}); this.toggleProperty('submitting'); }); - }).catch(() => { + }).catch((error) => { if (this.get('errors.newPassword')) { this.set('flowErrors', this.get('errors.newPassword')[0].message); } @@ -62,6 +62,10 @@ export default Controller.extend(ValidationEngine, { if (this.get('errors.ne2Password')) { this.set('flowErrors', this.get('errors.ne2Password')[0].message); } + + if (this.get('errors.length') === 0) { + throw error; + } }); } } diff --git a/ghost/admin/app/routes/reset.js b/ghost/admin/app/routes/reset.js index e8793dd866..711359eb44 100644 --- a/ghost/admin/app/routes/reset.js +++ b/ghost/admin/app/routes/reset.js @@ -19,7 +19,6 @@ export default Route.extend(styleBody, { }, setupController(controller, params) { - this._super(...arguments); controller.token = params.token; },