Modify GeneratorPresets and PasswordGenerator directly
By modifying these objects, both the generator view and the generator presets view are affected.
This commit is contained in:
parent
d78e242b82
commit
0003a45efc
|
@ -9,9 +9,9 @@
|
|||
"url": "https://github.com/GrantMoyer/"
|
||||
},
|
||||
"resources": {
|
||||
"js": "xI48tPthMnRvBDqUtz0/eX1fNYCdpAFfNd8vswWsuGPucj4BYei2fntsqBBW3R8yaFsiuh5UV8Zz+7kb5AgP4UVOU0Rip9kFmrgCHGo8cvvEWQa9KDFBvv+OvotCSllxT9ise4LNtfXQtoRXXZdWAqPsjZ3nfKhI/Al3n8QghXteNWiuvwX4D85S0VPJpL/sY4dUblFRz+GLj0E2QRbWhBsU5ccvdP50GNo0QJvSuiD59VUd+bRnjpaB4YofuR59D6Y4qAFjZqGlMIlRM5h2tmD11GLDXa7ZTVbWy1zKwz/Cn6TjwMQXFqAhh4xshkPF/KeNfYW1csZ0lYTbgHUPRQ=="
|
||||
"js": "awImbm3h4cVUvt9b7hHs0PyzkGMVHp4zvk+/J8bXvePYok6KjRF7jPrmUxMHYhVX7n+F0TUQOl3S9UHIWPjBy1bYU5mwZD1ZS+/Gz5dBsrXK7Q0Jk/Cb8t9jtTcC5opKtZW3fGvvNCSzN+iKySJn14Q0gpmVlScMtw7S5P6RRz9z+QDP7vzo3UN9mhIi0E9b8S/wmoynGDTHivtuPoKbLdM1Sp/Qsuz3Rirkv8N+UTDbB3xYuCG9b3TvKDjXIHAcpMkKW4tOy9ALYBVWv3qgSy40JU0as/SGee24B1Q7bklVzbuM7b5TV2HYOLP6ZV5xw8I8fzcMdnXymPqwGbdm2A=="
|
||||
},
|
||||
"licence": "MIT",
|
||||
"url": "https://github.com/GrantMoyer/keeweb-plugin-passphrase-generator",
|
||||
"publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzOR25PG6eC40WZQvhia4tln4VEfafbuu+w1PQ88E4cJM6NZqZBxtJjA+0wMPHU+y2WlWMBgiEKanQYjy8JgNJSzUX3LvwzabnSb5EhJwyELvkqTlHupNhZXcQfCNc9awQSJT1wBnookq7r/CAHCPDaAS6EzdDKDOxTNiKYSp+hubln7bJwxgNfkL4WbapV1ZyJqU0Vcjl8btOoZpAWc0KtWqt893sBkuy8orcf8taChvtVWecW4zsBGRLKUG0WRN0t8zDpe+NHzL2JXyA/e44gahqbLuwXucg6zYGzFGxvKQAdNlQ/+tcBQ7nNUo13RahKpGGJVrzzDwVDcdJL0H8wIDAQAB"
|
||||
}
|
||||
}
|
|
@ -4,39 +4,49 @@
|
|||
* @license MIT
|
||||
*/
|
||||
|
||||
const { GeneratorView } = require('views/generator-view');
|
||||
const { GeneratorPresets } = require('comp/app/generator-presets')
|
||||
const Kdbxweb = require('kdbxweb');
|
||||
const { PasswordGenerator } = require('util/generators/password-generator');
|
||||
|
||||
let generatorViewGenerate = GeneratorView.prototype.generate;
|
||||
GeneratorView.prototype.generate = function() {
|
||||
if (!this.gen || this.gen.title !== 'passphrase') return generatorViewGenerate.apply(this);
|
||||
if (typeof this.gen.length !== 'number' || this.gen.length < 0) {
|
||||
let generatorPresetsBuiltIn = Object.getOwnPropertyDescriptor(GeneratorPresets, 'builtIn');
|
||||
Object.defineProperty(GeneratorPresets, 'builtInOriginal', generatorPresetsBuiltIn);
|
||||
Object.defineProperty(GeneratorPresets, 'builtIn', {
|
||||
get: function() {
|
||||
const presets = this.builtInOriginal;
|
||||
presets.push({
|
||||
name: 'passphrase',
|
||||
title: 'passphrase',
|
||||
type: 'passphrase',
|
||||
builtIn: true,
|
||||
options: [{
|
||||
name: 'dash',
|
||||
title: 'Use dash as word seperator',
|
||||
label: '-',
|
||||
type: 'checkbox'
|
||||
}],
|
||||
dash: true,
|
||||
length: 6
|
||||
})
|
||||
return presets;
|
||||
}
|
||||
})
|
||||
|
||||
let passwordGeneratorGenerate = PasswordGenerator.generate;
|
||||
PasswordGenerator.generate = function(preset) {
|
||||
if (preset.type !== 'passphrase') return passwordGeneratorGenerate(preset);
|
||||
if (typeof preset.length !== 'number' || preset.length < 0) {
|
||||
return '';
|
||||
}
|
||||
this.password = Array
|
||||
.from({length: this.gen.length}, _ => eff_large_wordlist()[get_random_index()])
|
||||
.join(' ');
|
||||
this.showPassword();
|
||||
const isLong = this.password.length > 32;
|
||||
this.resultEl.toggleClass('gen__result--long-pass', isLong);
|
||||
}
|
||||
|
||||
let generatorViewCreatePresets = GeneratorView.prototype.createPresets;
|
||||
GeneratorView.prototype.createPresets = function() {
|
||||
generatorViewCreatePresets.apply(this);
|
||||
this.presets.unshift({
|
||||
name: 'passphrase',
|
||||
title: 'passphrase',
|
||||
builtIn: true,
|
||||
length: 6
|
||||
});
|
||||
this.lengthToPseudoValue(this.presets[0]);
|
||||
const password = Array
|
||||
.from({length: preset.length}, _ => eff_large_wordlist()[get_random_index()])
|
||||
.join(preset.dash ? '-' : ' ');
|
||||
return password;
|
||||
}
|
||||
|
||||
module.exports.uninstall = function() {
|
||||
GeneratorView.prototype.generate = generatorViewGenerate;
|
||||
GeneratorView.prototype.createPresets = generatorViewCreatePresets;
|
||||
Object.defineProperty(GeneratorPresets, 'builtIn', generatorPresetsBuiltIn);
|
||||
Object.defineProperty(GeneratorPresets, 'builtInOriginal', {});
|
||||
PasswordGenerator.generate = passwordGeneratorGenerate;
|
||||
};
|
||||
|
||||
function get_random_index() {
|
||||
|
|
Loading…
Reference in New Issue