xref: /openbmc/webui-vue/src/views/Operations/KeyClear/KeyClear.vue (revision ce7db82c9582c4dac04ac81d9af6b557ae7965e3)
1<template>
2  <b-container fluid="xl">
3    <page-title :description="$t('pageKeyClear.description')" />
4    <b-row>
5      <b-col md="8" xl="6">
6        <alert variant="info" class="mb-4">
7          <div class="font-weight-bold">
8            {{ $t('pageKeyClear.alert.title') }}
9          </div>
10          <div>
11            {{ $t('pageKeyClear.alert.description') }}
12          </div>
13        </alert>
14      </b-col>
15    </b-row>
16    <!-- Reset Form -->
17    <b-form id="key-clear" @submit.prevent="onKeyClearSubmit(keyOption)">
18      <b-row>
19        <b-col md="8">
20          <b-form-group :label="$t('pageKeyClear.form.keyClearOptionsLabel')">
21            <b-form-radio-group
22              id="key-clear-options"
23              v-model="keyOption"
24              stacked
25            >
26              <b-form-radio class="mb-1" value="NONE">
27                {{ $t('pageKeyClear.form.none') }}
28              </b-form-radio>
29              <b-form-text id="key-clear-not-requested" class="ml-4 mb-3">
30                {{ $t('pageKeyClear.form.keyClearNotRequested') }}
31              </b-form-text>
32              <b-form-radio class="mb-1" value="ALL">
33                {{ $t('pageKeyClear.form.clearAllLabel') }}
34              </b-form-radio>
35              <b-form-text id="clear-all" class="ml-4 mb-3">
36                {{ $t('pageKeyClear.form.clearAllHeperText') }}
37              </b-form-text>
38              <b-form-radio class="mb-1" value="POWERVM_SYSKEY">
39                {{ $t('pageKeyClear.form.clearHypervisorSystemKeyLabel') }}
40              </b-form-radio>
41              <b-form-text id="clear-hypervisor-key" class="ml-4 mb-3">
42                {{ $t('pageKeyClear.form.clearHypervisorSystemKeyHelperText') }}
43              </b-form-text>
44              <template v-if="username == 'service'">
45                <b-form-radio class="mb-1" value="MFG_ALL">
46                  {{ $t('pageKeyClear.form.clearAllSetGenesisIPL') }}
47                </b-form-radio>
48                <b-form-radio class="mb-1" value="MFG">
49                  {{ $t('pageKeyClear.form.setFactoryDefault') }}
50                </b-form-radio>
51              </template>
52            </b-form-radio-group>
53          </b-form-group>
54          <b-button
55            type="submit"
56            variant="primary"
57            data-test-id="keyClear-button-submit"
58          >
59            {{ $t('pageKeyClear.form.clear') }}
60          </b-button>
61        </b-col>
62      </b-row>
63    </b-form>
64  </b-container>
65</template>
66
67<script>
68import PageTitle from '@/components/Global/PageTitle';
69import BVToastMixin from '@/components/Mixins/BVToastMixin';
70import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
71import Alert from '@/components/Global/Alert';
72import { useI18n } from 'vue-i18n';
73import i18n from '@/i18n';
74
75export default {
76  name: 'KeyClear',
77  components: { PageTitle, Alert },
78  mixins: [LoadingBarMixin, BVToastMixin],
79  data() {
80    return {
81      $t: useI18n().t,
82      keyOption: 'NONE',
83      username: this.$store.getters['global/username'],
84    };
85  },
86  created() {
87    this.hideLoader();
88  },
89  methods: {
90    onKeyClearSubmit(valueSelected) {
91      this.$bvModal
92        .msgBoxConfirm(i18n.global.t('pageKeyClear.modal.clearAllMessage'), {
93          title: i18n.global.t('pageKeyClear.modal.clearAllTitle'),
94          okTitle: i18n.global.t('pageKeyClear.modal.clear'),
95          okVariant: 'danger',
96          cancelTitle: i18n.global.t('global.action.cancel'),
97          autoFocusButton: 'cancel',
98        })
99        .then((clearConfirmed) => {
100          if (clearConfirmed) {
101            this.$store
102              .dispatch('keyClear/clearEncryptionKeys', valueSelected)
103              .then((message) => this.successToast(message))
104              .catch(({ message }) => this.errorToast(message));
105          }
106        });
107    },
108  },
109};
110</script>
111