diff --git a/public/src/client/reset_code.js b/public/src/client/reset_code.js index abbc4582db..678edf987a 100644 --- a/public/src/client/reset_code.js +++ b/public/src/client/reset_code.js @@ -13,7 +13,7 @@ define('forum/reset_code', function() { noticeEl = $('#notice'); resetEl.on('click', function() { - if (password.val().length < 6) { + if (password.val().length < config.minimumPasswordLength) { app.alertError('[[reset_password:password_too_short]]'); } else if (password.val() !== repeat.val()) { app.alertError('[[reset_password:passwords_do_not_match]]'); diff --git a/src/controllers/authentication.js b/src/controllers/authentication.js index beb319b04c..043776eda2 100644 --- a/src/controllers/authentication.js +++ b/src/controllers/authentication.js @@ -52,11 +52,7 @@ authenticationController.register = function(req, res, next) { return next(new Error('[[error:username-too-long')); } - if (!userData.password || userData.password.length < meta.config.minimumPasswordLength) { - return next(new Error('[[user:change_password_error_length]]')); - } - - next(); + user.isPasswordValid(userData.password, next); }, function(next) { plugins.fireHook('filter:register.check', {req: req, res: res, userData: userData}, next); diff --git a/src/user/create.js b/src/user/create.js index 1a6e2a40e8..ed04c2cd75 100644 --- a/src/user/create.js +++ b/src/user/create.js @@ -157,7 +157,7 @@ module.exports = function(User) { }, passwordValid: function(next) { if (userData.password) { - next(!utils.isPasswordValid(userData.password) ? new Error('[[error:invalid-password]]') : null); + User.isPasswordValid(userData.password, next); } else { next(); } @@ -179,6 +179,17 @@ module.exports = function(User) { }); }; + User.isPasswordValid = function(password, callback) { + if (!password || !utils.isPasswordValid(password)) { + return callback(new Error('[[error:invalid-password]]')); + } + + if (password.length < meta.config.minimumPasswordLength) { + return callback(new Error('[[user:change_password_error_length]]')); + } + callback(); + }; + function renameUsername(userData, callback) { meta.userOrGroupExists(userData.userslug, function(err, exists) { if (err || !exists) { diff --git a/src/user/reset.js b/src/user/reset.js index e9a5e46c1a..26acc5ecbc 100644 --- a/src/user/reset.js +++ b/src/user/reset.js @@ -77,6 +77,9 @@ var async = require('async'), UserReset.commit = function(code, password, callback) { var uid; async.waterfall([ + function(next) { + user.isPasswordValid(password, next); + }, function(next) { UserReset.validate(code, next); },