From 72b327f196b705c294ba623eb859b6ca5e3dad94 Mon Sep 17 00:00:00 2001 From: Nick Martin Date: Wed, 26 Sep 2012 16:55:46 -0700 Subject: [PATCH] Remove enrollAccount as a separate method and token. Just use resetPassword. --- packages/accounts-password/email_tests.js | 2 +- .../accounts-password/passwords_client.js | 26 ------------------- .../accounts-password/passwords_server.js | 26 +++---------------- packages/accounts-ui/login_buttons.js | 2 +- 4 files changed, 6 insertions(+), 50 deletions(-) diff --git a/packages/accounts-password/email_tests.js b/packages/accounts-password/email_tests.js index fbfaa5fc51..526f25b1c1 100644 --- a/packages/accounts-password/email_tests.js +++ b/packages/accounts-password/email_tests.js @@ -172,7 +172,7 @@ getEnrollAccountToken(email4, test, expect); }, function (test, expect) { - Meteor.enrollAccount(enrollAccountToken, 'password', expect(function(error) { + Meteor.resetPassword(enrollAccountToken, 'password', expect(function(error) { test.isFalse(error); })); }, diff --git a/packages/accounts-password/passwords_client.js b/packages/accounts-password/passwords_client.js index 36af1955fe..83b066042f 100644 --- a/packages/accounts-password/passwords_client.js +++ b/packages/accounts-password/passwords_client.js @@ -163,32 +163,6 @@ }); }; - // Sets a user's first password based on a token originally created by - // Meteor.enrollAccount, and then logs in the matching user. - // - // @param token {String} - // @param password {String} - // @param callback (optional) {Function(error|undefined)} - Meteor.enrollAccount = function(token, password, callback) { - if (!token) - throw new Error("Need to pass token"); - if (!password) - throw new Error("Need to pass password"); - - var verifier = Meteor._srp.generateVerifier(password); - Meteor.apply( - "enrollAccount", [token, verifier], {wait: true}, - function (error, result) { - if (error || !result) { - error = error || new Error("No result from call to enrollAccount"); - callback && callback(error); - } - - Meteor.accounts.makeClientLoggedIn(result.id, result.token); - callback && callback(); - }); - }; - // Validates a user's email address based on a token originally // created by Meteor.accounts.sendValidationEmail // diff --git a/packages/accounts-password/passwords_server.js b/packages/accounts-password/passwords_server.js index 530e73763a..5e6189ffc5 100644 --- a/packages/accounts-password/passwords_server.js +++ b/packages/accounts-password/passwords_server.js @@ -138,35 +138,17 @@ var user = Meteor.users.findOne({"services.password.reset.token": token}); if (!user) - throw new Meteor.Error(403, "Reset password link expired"); + throw new Meteor.Error(403, "Token expired"); Meteor.users.update({_id: user._id}, { $set: {'services.password.srp': newVerifier}, $unset: {'services.password.reset': 1} }); - - var loginToken = Meteor.accounts._loginTokens.insert({userId: user._id}); - this.setUserId(user._id); - return {token: loginToken, id: user._id}; - }, - - enrollAccount: function (token, newVerifier) { - if (!token) - throw new Meteor.Error(400, "Need to pass token"); - if (!newVerifier) - throw new Meteor.Error(400, "Need to pass newVerifier"); - - var user = Meteor.users.findOne({"services.password.enroll.token": token}); - if (!user) - throw new Meteor.Error(403, "Enroll account link expired"); - - Meteor.users.update({_id: user._id}, { - $set: {'services.password.srp': newVerifier}, - $unset: {'services.password.enroll': 1} - }); + // verify their email. they got the password reset email. Meteor.users.update({_id: user._id}, {$set: {"emails.0.validated": true}}); + var loginToken = Meteor.accounts._loginTokens.insert({userId: user._id}); this.setUserId(user._id); return {token: loginToken, id: user._id}; @@ -229,7 +211,7 @@ var token = Meteor.uuid(); var when = +(new Date); Meteor.users.update(userId, {$set: { - "services.password.enroll": { + "services.password.reset": { token: token, when: when } diff --git a/packages/accounts-ui/login_buttons.js b/packages/accounts-ui/login_buttons.js index 6861b73231..9aef68559c 100644 --- a/packages/accounts-ui/login_buttons.js +++ b/packages/accounts-ui/login_buttons.js @@ -424,7 +424,7 @@ if (!validatePassword(password)) return; - Meteor.enrollAccount( + Meteor.resetPassword( Session.get(ENROLL_ACCOUNT_TOKEN_KEY), password, function (error) { if (error) {