open-vault/ui/app/routes/vault/cluster/access/method/item.js
Madalyn 977af116c8 Enable generated items for more auth methods (#7513)
* enable auth method item configuration in go code

* properly parse and list generated items

* make sure we only set name on attrs if a label comes from openAPI

* correctly construct paths object for method index route

* set sensitive property on password for userpass

* remove debugger statements

* pass method model to list route template to use paths on model for tabs

* update tab generation in generated item list, undo enabling userpass users

* enable openapi generated itams for certs and userpass, update ldap to no longer have action on list endpoint

* add editType to DisplayAttributes, pull tokenutil fields into field group

* show sensitive message for sensitive fields displayed in fieldGroupShow component

* grab sensitive and editType fields from displayAttrs in openapi-to-attrs util

* make sure we don't ask for paths for secret backends since that isn't setup yet

* fix styling of sensitive text for fieldGroupShow component

* update openapi-to-attrs util test to no longer include label by default, change debugger to console.err in path-help, remove dynamic ui auth methods from tab count test

* properly log errors to the console

* capitalize This value is sensitive...

* get rid of extra padding on bottom of fieldgroupshow

* make auth methods clickable and use new confirm ux

* Update sdk/framework/path.go

Co-Authored-By: Jim Kalafut <jkalafut@hashicorp.com>

* Update sdk/framework/path.go

Co-Authored-By: Jim Kalafut <jkalafut@hashicorp.com>

* add whitespace

* return intErr instead of err

* uncomment out helpUrl because we need it

* remove extra box class

* use const instead of let

* remove extra conditional since we already split the pathName later on

* ensure we request the correct url when listing generated items

* use const

* link to list and show pages

* remove dead code

* show nested item name instead of id

* add comments

* show tooltip for text-file inputs

* fix storybook

* remove extra filter

* add TODOs

* add comments

* comment out unused variables but leave them in function signature

* only link to auth methods that can be fully managed in the ui

* clean up comments

* only render tooltip if there is helpText

* rename id authMethodPath

* remove optionsForQuery since we don't need it

* add indentation

* standardize ConfirmMessage and show model name instead of id when editing

* standardize ConfirmMessage and show model name instead of id when editing

* add comments

* post to the correct updateUrl so we can edit users and groups

* use pop instead of slice

* add TODO for finding a better way to store ids

* ensure ids are handled the same way on list and show pages; fix editing and deleting

* add comment about difference between list and show urls

* use model.id instead of name since we do not need it

* remove dead code

* ensure list pages have page headers

* standardize using authMethodPath instead of method and remove dead code

* i love indentation

* remove more dead code

* use new Confirm

* show correct flash message when deleting an item

* update flash message for creating and updating

* use plus icon for creating group/user instead of an arrow
2019-10-17 16:19:14 -07:00

36 lines
1.3 KiB
JavaScript

import { inject as service } from '@ember/service';
import Route from '@ember/routing/route';
import { singularize } from 'ember-inflector';
export default Route.extend({
wizard: service(),
pathHelp: service('path-help'),
beforeModel() {
const { apiPath, type, authMethodPath, itemType } = this.getMethodAndModelInfo();
let modelType = `generated-${singularize(itemType)}-${type}`;
return this.pathHelp.getNewModel(modelType, authMethodPath, apiPath, itemType);
},
getMethodAndModelInfo() {
const { item_type: itemType } = this.paramsFor(this.routeName);
const { path: authMethodPath } = this.paramsFor('vault.cluster.access.method');
const methodModel = this.modelFor('vault.cluster.access.method');
const { apiPath, type } = methodModel;
return { apiPath, type, authMethodPath, itemType };
},
setupController(controller) {
this._super(...arguments);
const { apiPath, authMethodPath, itemType } = this.getMethodAndModelInfo();
controller.set('itemType', itemType);
this.pathHelp.getPaths(apiPath, authMethodPath, itemType).then(paths => {
let navigationPaths = paths.paths.filter(path => path.navigation);
controller.set(
'paths',
navigationPaths.filter(path => path.itemType.includes(itemType)).map(path => path.path)
);
});
},
});