mirror of
https://github.com/hashicorp/vault.git
synced 2025-08-24 08:01:07 +02:00
* UI: Adding routes for custom login settings (#30404) * adding route block * adding to side nav * jk its diff * adding TODO, adding empty files * UI: Adding List view component for custom login settings (#30459) * first pass setting up list view * style fix * messing with routes * fix * undo * using mock data * renaming * [UI] API Service Error Parsing (#30454) * adds error parsing method to api service * replaces apiErrorMessage util instances with api service parseError * removes apiErrorMessage util and tests * removes ApiError type * fixes issue in isLocalStorageSupported error handling * remove cli folder (#30458) * [DOCS] Add explicit links to older release notes (#30461) * Add explicit links to older release notes * remove domain from URLs * add link to important changes as well * bump timeout for single flaky test (#30460) * adds list response parsing to api service (#30455) * update versions, and replace summary in important changes section (#30471) * Update CHANGELOG.md (#30456) * UI: Update Enterprise Client Count Datepicker (#30349) * date picker changes (mostly) for ent client counts * Move edit modal button + padding * only show start time in dropdown and add changelog * remove unused variable and update toggle width * remove unnecessary period end dates * tidy * update tests * Update changelog/30349.txt Co-authored-by: claire bontempo <68122737+hellobontempo@users.noreply.github.com> * improve date logic * add export button back in, re-arrange header, update dropdown * update when date is shown * add default for retention months * update tests and remove unnecessary tests * account for retention months that are not whole periods * update logic to show end date on export modal * update exported file name --------- Co-authored-by: claire bontempo <68122737+hellobontempo@users.noreply.github.com> * Prevent early-exit of plugin reload (#30329) * update to use util, update to this.cap --------- Co-authored-by: Jordan Reimer <zofskeez@gmail.com> Co-authored-by: Sarah Chavis <62406755+schavis@users.noreply.github.com> Co-authored-by: Angel Garbarino <Monkeychip@users.noreply.github.com> Co-authored-by: Ellie <ellie.sterner@hashicorp.com> Co-authored-by: Tony Wittinger <anwittin@users.noreply.github.com> Co-authored-by: lane-wetmore <lane.wetmore@hashicorp.com> Co-authored-by: claire bontempo <68122737+hellobontempo@users.noreply.github.com> Co-authored-by: kpcraig <3031348+kpcraig@users.noreply.github.com> * UI: Create details component for custom login rules (#30530) * setup * adding to view * fixing table keys * add breadcrumbs * fixes * removing default vals * pr comments * adding delete button to toolbar * adding delete functionality * reorder and fix error handling * updating api call, adding error template, fixing selectors * remove param * UI: Updating visibility attr on auth config to be a toggle with direct login link (#30548) * updating visibility attr to be a toggle, adding link placeholder * update test * test fix pt2 * updating to build link + copy button * updates * use the right word * using hds text * updating helper text, path * use encode directly * updating capabilities check, creating test files, empty state * UI: Update custom login to use api instead of mirage (#30640) * updating to use api, removing store * temp test fix * fixes on types, remove test funcs * fix assertion * adding tests * updating test * adding to tests * stub delete? * removing stubs, updating tests * fixes * moving cmd placement, updating inheritance * adding changelog * fix changelog * pr comments * update check & update test * remove empty state block * remove comment * Revert "remove empty state block" This reverts commit ce34d8c76fea3b43bb96c6acd342a5ba0471f441. * remove the right empty state --------- Co-authored-by: Jordan Reimer <zofskeez@gmail.com> Co-authored-by: Sarah Chavis <62406755+schavis@users.noreply.github.com> Co-authored-by: Angel Garbarino <Monkeychip@users.noreply.github.com> Co-authored-by: Ellie <ellie.sterner@hashicorp.com> Co-authored-by: Tony Wittinger <anwittin@users.noreply.github.com> Co-authored-by: lane-wetmore <lane.wetmore@hashicorp.com> Co-authored-by: claire bontempo <68122737+hellobontempo@users.noreply.github.com> Co-authored-by: kpcraig <3031348+kpcraig@users.noreply.github.com>
73 lines
2.1 KiB
JavaScript
73 lines
2.1 KiB
JavaScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: BUSL-1.1
|
|
*/
|
|
|
|
import AdapterError from '@ember-data/adapter/error';
|
|
import AuthConfigComponent from './config';
|
|
import { service } from '@ember/service';
|
|
import { task } from 'ember-concurrency';
|
|
import { waitFor } from '@ember/test-waiters';
|
|
import { tracked } from '@glimmer/tracking';
|
|
import errorMessage from 'vault/utils/error-message';
|
|
|
|
/**
|
|
* @module AuthConfigForm/Options
|
|
* The `AuthConfigForm/Options` is options portion of the auth config form.
|
|
*
|
|
* @example
|
|
* <AuthConfigForm::Options @model={{this.model}} />
|
|
*
|
|
* @property model=null {DS.Model} - The corresponding auth model that is being configured.
|
|
*
|
|
*/
|
|
|
|
export default class AuthConfigOptions extends AuthConfigComponent {
|
|
@service flashMessages;
|
|
@service router;
|
|
|
|
@tracked errorMessage;
|
|
|
|
@task
|
|
@waitFor
|
|
*saveModel(evt) {
|
|
evt.preventDefault();
|
|
this.errorMessage = null;
|
|
const data = this.args.model.config.serialize();
|
|
data.description = this.args.model.description;
|
|
|
|
if (this.args.model.supportsUserLockoutConfig) {
|
|
data.user_lockout_config = {};
|
|
this.args.model.userLockoutConfig.apiParams.forEach((attr) => {
|
|
if (Object.keys(data).includes(attr)) {
|
|
data.user_lockout_config[attr] = data[attr];
|
|
delete data[attr];
|
|
}
|
|
});
|
|
}
|
|
|
|
// token_type should not be tuneable for the token auth method.
|
|
if (this.args.model.methodType === 'token') {
|
|
delete data.token_type;
|
|
}
|
|
|
|
try {
|
|
yield this.args.model.tune(data);
|
|
} catch (err) {
|
|
if (err instanceof AdapterError) {
|
|
// because we're not calling model.save the model never updates with
|
|
// the error, so we set it manually in the component instead.
|
|
this.errorMessage = errorMessage(err);
|
|
return;
|
|
}
|
|
throw err;
|
|
}
|
|
this.router.transitionTo('vault.cluster.access.methods').followRedirects();
|
|
this.flashMessages.success('The configuration was saved successfully.');
|
|
}
|
|
|
|
get getLoginLink() {
|
|
return `${window.origin}/ui/vault/auth?with=${encodeURIComponent(this.args.model.path)}`;
|
|
}
|
|
}
|