vault/ui/app/components/page/methods.hbs
Vault Automation 9932623861
UI: Feature Descriptions (#12737) (#13055)
* add and update feature descriptions

* add description doc links, improve spacing,  remove dividers

* update tests

* Update ui/app/components/recovery/page/snapshots/load.hbs



* update seal action and tests

* use description argument for simple descriptions

* clean up

* update with finalized descriptions

* updated policy descriptions

* update client count description

* fix typo and update tests

* update tests

* more test updates

* Apply suggestions from code review



---------

Co-authored-by: lane-wetmore <lane.wetmore@hashicorp.com>
Co-authored-by: Kianna <30884335+kiannaquach@users.noreply.github.com>
2026-03-18 11:03:29 -05:00

156 lines
No EOL
5.4 KiB
Handlebars

{{!
Copyright IBM Corp. 2016, 2025
SPDX-License-Identifier: BUSL-1.1
}}
{{#if this.showPageHeader}}
<Page::Header @title="Authentication methods">
<:breadcrumbs>
<Page::Breadcrumbs @breadcrumbs={{@breadcrumbs}} />
</:breadcrumbs>
<:description>
Configure authentication methods for accessing Vault.
<Hds::Link::Inline @isHrefExternal={{true}} @href={{doc-link "/vault/gui/mfa"}}>
Learn more
</Hds::Link::Inline>
</:description>
<:actions>
{{#if this.showIntroButton}}
<Hds::Button
class="has-right-margin-4"
@color="secondary"
@icon="bulb"
@text="New to Auth methods?"
{{on "click" this.showIntroPage}}
data-test-button="intro"
/>
{{/if}}
</:actions>
</Page::Header>
{{/if}}
{{#if this.showWizard}}
<Wizard::Methods::MethodsWizard @isIntroModal={{this.shouldRenderIntroModal}} @onRefresh={{this.refreshMethodsList}} />
{{/if}}
{{#if this.showContent}}
<Toolbar>
<ToolbarFilters>
<SearchSelect
@id="filter-by-auth-type"
@options={{this.authMethodArrayByType}}
@selectLimit="1"
@disallowNewItems={{true}}
@fallbackComponent="input-search"
@onChange={{this.filterAuthType}}
@placeholder={{"Filter by auth type"}}
@displayInherit={{true}}
@inputValue={{if this.selectedAuthType (array this.selectedAuthType)}}
@disabled={{if this.selectedAuthName true false}}
class="is-marginless"
/>
<SearchSelect
@id="filter-by-auth-name"
@options={{this.authMethodArrayByName}}
@selectLimit="1"
@disallowNewItems={{true}}
@fallbackComponent="input-search"
@onChange={{this.filterAuthName}}
@placeholder={{"Filter by auth name"}}
@displayInherit={{true}}
@inputValue={{if this.selectedAuthName (array this.selectedAuthName)}}
class="is-marginless has-left-padding-s"
/>
</ToolbarFilters>
<ToolbarActions>
<ToolbarLink @route="vault.cluster.settings.auth.enable" @type="add" data-test-auth-enable>
Enable new method
</ToolbarLink>
</ToolbarActions>
</Toolbar>
{{#each (this.sortMethods this.authMethodList) as |method|}}
<LinkedBlock
@params={{array "vault.cluster.access.method" method.id}}
class="list-item-row"
data-test-linked-block={{or method.id method.accessor}}
>
<div class="level is-mobile">
<div>
<div class="is-grid align-items-center linked-block-title">
<Hds::TooltipButton
@text={{method.methodType}}
aria-label="Type of auth mount"
data-test-button={{method.methodType}}
>
<Icon @name={{method.icon}} class="has-text-grey-light" />
</Hds::TooltipButton>
<span class="has-text-weight-semibold has-text-black overflow-wrap">
{{method.path}}
</span>
<br />
<code class="has-text-grey is-size-8">
{{method.accessor}}
</code>
</div>
</div>
<div class="level-right is-flex is-paddingless is-marginless">
<div class="level-item">
<Hds::Dropdown @isInline={{true}} @listPosition="bottom-right" as |dd|>
<dd.ToggleIcon
@icon="more-horizontal"
@text="Overflow options"
@hasChevron={{false}}
data-test-popup-menu-trigger
/>
<dd.Interactive @route="vault.cluster.access.method.section" @models={{array method.id "configuration"}}>
View configuration
</dd.Interactive>
{{#if
(or
(has-capability @model.capabilities "update" pathKey="authMethodConfig" params=method.id)
(and
(eq method.methodType "aws")
(has-capability @model.capabilities "update" pathKey="authMethodConfigAws" params=method.id)
)
)
}}
<dd.Interactive @route="vault.cluster.settings.auth.configure" @model={{method.id}}>
Edit configuration
</dd.Interactive>
{{/if}}
{{#if
(and
(not-eq method.methodType "token")
(has-capability @model.capabilities "delete" pathKey="authMethodDelete" params=method.id)
)
}}
<dd.Interactive
@color="critical"
{{on "click" (fn (mut this.methodToDisable) method)}}
data-test-button="Disable auth method"
>
Disable
</dd.Interactive>
{{/if}}
</Hds::Dropdown>
</div>
</div>
</div>
</LinkedBlock>
{{else}}
<Hds::ApplicationState class="top-padding-32 is-marginless" as |A|>
<A.Header @title="No Authentication Methods found" @titleTag="h2" data-test-empty-state-title />
</Hds::ApplicationState>
{{/each}}
{{#if this.methodToDisable}}
<ConfirmModal
@color="critical"
@confirmTitle="Disable method?"
@confirmMessage="This may affect access to Vault data."
@onClose={{fn (mut this.methodToDisable) null}}
@onConfirm={{perform this.disableMethod this.methodToDisable}}
/>
{{/if}}
{{/if}}