From 3892b5bf265671e0b4429fa009874fe41190df1f Mon Sep 17 00:00:00 2001 From: Chelsea Shaw Date: Wed, 17 Jun 2020 15:24:10 -0500 Subject: [PATCH] UI: Disallow kv2 with too large 'max versions' value (#9242) --- ui/app/components/secret-edit.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/ui/app/components/secret-edit.js b/ui/app/components/secret-edit.js index 96d224497d0b..2af4d578474d 100644 --- a/ui/app/components/secret-edit.js +++ b/ui/app/components/secret-edit.js @@ -262,7 +262,7 @@ export default Component.extend(FocusOnInsertMixin, WithNavToNearestAncestor, { this.flashMessages.success('Secret Successfully Wrapped!'); }) .catch(() => { - this.flashMessages.error('Could Not Wrap Secret'); + this.flashMessages.danger('Could Not Wrap Secret'); }) .finally(() => { this.set('isWrapping', false); @@ -276,7 +276,7 @@ export default Component.extend(FocusOnInsertMixin, WithNavToNearestAncestor, { this.flashMessages.success('Secret Successfully Wrapped!'); }) .catch(() => { - this.flashMessages.error('Could Not Wrap Secret'); + this.flashMessages.danger('Could Not Wrap Secret'); }) .finally(() => { this.set('isWrapping', false); @@ -294,16 +294,23 @@ export default Component.extend(FocusOnInsertMixin, WithNavToNearestAncestor, { }, handleCopyError() { - this.flashMessages.error('Could Not Copy Wrapped Data'); + this.flashMessages.danger('Could Not Copy Wrapped Data'); this.send('clearWrappedData'); }, createOrUpdateKey(type, event) { event.preventDefault(); + const MAXIMUM_VERSIONS = 9999999999999999; let model = this.modelForData; + let secret = this.model; // prevent from submitting if there's no key - // maybe do something fancier later if (type === 'create' && isBlank(model.path || model.id)) { + this.flashMessages.danger('Please provide a path for the secret'); + return; + } + const maxVersions = secret.get('maxVersions'); + if (MAXIMUM_VERSIONS < maxVersions) { + this.flashMessages.danger('Max versions is too large'); return; }