diff options
Diffstat (limited to 'src/views/Settings/SecuritySettings')
-rw-r--r-- | src/views/Settings/SecuritySettings/SecuritySettings.vue | 125 | ||||
-rw-r--r-- | src/views/Settings/SecuritySettings/index.js | 2 |
2 files changed, 127 insertions, 0 deletions
diff --git a/src/views/Settings/SecuritySettings/SecuritySettings.vue b/src/views/Settings/SecuritySettings/SecuritySettings.vue new file mode 100644 index 00000000..ec8d2589 --- /dev/null +++ b/src/views/Settings/SecuritySettings/SecuritySettings.vue @@ -0,0 +1,125 @@ +<template> + <b-container fluid="xl"> + <page-title /> + <b-row> + <b-col md="8"> + <page-section + :section-title="$t('pageSecuritySettings.networkServices')" + > + <b-row class="setting-section"> + <b-col class="d-flex align-items-center justify-content-between"> + <dl class="mr-3 w-75"> + <dt>{{ $t('pageSecuritySettings.ssh') }}</dt> + <dd> + {{ $t('pageSecuritySettings.sshDescription') }} + </dd> + </dl> + <b-form-checkbox + id="sshSwitch" + v-model="sshProtocolState" + data-test-id="security-toggle-bmcShell" + switch + @change="changeSshProtocolState" + > + <span class="sr-only"> + {{ $t('pageSecuritySettings.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('pageSecuritySettings.ipmi') }}</dt> + <dd> + {{ $t('pageSecuritySettings.ipmiDescription') }} + </dd> + </dl> + <b-form-checkbox + id="ipmiSwitch" + v-model="ipmiProtocolState" + data-test-id="security-toggle-networkIpmi" + switch + @change="changeIpmiProtocolState" + > + <span class="sr-only"> + {{ $t('pageSecuritySettings.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: 'SecuritySettings', + components: { PageTitle, PageSection }, + mixins: [LoadingBarMixin, BVToastMixin], + beforeRouteLeave(to, from, next) { + this.hideLoader(); + next(); + }, + computed: { + sshProtocolState: { + get() { + return this.$store.getters['securitySettings/sshProtocolEnabled']; + }, + set(newValue) { + return newValue; + }, + }, + ipmiProtocolState: { + get() { + return this.$store.getters['securitySettings/ipmiProtocolEnabled']; + }, + set(newValue) { + return newValue; + }, + }, + }, + created() { + this.startLoader(); + this.$store + .dispatch('securitySettings/getNetworkProtocolStatus') + .finally(() => this.endLoader()); + }, + methods: { + changeIpmiProtocolState(state) { + this.$store + .dispatch('securitySettings/saveIpmiProtocolState', state) + .then((message) => this.successToast(message)) + .catch(({ message }) => this.errorToast(message)); + }, + changeSshProtocolState(state) { + this.$store + .dispatch('securitySettings/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> diff --git a/src/views/Settings/SecuritySettings/index.js b/src/views/Settings/SecuritySettings/index.js new file mode 100644 index 00000000..5ec2b615 --- /dev/null +++ b/src/views/Settings/SecuritySettings/index.js @@ -0,0 +1,2 @@ +import SecuritySettings from './SecuritySettings.vue'; +export default SecuritySettings; |