mirror of
https://github.com/hashicorp/vault.git
synced 2025-08-22 15:11:07 +02:00
* adds linting for types to scripts and lint staged * fixes issue with AdapterError type * moves lint-staged setup out of package.json and into config file * fixes ember data store service type * fixes route params types * fixes model types * fixes general type errors * fixes ts declaration errors in js files * adds missing copyright headers * fixes issue accessing capabilities model properties * ignores AdapterError import type error * more updates to AdapterError type * adds comment to lint-staged config * moves ember data store type to @ember-data namespace * updates store import * moves AdapterError type to @ember-data namespace * turns ember-data import eslint rule back on
58 lines
1.8 KiB
TypeScript
58 lines
1.8 KiB
TypeScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: BUSL-1.1
|
|
*/
|
|
|
|
import Component from '@glimmer/component';
|
|
import { action } from '@ember/object';
|
|
import { task } from 'ember-concurrency';
|
|
import { service } from '@ember/service';
|
|
import { tracked } from '@glimmer/tracking';
|
|
import errorMessage from 'vault/utils/error-message';
|
|
|
|
import type RouterService from '@ember/routing/router';
|
|
import type Store from '@ember-data/store';
|
|
import type FlashMessageService from 'vault/services/flash-messages';
|
|
import type DownloadService from 'vault/services/download';
|
|
import type PkiCertificateGenerateModel from 'vault/models/pki/certificate/generate';
|
|
import type PkiCertificateSignModel from 'vault/models/pki/certificate/sign';
|
|
|
|
interface Args {
|
|
onSuccess: CallableFunction;
|
|
model: PkiCertificateGenerateModel | PkiCertificateSignModel;
|
|
type: string;
|
|
}
|
|
|
|
export default class PkiRoleGenerate extends Component<Args> {
|
|
@service declare readonly download: DownloadService;
|
|
@service declare readonly flashMessages: FlashMessageService;
|
|
@service declare readonly store: Store;
|
|
@service('app-router') declare readonly router: RouterService;
|
|
|
|
@tracked errorBanner = '';
|
|
@tracked invalidFormAlert = '';
|
|
|
|
get verb() {
|
|
return this.args.type === 'sign' ? 'sign' : 'generate';
|
|
}
|
|
|
|
@task
|
|
*save(evt: Event) {
|
|
evt.preventDefault();
|
|
this.errorBanner = '';
|
|
const { model, onSuccess } = this.args;
|
|
try {
|
|
yield model.save();
|
|
onSuccess();
|
|
} catch (err) {
|
|
this.errorBanner = errorMessage(err, `Could not ${this.verb} certificate. See Vault logs for details.`);
|
|
this.invalidFormAlert = 'There was an error submitting this form.';
|
|
}
|
|
}
|
|
|
|
@action cancel() {
|
|
this.args.model.unloadRecord();
|
|
this.router.transitionTo('vault.cluster.secrets.backend.pki.roles.role.details');
|
|
}
|
|
}
|