| <template> |
| <b-container fluid="xl"> |
| <page-title /> |
| <b-row> |
| <b-col md="8"> |
| <page-section :section-title="$t('pagePolicies.networkServices')"> |
| <b-row v-if="!modifySSHPolicyDisabled" class="setting-section"> |
| <b-col class="d-flex align-items-center justify-content-between"> |
| <dl class="mr-3 w-75"> |
| <dt>{{ $t('pagePolicies.ssh') }}</dt> |
| <dd> |
| {{ $t('pagePolicies.sshDescription') }} |
| </dd> |
| </dl> |
| <b-form-checkbox |
| id="sshSwitch" |
| v-model="sshProtocolState" |
| data-test-id="policies-toggle-bmcShell" |
| switch |
| @change="changeSshProtocolState" |
| > |
| <span class="sr-only"> |
| {{ $t('pagePolicies.ssh') }} |
| </span> |
| <span v-if="sshProtocolState"> |
| {{ $t('global.status.enabled') }} |
| </span> |
| <span v-else>{{ $t('global.status.disabled') }}</span> |
| </b-form-checkbox> |
| </b-col> |
| </b-row> |
| <b-row class="setting-section"> |
| <b-col class="d-flex align-items-center justify-content-between"> |
| <dl class="mt-3 mr-3 w-75"> |
| <dt>{{ $t('pagePolicies.ipmi') }}</dt> |
| <dd> |
| {{ $t('pagePolicies.ipmiDescription') }} |
| </dd> |
| </dl> |
| <b-form-checkbox |
| id="ipmiSwitch" |
| v-model="ipmiProtocolState" |
| data-test-id="polices-toggle-networkIpmi" |
| switch |
| @change="changeIpmiProtocolState" |
| > |
| <span class="sr-only"> |
| {{ $t('pagePolicies.ipmi') }} |
| </span> |
| <span v-if="ipmiProtocolState"> |
| {{ $t('global.status.enabled') }} |
| </span> |
| <span v-else>{{ $t('global.status.disabled') }}</span> |
| </b-form-checkbox> |
| </b-col> |
| </b-row> |
| </page-section> |
| </b-col> |
| </b-row> |
| </b-container> |
| </template> |
| |
| <script> |
| import PageSection from '@/components/Global/PageSection'; |
| import PageTitle from '@/components/Global/PageTitle'; |
| |
| import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin'; |
| import BVToastMixin from '@/components/Mixins/BVToastMixin'; |
| |
| export default { |
| name: 'Policies', |
| components: { PageTitle, PageSection }, |
| mixins: [LoadingBarMixin, BVToastMixin], |
| beforeRouteLeave(to, from, next) { |
| this.hideLoader(); |
| next(); |
| }, |
| data() { |
| return { |
| modifySSHPolicyDisabled: |
| process.env.VUE_APP_MODIFY_SSH_POLICY_DISABLED === 'true', |
| }; |
| }, |
| computed: { |
| sshProtocolState: { |
| get() { |
| return this.$store.getters['policies/sshProtocolEnabled']; |
| }, |
| set(newValue) { |
| return newValue; |
| }, |
| }, |
| ipmiProtocolState: { |
| get() { |
| return this.$store.getters['policies/ipmiProtocolEnabled']; |
| }, |
| set(newValue) { |
| return newValue; |
| }, |
| }, |
| }, |
| created() { |
| this.startLoader(); |
| this.$store |
| .dispatch('policies/getNetworkProtocolStatus') |
| .finally(() => this.endLoader()); |
| }, |
| methods: { |
| changeIpmiProtocolState(state) { |
| this.$store |
| .dispatch('policies/saveIpmiProtocolState', state) |
| .then((message) => this.successToast(message)) |
| .catch(({ message }) => this.errorToast(message)); |
| }, |
| changeSshProtocolState(state) { |
| this.$store |
| .dispatch('policies/saveSshProtocolState', state) |
| .then((message) => this.successToast(message)) |
| .catch(({ message }) => this.errorToast(message)); |
| }, |
| }, |
| }; |
| </script> |
| |
| <style lang="scss" scoped> |
| .setting-section { |
| border-bottom: 1px solid gray('300'); |
| } |
| </style> |