blob: 6cba88320ffbbe0f76eb8fef82977aed164157ef [file] [log] [blame]
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -06001<template>
2 <b-container fluid="xl">
3 <page-title />
4 <b-row>
SurenNewarebd0c01f2021-01-20 21:13:09 +05305 <b-col md="8">
Nikhil Ashokaaee27142022-01-27 19:10:31 +05306 <b-row v-if="!modifySSHPolicyDisabled" class="setting-section">
7 <b-col class="d-flex align-items-center justify-content-between">
8 <dl class="mr-3 w-75">
9 <dt>{{ $t('pagePolicies.ssh') }}</dt>
10 <dd>
11 {{ $t('pagePolicies.sshDescription') }}
12 </dd>
13 </dl>
14 <b-form-checkbox
15 id="sshSwitch"
16 v-model="sshProtocolState"
17 data-test-id="policies-toggle-bmcShell"
18 switch
19 @change="changeSshProtocolState"
20 >
21 <span class="sr-only">
22 {{ $t('pagePolicies.ssh') }}
23 </span>
24 <span v-if="sshProtocolState">
25 {{ $t('global.status.enabled') }}
26 </span>
27 <span v-else>{{ $t('global.status.disabled') }}</span>
28 </b-form-checkbox>
29 </b-col>
30 </b-row>
31 <b-row class="setting-section">
32 <b-col class="d-flex align-items-center justify-content-between">
33 <dl class="mt-3 mr-3 w-75">
34 <dt>{{ $t('pagePolicies.ipmi') }}</dt>
35 <dd>
36 {{ $t('pagePolicies.ipmiDescription') }}
37 </dd>
38 </dl>
39 <b-form-checkbox
40 id="ipmiSwitch"
41 v-model="ipmiProtocolState"
42 data-test-id="polices-toggle-networkIpmi"
43 switch
44 @change="changeIpmiProtocolState"
45 >
46 <span class="sr-only">
47 {{ $t('pagePolicies.ipmi') }}
48 </span>
49 <span v-if="ipmiProtocolState">
50 {{ $t('global.status.enabled') }}
51 </span>
52 <span v-else>{{ $t('global.status.disabled') }}</span>
53 </b-form-checkbox>
54 </b-col>
55 </b-row>
56 <b-row class="setting-section">
57 <b-col class="d-flex align-items-center justify-content-between">
58 <dl class="mt-3 mr-3 w-75">
59 <dt>{{ $t('pagePolicies.vtpm') }}</dt>
60 <dd>
61 {{ $t('pagePolicies.vtpmDescription') }}
62 </dd>
63 </dl>
64 <b-form-checkbox
65 id="vtpmSwitch"
66 v-model="vtpmState"
67 data-test-id="policies-toggle-vtpm"
68 switch
69 @change="changeVtpmState"
70 >
71 <span class="sr-only">
72 {{ $t('pagePolicies.vtpm') }}
73 </span>
74 <span v-if="vtpmState">
75 {{ $t('global.status.enabled') }}
76 </span>
77 <span v-else>{{ $t('global.status.disabled') }}</span>
78 </b-form-checkbox>
79 </b-col>
80 </b-row>
81 <b-row class="setting-section">
82 <b-col class="d-flex align-items-center justify-content-between">
83 <dl class="mt-3 mr-3 w-75">
84 <dt>{{ $t('pagePolicies.rtad') }}</dt>
85 <dd>
86 {{ $t('pagePolicies.rtadDescription') }}
87 </dd>
88 </dl>
89 <b-form-checkbox
90 id="rtadSwitch"
91 v-model="rtadState"
92 data-test-id="policies-toggle-rtad"
93 switch
94 @change="changeRtadState"
95 >
96 <span class="sr-only">
97 {{ $t('pagePolicies.rtad') }}
98 </span>
99 <span v-if="rtadState">
100 {{ $t('global.status.enabled') }}
101 </span>
102 <span v-else>{{ $t('global.status.disabled') }}</span>
103 </b-form-checkbox>
104 </b-col>
105 </b-row>
kirankumarb072dabfc12023-03-29 11:19:31 +0530106 <b-row class="setting-section">
107 <b-col class="d-flex align-items-center justify-content-between">
108 <dl class="mt-3 mr-3 w-75">
109 <dt>{{ $t('pagePolicies.webSessionTimeOut') }}</dt>
110 <dd>
111 {{ $t('pagePolicies.webSessionTimeOutDescription') }}
112 </dd>
113 </dl>
114 </b-col>
115 <b-col lg="3" class="session-timeout">
116 <b-form-select
117 id="session-timeout-options"
118 v-model="sessionTimeoutState"
119 :options="sessionTimeOutOptions"
120 @change="saveSessionTimeoutValue"
121 >
122 <template #first>
123 <b-form-select-option :value="null" disabled>
124 {{ $t('global.form.selectAnOption') }}
125 </b-form-select-option>
126 </template>
127 </b-form-select>
128 </b-col>
129 </b-row>
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -0600130 </b-col>
131 </b-row>
132 </b-container>
133</template>
134
135<script>
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -0600136import PageTitle from '@/components/Global/PageTitle';
137
138import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
139import BVToastMixin from '@/components/Mixins/BVToastMixin';
Surya Vde23ea22024-07-11 15:19:46 +0530140import { useI18n } from 'vue-i18n';
141import i18n from '@/i18n';
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -0600142
143export default {
Sandeepa Singhb4406162021-07-26 15:05:39 +0530144 name: 'Policies',
Nikhil Ashokaaee27142022-01-27 19:10:31 +0530145 components: { PageTitle },
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -0600146 mixins: [LoadingBarMixin, BVToastMixin],
147 beforeRouteLeave(to, from, next) {
148 this.hideLoader();
149 next();
150 },
MichalX Szopinskie020d582021-08-16 15:46:58 +0200151 data() {
152 return {
Surya Vde23ea22024-07-11 15:19:46 +0530153 $t: useI18n().t,
MichalX Szopinskie020d582021-08-16 15:46:58 +0200154 modifySSHPolicyDisabled:
155 process.env.VUE_APP_MODIFY_SSH_POLICY_DISABLED === 'true',
kirankumarb072dabfc12023-03-29 11:19:31 +0530156 sessionTimeOutOptions: [
Surya Vde23ea22024-07-11 15:19:46 +0530157 { value: 1800, text: i18n.global.t('pagePolicies.options.30minutes') },
158 { value: 3600, text: i18n.global.t('pagePolicies.options.1hour') },
159 { value: 7200, text: i18n.global.t('pagePolicies.options.2hours') },
160 { value: 14400, text: i18n.global.t('pagePolicies.options.4hours') },
161 { value: 28800, text: i18n.global.t('pagePolicies.options.8hours') },
162 { value: 86400, text: i18n.global.t('pagePolicies.options.1day') },
kirankumarb072dabfc12023-03-29 11:19:31 +0530163 ],
MichalX Szopinskie020d582021-08-16 15:46:58 +0200164 };
165 },
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -0600166 computed: {
167 sshProtocolState: {
168 get() {
Sandeepa Singhb4406162021-07-26 15:05:39 +0530169 return this.$store.getters['policies/sshProtocolEnabled'];
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -0600170 },
171 set(newValue) {
172 return newValue;
173 },
174 },
175 ipmiProtocolState: {
176 get() {
Sandeepa Singhb4406162021-07-26 15:05:39 +0530177 return this.$store.getters['policies/ipmiProtocolEnabled'];
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -0600178 },
179 set(newValue) {
180 return newValue;
181 },
182 },
Nikhil Ashokaaee27142022-01-27 19:10:31 +0530183 rtadState: {
184 get() {
185 if (this.$store.getters['policies/rtadEnabled'] === 'Enabled') {
186 return true;
187 } else {
188 return false;
189 }
190 },
191 set(newValue) {
192 return newValue;
193 },
194 },
195 vtpmState: {
196 get() {
197 if (this.$store.getters['policies/vtpmEnabled'] === 'Enabled') {
198 return true;
199 } else {
200 return false;
201 }
202 },
203 set(newValue) {
204 return newValue;
205 },
206 },
kirankumarb072dabfc12023-03-29 11:19:31 +0530207 sessionTimeoutState: {
208 get() {
209 return this.$store.getters['policies/getSessionTimeoutValue'];
210 },
211 set(newValue) {
212 return newValue;
213 },
214 },
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -0600215 },
216 created() {
217 this.startLoader();
Nikhil Ashokaaee27142022-01-27 19:10:31 +0530218 Promise.all([
219 this.$store.dispatch('policies/getBiosStatus'),
220 this.$store.dispatch('policies/getNetworkProtocolStatus'),
kirankumarb072dabfc12023-03-29 11:19:31 +0530221 this.$store.dispatch('policies/getSessionTimeout'),
Nikhil Ashokaaee27142022-01-27 19:10:31 +0530222 ]).finally(() => this.endLoader());
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -0600223 },
224 methods: {
225 changeIpmiProtocolState(state) {
226 this.$store
Sandeepa Singhb4406162021-07-26 15:05:39 +0530227 .dispatch('policies/saveIpmiProtocolState', state)
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -0600228 .then((message) => this.successToast(message))
229 .catch(({ message }) => this.errorToast(message));
230 },
231 changeSshProtocolState(state) {
232 this.$store
Sandeepa Singhb4406162021-07-26 15:05:39 +0530233 .dispatch('policies/saveSshProtocolState', state)
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -0600234 .then((message) => this.successToast(message))
235 .catch(({ message }) => this.errorToast(message));
236 },
Nikhil Ashokaaee27142022-01-27 19:10:31 +0530237 changeRtadState(state) {
238 this.$store
239 .dispatch('policies/saveRtadState', state ? 'Enabled' : 'Disabled')
240 .then((message) => this.successToast(message))
241 .catch(({ message }) => this.errorToast(message));
242 },
243 changeVtpmState(state) {
244 this.$store
245 .dispatch('policies/saveVtpmState', state ? 'Enabled' : 'Disabled')
246 .then((message) => this.successToast(message))
247 .catch(({ message }) => this.errorToast(message));
248 },
kirankumarb072dabfc12023-03-29 11:19:31 +0530249 saveSessionTimeoutValue(sessionTimeoutState) {
250 this.$store
251 .dispatch('policies/saveSessionTimeoutValue', sessionTimeoutState)
252 .then((message) => this.successToast(message))
253 .catch(({ message }) => this.errorToast(message));
254 },
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -0600255 },
256};
257</script>
258
259<style lang="scss" scoped>
Ed Tanous7d6b44c2024-03-23 14:56:34 -0700260@import '@/assets/styles/bmc/helpers/_index.scss';
261@import '@/assets/styles/bootstrap/_helpers.scss';
262
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -0600263.setting-section {
264 border-bottom: 1px solid gray('300');
265}
kirankumarb072dabfc12023-03-29 11:19:31 +0530266.session-timeout {
267 align-self: center;
268}
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -0600269</style>