84 lines
3.3 KiB
Handlebars
84 lines
3.3 KiB
Handlebars
<BasicDropdown
|
|
@horizontalPosition="right"
|
|
@verticalPosition="below"
|
|
@renderInPlace={{true}}
|
|
class="sidebar-user-menu"
|
|
data-test-user-menu
|
|
as |Dropdown|
|
|
>
|
|
<Dropdown.Trigger data-test-user-menu-trigger>
|
|
<Hds::SideNav::Header::IconButton @icon="user" @ariaLabel="User menu" />
|
|
</Dropdown.Trigger>
|
|
<Dropdown.Content>
|
|
<Confirm as |c|>
|
|
<div class="popup-menu-content" data-test-user-menu-content>
|
|
<div class="box">
|
|
<div class="menu-label">
|
|
{{capitalize this.auth.authData.displayName}}
|
|
</div>
|
|
<nav class="menu">
|
|
<ul class="menu-list">
|
|
{{#if this.auth.allowExpiration}}
|
|
<li class="token-alert is-flex" data-test-user-menu-item="token alert">
|
|
<span><Icon @name="alert-triangle-fill" class="has-text-highlight" /></span>
|
|
<span class="is-size-8 has-text-semibold">
|
|
We've stopped auto-renewing your token due to inactivity. It will expire on
|
|
{{date-format this.auth.tokenExpirationDate "MMMM do yyyy, h:mm:ss a"}}.
|
|
</span>
|
|
</li>
|
|
{{/if}}
|
|
{{#if this.hasEntityId}}
|
|
<li class="action">
|
|
<LinkTo @route="vault.cluster.mfa-setup" data-test-user-menu-item="mfa">
|
|
Multi-factor authentication
|
|
</LinkTo>
|
|
</li>
|
|
{{/if}}
|
|
<li class="action" id="container">
|
|
<CopyButton
|
|
@clipboardText={{this.auth.currentToken}}
|
|
class="link"
|
|
@buttonType="button"
|
|
@success={{action (set-flash-message "Token copied!")}}
|
|
@container="#container"
|
|
>
|
|
Copy token
|
|
</CopyButton>
|
|
</li>
|
|
{{#if (is-before (now interval=1000) this.auth.tokenExpirationDate)}}
|
|
{{#if this.auth.authData.renewable}}
|
|
<li class="action">
|
|
<button
|
|
type="button"
|
|
{{on "click" this.renewToken}}
|
|
class="link button {{if this.isRenewing 'is-loading'}}"
|
|
data-test-user-menu-item="renew token"
|
|
>
|
|
Renew token
|
|
</button>
|
|
</li>
|
|
{{/if}}
|
|
<li class="action">
|
|
<c.Message
|
|
@id={{get this.auth "authData.displayName"}}
|
|
@title={{concat "Revoke " (get this.auth "authData.displayName") "?"}}
|
|
@onConfirm={{action "revokeToken"}}
|
|
@message="You will not be able to log in again with this token."
|
|
@triggerText="Revoke token"
|
|
@confirmButtonText="Revoke"
|
|
data-test-user-menu-item="revoke token"
|
|
/>
|
|
</li>
|
|
{{/if}}
|
|
<li class="action">
|
|
<LinkTo @route="vault.cluster.logout" @model={{this.currentCluster.cluster.name}} id="logout">
|
|
Log out
|
|
</LinkTo>
|
|
</li>
|
|
</ul>
|
|
</nav>
|
|
</div>
|
|
</div>
|
|
</Confirm>
|
|
</Dropdown.Content>
|
|
</BasicDropdown> |