open-vault/ui/app/components/identity/lookup-input.js
Jordan Reimer 5c2a08de6d
Ember Upgrade to 3.24 (#13443)
* Update browserslist

* Add browserslistrc

* ember-cli-update --to 3.26, fix conflicts

* Run codemodes that start with ember-*

* More codemods - before cp*

* More codemods (curly data-test-*)

* WIP ember-basic-dropdown template errors

* updates ember-basic-dropdown and related deps to fix build issues

* updates basic dropdown instances to new version API

* updates more deps -- ember-template-lint is working again

* runs no-implicit-this codemod

* creates and runs no-quoteless-attributes codemod

* runs angle brackets codemod

* updates lint:hbs globs to only touch hbs files

* removes yield only templates

* creates and runs deprecated args transform

* supresses lint error for invokeAction on LinkTo component

* resolves remaining ambiguous path lint errors

* resolves simple-unless lint errors

* adds warnings for deprecated tagName arg on LinkTo components

* adds warnings for remaining curly component invocation

* updates global template lint rules

* resolves remaining template lint errors

* disables some ember specfic lint rules that target pre octane patterns

* js lint fix run

* resolves remaining js lint errors

* fixes test run

* adds npm-run-all dep

* fixes test attribute issues

* fixes console acceptance tests

* fixes tests

* adds yield only wizard/tutorial-active template

* fixes more tests

* attempts to fix more flaky tests

* removes commented out settled in transit test

* updates deprecations workflow and adds initializer to filter by version

* updates flaky policies acl old test

* updates to flaky transit test

* bumps ember deps down to LTS version

* runs linters after main merge

* fixes client count tests after bad merge conflict fixes

* fixes client count history test

* more updates to lint config

* another round of hbs lint fixes after extending stylistic rule

* updates lint-staged commands

* removes indent eslint rule since it seems to break things

* fixes bad attribute in transform-edit-form template

* test fixes

* fixes enterprise tests

* adds changelog

* removes deprecated ember-concurrency-test-waiters dep and adds @ember/test-waiters

* flaky test fix

Co-authored-by: hashishaw <cshaw@hashicorp.com>
2021-12-16 20:44:29 -07:00

67 lines
1.8 KiB
JavaScript

import { inject as service } from '@ember/service';
import Component from '@ember/component';
import { task } from 'ember-concurrency';
import { underscore } from 'vault/helpers/underscore';
export default Component.extend({
store: service(),
flashMessages: service(),
router: service(),
// Public API - either 'entity' or 'group'
// this will determine which adapter is used to make the lookup call
type: 'entity',
param: 'alias name',
paramValue: null,
aliasMountAccessor: null,
authMethods: null,
init() {
this._super(...arguments);
this.store.findAll('auth-method').then((methods) => {
this.set('authMethods', methods);
this.set('aliasMountAccessor', methods.get('firstObject.accessor'));
});
},
adapter() {
let type = this.type;
let store = this.store;
return store.adapterFor(`identity/${type}`);
},
data() {
let { param, paramValue, aliasMountAccessor } = this;
let data = {};
data[underscore([param])] = paramValue;
if (param === 'alias name') {
data.alias_mount_accessor = aliasMountAccessor;
}
return data;
},
lookup: task(function* () {
let flash = this.flashMessages;
let type = this.type;
let store = this.store;
let { param, paramValue } = this;
let response;
try {
response = yield this.adapter().lookup(store, this.data());
} catch (err) {
flash.danger(
`We encountered an error attempting the ${type} lookup: ${err.message || err.errors.join('')}.`
);
return;
}
if (response) {
return this.router.transitionTo('vault.cluster.access.identity.show', response.id, 'details');
} else {
flash.danger(`We were unable to find an identity ${type} with a "${param}" of "${paramValue}".`);
}
}),
});