summaryrefslogtreecommitdiff
path: root/src/views
diff options
context:
space:
mode:
Diffstat (limited to 'src/views')
-rw-r--r--src/views/SecurityAndAccess/Policies/Policies.vue50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/views/SecurityAndAccess/Policies/Policies.vue b/src/views/SecurityAndAccess/Policies/Policies.vue
index 1dc197c7..3ebfee4e 100644
--- a/src/views/SecurityAndAccess/Policies/Policies.vue
+++ b/src/views/SecurityAndAccess/Policies/Policies.vue
@@ -103,6 +103,30 @@
</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.webSessionTimeOut') }}</dt>
+ <dd>
+ {{ $t('pagePolicies.webSessionTimeOutDescription') }}
+ </dd>
+ </dl>
+ </b-col>
+ <b-col lg="3" class="session-timeout">
+ <b-form-select
+ id="session-timeout-options"
+ v-model="sessionTimeoutState"
+ :options="sessionTimeOutOptions"
+ @change="saveSessionTimeoutValue"
+ >
+ <template #first>
+ <b-form-select-option :value="null" disabled>
+ {{ $t('global.form.selectAnOption') }}
+ </b-form-select-option>
+ </template>
+ </b-form-select>
+ </b-col>
+ </b-row>
</b-col>
</b-row>
</b-container>
@@ -126,6 +150,14 @@ export default {
return {
modifySSHPolicyDisabled:
process.env.VUE_APP_MODIFY_SSH_POLICY_DISABLED === 'true',
+ sessionTimeOutOptions: [
+ { value: 1800, text: this.$t('pagePolicies.options.30minutes') },
+ { value: 3600, text: this.$t('pagePolicies.options.1hour') },
+ { value: 7200, text: this.$t('pagePolicies.options.2hours') },
+ { value: 14400, text: this.$t('pagePolicies.options.4hours') },
+ { value: 28800, text: this.$t('pagePolicies.options.8hours') },
+ { value: 86400, text: this.$t('pagePolicies.options.1day') },
+ ],
};
},
computed: {
@@ -169,12 +201,21 @@ export default {
return newValue;
},
},
+ sessionTimeoutState: {
+ get() {
+ return this.$store.getters['policies/getSessionTimeoutValue'];
+ },
+ set(newValue) {
+ return newValue;
+ },
+ },
},
created() {
this.startLoader();
Promise.all([
this.$store.dispatch('policies/getBiosStatus'),
this.$store.dispatch('policies/getNetworkProtocolStatus'),
+ this.$store.dispatch('policies/getSessionTimeout'),
]).finally(() => this.endLoader());
},
methods: {
@@ -202,6 +243,12 @@ export default {
.then((message) => this.successToast(message))
.catch(({ message }) => this.errorToast(message));
},
+ saveSessionTimeoutValue(sessionTimeoutState) {
+ this.$store
+ .dispatch('policies/saveSessionTimeoutValue', sessionTimeoutState)
+ .then((message) => this.successToast(message))
+ .catch(({ message }) => this.errorToast(message));
+ },
},
};
</script>
@@ -210,4 +257,7 @@ export default {
.setting-section {
border-bottom: 1px solid gray('300');
}
+.session-timeout {
+ align-self: center;
+}
</style>