From 002768d72a19973366c34ff857bef0133c8aad37 Mon Sep 17 00:00:00 2001 From: Avital Oliver Date: Tue, 9 Oct 2012 22:28:31 -0700 Subject: [PATCH] accounts-ui: Validate username/email on login This resolves a strange error you get if you sign in with all fields empty --- .../login_buttons_dropdown.js | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/packages/accounts-ui-unstyled/login_buttons_dropdown.js b/packages/accounts-ui-unstyled/login_buttons_dropdown.js index efa092b840..b4e46780a0 100644 --- a/packages/accounts-ui-unstyled/login_buttons_dropdown.js +++ b/packages/accounts-ui-unstyled/login_buttons_dropdown.js @@ -348,14 +348,26 @@ var password = elementValueById('login-password'); var loginSelector; - if (username !== null) - loginSelector = {username: username}; - else if (email !== null) - loginSelector = {email: email}; - else if (usernameOrEmail !== null) - loginSelector = usernameOrEmail; - else + if (username !== null) { + if (!Accounts._loginButtons.validateUsername(username)) + return; + else + loginSelector = {username: username}; + } else if (email !== null) { + if (!Accounts._loginButtons.validateEmail(email)) + return; + else + loginSelector = {email: email}; + } else if (usernameOrEmail !== null) { + // XXX not sure how we should validate this. but this seems good enough (for now), + // since an email must have at least 3 characters anyways + if (!Accounts._loginButtons.validateUsername(usernameOrEmail)) + return; + else + loginSelector = usernameOrEmail; + } else { throw new Error("Unexpected -- no element to use as a login user selector"); + } Meteor.loginWithPassword(loginSelector, password, function (error, result) { if (error) {