consul/ui/packages/consul-ui/app/components/token-source/index.js

52 lines
1.4 KiB
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
import Component from '@glimmer/component';
import { action } from '@ember/object';
import { tracked } from '@glimmer/tracking';
import chart from './chart.xstate';
export default class TokenSource extends Component {
@tracked provider;
@tracked jwt;
constructor() {
super(...arguments);
this.chart = chart;
}
@action
isSecret() {
return this.args.type === 'secret';
}
@action
change(e) {
e.data.toJSON = function () {
return {
AccessorID: this.AccessorID,
// TODO: In the past we've always ignored the SecretID returned
// from the server and used what the user typed in instead, now
// as we don't know the SecretID when we use SSO we use the SecretID
// in the response
SecretID: this.SecretID,
Namespace: this.Namespace,
Partition: this.Partition,
...{
AuthMethod: typeof this.AuthMethod !== 'undefined' ? this.AuthMethod : undefined,
// TODO: We should be able to only set namespaces if they are enabled
// but we might be testing for nspaces everywhere
// Namespace: typeof this.Namespace !== 'undefined' ? this.Namespace : undefined
},
};
};
// TODO: We should probably put the component into idle state
if (typeof this.args.onchange === 'function') {
this.args.onchange(e);
}
}
}