diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/internet.js | 60 |
1 files changed, 51 insertions, 9 deletions
diff --git a/lib/internet.js b/lib/internet.js index 4b0bfd8a..0de5ef65 100644 --- a/lib/internet.js +++ b/lib/internet.js @@ -1,5 +1,4 @@ -var password_generator = require('../vendor/password-generator.js'), - random_ua = require('../vendor/user-agent'); +var random_ua = require('../vendor/user-agent'); /** * @@ -332,13 +331,56 @@ var Internet = function (faker) { * @param {string} pattern * @param {string} prefix */ - self.password = function (len, memorable, pattern, prefix) { - len = len || 15; - if (typeof memorable === "undefined") { - memorable = false; - } - return password_generator(len, memorable, pattern, prefix); - } + self.password = function (len, memorable, pattern, prefix) { + len = len || 15; + if (typeof memorable === "undefined") { + memorable = false; + } + /* + * password-generator ( function ) + * Copyright(c) 2011-2013 Bermi Ferrer <[email protected]> + * MIT Licensed + */ + var consonant, letter, password, vowel; + letter = /[a-zA-Z]$/; + vowel = /[aeiouAEIOU]$/; + consonant = /[bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ]$/; + var _password = function (length, memorable, pattern, prefix) { + var char, n; + if (length == null) { + length = 10; + } + if (memorable == null) { + memorable = true; + } + if (pattern == null) { + pattern = /\w/; + } + if (prefix == null) { + prefix = ''; + } + if (prefix.length >= length) { + return prefix; + } + if (memorable) { + if (prefix.match(consonant)) { + pattern = vowel; + } else { + pattern = consonant; + } + } + n = faker.random.number(94) + 33; + char = String.fromCharCode(n); + if (memorable) { + char = char.toLowerCase(); + } + if (!char.match(pattern)) { + return _password(length, memorable, pattern, prefix); + } + return _password(length, memorable, pattern, "" + prefix + char); + }; + return _password(len, memorable, pattern, prefix); + } self.password.schema = { "description": "Generates a random password.", |
