import Component from '@glimmer/component';
import { inject as service } from '@ember/service';
import { later } from '@ember/runloop';
import { action } from '@ember/object';
import { tracked } from '@glimmer/tracking';
export default class SidebarUserMenuComponent extends Component {
@service auth;
@service currentCluster;
@service router;
@tracked fakeRenew = false;
get hasEntityId() {
// root users will not have an entity_id because they are not associated with an entity.
// in order to use the MFA end user setup they need an entity_id
return !!this.auth.authData?.entity_id;
}
get isRenewing() {
return this.fakeRenew || this.auth.isRenewing;
transitionToRoute() {
this.router.transitionTo(...arguments);
@action
renewToken() {
this.fakeRenew = true;
later(() => {
this.auth.renew().then(() => {
this.fakeRenew = this.auth.isRenewing;
});
}, 200);
revokeToken() {
this.auth.revokeCurrentToken().then(() => {
this.transitionToRoute('vault.cluster.logout');