Merge pull request #3760 from hashicorp/ui-updates

Updates the web UI to escape invalid characters in keys.
This commit is contained in:
James Phillips 2017-12-20 13:47:20 -08:00 committed by GitHub
commit a404f3664c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 50 additions and 33 deletions

View File

@ -6,6 +6,8 @@ IMPROVEMENTS:
BUG FIXES: BUG FIXES:
* ui: Added a URI escape around key/value keys so that it's not possible to create unexpected partial key names when entering characters like `?` inside a key. [GH-3760]
## 1.0.2 (December 15, 2017) ## 1.0.2 (December 15, 2017)
IMPROVEMENTS: IMPROVEMENTS:

File diff suppressed because one or more lines are too long

View File

@ -132,6 +132,21 @@ App.Key = Ember.Object.extend(Ember.Validations.Mixin, {
// Boolean if the value is valid // Boolean if the value is valid
valueValid: Ember.computed.empty('errors.Value'), valueValid: Ember.computed.empty('errors.Value'),
// Escape any user-entered parts that aren't URL-safe, but put slashes back since
// they are common in keys, and the UI lets users make "folders" by simply adding
// them to keys.
Key: function(key, value) {
// setter
if (arguments.length > 1) {
clean = encodeURIComponent(decodeURIComponent(value)).replace(/%2F/g, "/")
this.set('cleanKey', clean);
return clean;
}
// getter
return this.get('cleanKey')
}.property('Key'),
// The key with the parent removed. // The key with the parent removed.
// This is only for display purposes, and used for // This is only for display purposes, and used for
// showing the key name inside of a nested key. // showing the key name inside of a nested key.