From cdca4e831dfffc3e8b847a050997608036d136d9 Mon Sep 17 00:00:00 2001 From: Chelsea Shaw <82459713+hashishaw@users.noreply.github.com> Date: Fri, 25 Aug 2023 10:02:31 -0500 Subject: [PATCH] UI: Add transform for handling listing visibility (#20284) --- ui/app/models/mount-config.js | 5 ++-- ui/app/models/pki/role.js | 5 ---- ui/app/transforms/mount-visibility.js | 15 +++++++++++ ui/lib/core/addon/components/form-field.hbs | 20 +-------------- .../unit/transforms/mount-visibility-test.js | 25 +++++++++++++++++++ 5 files changed, 43 insertions(+), 27 deletions(-) create mode 100644 ui/app/transforms/mount-visibility.js create mode 100644 ui/tests/unit/transforms/mount-visibility-test.js diff --git a/ui/app/models/mount-config.js b/ui/app/models/mount-config.js index eb5358e4eb..f8d7d07714 100644 --- a/ui/app/models/mount-config.js +++ b/ui/app/models/mount-config.js @@ -32,11 +32,10 @@ export default class MountConfigModel extends Model { }) auditNonHmacResponseKeys; - @attr('string', { + @attr('mountVisibility', { editType: 'boolean', label: 'List method when unauthenticated', - trueValue: 'unauth', - falseValue: 'hidden', + defaultValue: false, }) listingVisibility; diff --git a/ui/app/models/pki/role.js b/ui/app/models/pki/role.js index ba26489db7..b7fe845fe6 100644 --- a/ui/app/models/pki/role.js +++ b/ui/app/models/pki/role.js @@ -133,7 +133,6 @@ export default class PkiRoleModel extends Model { label: 'Generate lease with certificate', subText: 'Specifies if certificates issued/signed against this role will have Vault leases attached to them.', - editType: 'boolean', docLink: '/vault/api-docs/secret/pki#create-update-role', }) generateLease; @@ -143,7 +142,6 @@ export default class PkiRoleModel extends Model { detailsLabel: 'Store in storage backend', // template reverses value subText: 'This can improve performance when issuing large numbers of certificates. However, certificates issued in this way cannot be enumerated or revoked.', - editType: 'boolean', docLink: '/vault/api-docs/secret/pki#create-update-role', }) noStore; @@ -152,7 +150,6 @@ export default class PkiRoleModel extends Model { label: 'Basic constraints valid for non-CA', detailsLabel: 'Add basic constraints', subText: 'Mark Basic Constraints valid when issuing non-CA certificates.', - editType: 'boolean', }) addBasicConstraints; /* End of overriding default options */ @@ -207,7 +204,6 @@ export default class PkiRoleModel extends Model { @attr('boolean', { label: 'Allow IP SANs', subText: 'Specifies if clients can request IP Subject Alternative Names.', - editType: 'boolean', defaultValue: true, }) allowIpSans; @@ -223,7 +219,6 @@ export default class PkiRoleModel extends Model { @attr('boolean', { label: 'Allow URI SANs template', subText: 'If true, the URI SANs above may contain templates, as with ACL Path Templating.', - editType: 'boolean', docLink: '/vault/docs/concepts/policies', }) allowUriSansTemplate; diff --git a/ui/app/transforms/mount-visibility.js b/ui/app/transforms/mount-visibility.js new file mode 100644 index 0000000000..8407b17066 --- /dev/null +++ b/ui/app/transforms/mount-visibility.js @@ -0,0 +1,15 @@ +import Transform from '@ember-data/serializer/transform'; + +/** + * correctly maps boolean values to the two options for listingVisibility + * attribute on seceret engines and auth engines + */ +export default class MountVisibilityTransform extends Transform { + deserialize(serialized) { + return serialized === 'unauth'; + } + + serialize(deserialized) { + return deserialized === true ? 'unauth' : 'hidden'; + } +} diff --git a/ui/lib/core/addon/components/form-field.hbs b/ui/lib/core/addon/components/form-field.hbs index 045e93cefd..144edd9021 100644 --- a/ui/lib/core/addon/components/form-field.hbs +++ b/ui/lib/core/addon/components/form-field.hbs @@ -67,24 +67,6 @@ {{/if}} {{/if}} - {{else if (and (eq @attr.type "string") (eq @attr.options.editType "boolean"))}} -