Skip to content

Commit

Permalink
UI: [VAULT-19783] Set up root token warning modal (#23277)
Browse files Browse the repository at this point in the history
  • Loading branch information
kiannaquach committed Oct 12, 2023
1 parent 1b7b5a1 commit f155442
Show file tree
Hide file tree
Showing 9 changed files with 23 additions and 10 deletions.
3 changes: 3 additions & 0 deletions changelog/23277.txt
@@ -0,0 +1,3 @@
```release-note:improvement
ui: Add warning message to the namespace picker warning users about the behavior when logging in with a root token.
```
6 changes: 0 additions & 6 deletions ui/app/components/dashboard/vault-version-title.js
Expand Up @@ -25,10 +25,4 @@ export default class DashboardVaultVersionTitle extends Component {
? `Vault v${this.version.version.slice(0, this.version.version.indexOf('+'))}`
: `Vault v${this.version.version}`;
}

get namespaceDisplay() {
if (this.namespace.inRootNamespace) return 'root';
const parts = this.namespace.path?.split('/');
return parts[parts.length - 1];
}
}
2 changes: 1 addition & 1 deletion ui/app/controllers/vault/cluster/auth.js
Expand Up @@ -2,7 +2,6 @@
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/

import { inject as service } from '@ember/service';
import { alias } from '@ember/object/computed';
import Controller, { inject as controller } from '@ember/controller';
Expand Down Expand Up @@ -67,6 +66,7 @@ export default Controller.extend({
}
transition.followRedirects().then(() => {
if (isRoot) {
this.auth.set('isRootToken', true);
this.flashMessages.warning(
'You have logged in with a root token. As a security precaution, this root token will not be stored by your browser and you will need to re-authenticate after the window is closed or refreshed.'
);
Expand Down
1 change: 1 addition & 0 deletions ui/app/services/auth.js
Expand Up @@ -36,6 +36,7 @@ export default Service.extend({
expirationCalcTS: null,
isRenewing: false,
mfaErrors: null,
isRootToken: false,

get tokenExpired() {
const expiration = this.tokenExpirationDate;
Expand Down
8 changes: 8 additions & 0 deletions ui/app/services/namespace.js
Expand Up @@ -6,6 +6,7 @@
import { alias, equal } from '@ember/object/computed';
import Service, { inject as service } from '@ember/service';
import { task } from 'ember-concurrency';
import { computed } from '@ember/object';

const ROOT_NAMESPACE = '';
export default Service.extend({
Expand All @@ -20,6 +21,13 @@ export default Service.extend({

inRootNamespace: equal('path', ROOT_NAMESPACE),

currentNamespace: computed('inRootNamespace', 'path', function () {
if (this.inRootNamespace) return 'root';

const parts = this.path?.split('/');
return parts[parts.length - 1];
}),

setNamespace(path) {
if (!path) {
this.set('path', '');
Expand Down
Expand Up @@ -3,7 +3,7 @@
<h1 class="title is-3" data-test-dashboard-card-header="Vault version">
{{this.versionHeader}}
{{#if @version.isEnterprise}}
<Hds::Badge @text={{this.namespaceDisplay}} @icon="org" data-test-badge-namespace />
<Hds::Badge @text={{this.namespace.currentNamespace}} @icon="org" data-test-badge-namespace />
{{/if}}
</h1>
</p.levelLeft>
Expand Down
1 change: 0 additions & 1 deletion ui/app/templates/components/namespace-link.hbs
Expand Up @@ -2,7 +2,6 @@
Copyright (c) HashiCorp, Inc.
SPDX-License-Identifier: BUSL-1.1
~}}

<ExternalLink
@href={{this.namespaceLink}}
@sameTab={{true}}
Expand Down
9 changes: 9 additions & 0 deletions ui/app/templates/components/namespace-picker.hbs
Expand Up @@ -32,6 +32,15 @@
</div>
</div>
<div class="namespace-list {{if this.isAnimating 'animated-list'}}">
{{#if this.auth.isRootToken}}
<div class="has-left-margin-s has-right-margin-s">
<span><Icon @name="alert-triangle-fill" class="has-text-highlight" /></span>
<span class="is-size-8 has-text-semibold">
You are logged in with a root token and will have to reauthenticate when switching namespaces.
</span>
</div>
{{/if}}

<div class="is-mobile level-left">
{{#unless this.isUserRootNamespace}}
<NamespaceLink
Expand Down
1 change: 0 additions & 1 deletion ui/app/templates/vault/cluster.hbs
Expand Up @@ -2,7 +2,6 @@
Copyright (c) HashiCorp, Inc.
SPDX-License-Identifier: BUSL-1.1
~}}

<Sidebar::Nav::Cluster />
{{! Only show license banners for Enterprise }}
{{#if this.activeCluster.version.isEnterprise}}
Expand Down

0 comments on commit f155442

Please sign in to comment.