diff options
Diffstat (limited to 'app/assets/javascripts/profile/add_ssh_key_validation.js')
-rw-r--r-- | app/assets/javascripts/profile/add_ssh_key_validation.js | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/app/assets/javascripts/profile/add_ssh_key_validation.js b/app/assets/javascripts/profile/add_ssh_key_validation.js index 5c78de7ffb0..628dd159db8 100644 --- a/app/assets/javascripts/profile/add_ssh_key_validation.js +++ b/app/assets/javascripts/profile/add_ssh_key_validation.js @@ -1,8 +1,17 @@ export default class AddSshKeyValidation { - constructor(inputElement, warningElement, originalSubmitElement, confirmSubmitElement) { + constructor( + supportedAlgorithms, + inputElement, + warningElement, + originalSubmitElement, + confirmSubmitElement, + ) { this.inputElement = inputElement; this.form = inputElement.form; + this.supportedAlgorithms = supportedAlgorithms; + this.publicKeyRegExp = new RegExp(`^(${this.supportedAlgorithms.join('|')})`); + this.warningElement = warningElement; this.originalSubmitElement = originalSubmitElement; @@ -23,7 +32,7 @@ export default class AddSshKeyValidation { } submit(event) { - this.isValid = AddSshKeyValidation.isPublicKey(this.inputElement.value); + this.isValid = this.isPublicKey(this.inputElement.value); if (this.isValid) return true; @@ -37,7 +46,7 @@ export default class AddSshKeyValidation { this.originalSubmitElement.classList.toggle('hide', isVisible); } - static isPublicKey(value) { - return /^(ssh|ecdsa-sha2)-/.test(value); + isPublicKey(value) { + return this.publicKeyRegExp.test(value); } } |