mirror of
https://github.com/optim-enterprises-bv/vault.git
synced 2025-10-29 01:32:33 +00:00
Fixes redirects to KV engine when secret is a directory (#24281)
* fix * changelog * Update 24281.txt * add test coverage * dont make assumptions about list
This commit is contained in:
3
changelog/24281.txt
Normal file
3
changelog/24281.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
```release-note:bug
|
||||
ui: Correctly handle directory redirects from pre 1.15.0 Kv v2 list view urls.
|
||||
```
|
||||
@@ -140,7 +140,7 @@ export default class DashboardQuickActionsCard extends Component {
|
||||
@action
|
||||
navigateToPage() {
|
||||
let route = this.searchSelectParams.route;
|
||||
// If search-select falls back to stringInput, paramVlue is a string not object
|
||||
// If search-select falls back to stringInput, paramValue is a string not object
|
||||
let param = this.paramValue.id || this.paramValue;
|
||||
|
||||
// kv has a special use case where if the paramValue ends in a '/' you should
|
||||
|
||||
@@ -11,6 +11,7 @@ import { allEngines, isAddonEngine } from 'vault/helpers/mountable-secret-engine
|
||||
import { inject as service } from '@ember/service';
|
||||
import { normalizePath } from 'vault/utils/path-encoding-helpers';
|
||||
import { assert } from '@ember/debug';
|
||||
import { pathIsDirectory } from 'kv/utils/kv-breadcrumbs';
|
||||
|
||||
const SUPPORTED_BACKENDS = supportedSecretBackends();
|
||||
|
||||
@@ -77,6 +78,9 @@ export default Route.extend({
|
||||
return this.router.replaceWith('vault.cluster.secrets.backend.list', secret + '/');
|
||||
}
|
||||
if (isAddonEngine(type, secretEngine.version)) {
|
||||
if (engineRoute === 'kv.list' && pathIsDirectory(secret)) {
|
||||
return this.router.transitionTo('vault.cluster.secrets.backend.kv.list-directory', backend, secret);
|
||||
}
|
||||
return this.router.transitionTo(`vault.cluster.secrets.backend.${engineRoute}`, backend);
|
||||
}
|
||||
const modelType = this.getModelType(backend, tab);
|
||||
|
||||
@@ -207,6 +207,13 @@ module('Acceptance | kv-v2 workflow | navigation', function (hooks) {
|
||||
await click(PAGE.breadcrumbAtIdx(1));
|
||||
assert.ok(currentURL().startsWith(`/vault/secrets/${backend}/kv/list`), 'links back to list root');
|
||||
});
|
||||
test('is redirects to nested secret using old non-engine url (a)', async function (assert) {
|
||||
// Reported bug, backported fix https://github.com/hashicorp/vault/pull/24281
|
||||
assert.expect(1);
|
||||
const backend = this.backend;
|
||||
await visit(`/vault/secrets/${backend}/list/app/`);
|
||||
assert.strictEqual(currentURL(), `/vault/secrets/${backend}/kv/list/app/`);
|
||||
});
|
||||
test('versioned secret nav, tabs, breadcrumbs (a)', async function (assert) {
|
||||
assert.expect(45);
|
||||
const backend = this.backend;
|
||||
|
||||
Reference in New Issue
Block a user