summaryrefslogtreecommitdiff
path: root/src/views/AccessControl/LocalUserManagement/ModalSettings.vue
diff options
context:
space:
mode:
Diffstat (limited to 'src/views/AccessControl/LocalUserManagement/ModalSettings.vue')
-rw-r--r--src/views/AccessControl/LocalUserManagement/ModalSettings.vue219
1 files changed, 0 insertions, 219 deletions
diff --git a/src/views/AccessControl/LocalUserManagement/ModalSettings.vue b/src/views/AccessControl/LocalUserManagement/ModalSettings.vue
deleted file mode 100644
index bf274e5a..00000000
--- a/src/views/AccessControl/LocalUserManagement/ModalSettings.vue
+++ /dev/null
@@ -1,219 +0,0 @@
-<template>
- <b-modal
- id="modal-settings"
- ref="modal"
- :title="$t('pageLocalUserManagement.accountPolicySettings')"
- @hidden="resetForm"
- >
- <b-form id="form-settings" novalidate @submit.prevent="handleSubmit">
- <b-container>
- <b-row>
- <b-col>
- <b-form-group
- :label="
- $t('pageLocalUserManagement.modal.maxFailedLoginAttempts')
- "
- label-for="lockout-threshold"
- >
- <b-form-text id="lockout-threshold-help-block">
- {{
- $t('global.form.valueMustBeBetween', {
- min: 0,
- max: 65535,
- })
- }}
- </b-form-text>
- <b-form-input
- id="lockout-threshold"
- v-model.number="form.lockoutThreshold"
- type="number"
- aria-describedby="lockout-threshold-help-block"
- data-test-id="localUserManagement-input-lockoutThreshold"
- :state="getValidationState($v.form.lockoutThreshold)"
- @input="$v.form.lockoutThreshold.$touch()"
- />
- <b-form-invalid-feedback role="alert">
- <template v-if="!$v.form.lockoutThreshold.required">
- {{ $t('global.form.fieldRequired') }}
- </template>
- <template
- v-if="
- !$v.form.lockoutThreshold.minLength ||
- !$v.form.lockoutThreshold.maxLength
- "
- >
- {{
- $t('global.form.valueMustBeBetween', {
- min: 0,
- max: 65535,
- })
- }}
- </template>
- </b-form-invalid-feedback>
- </b-form-group>
- </b-col>
- <b-col>
- <b-form-group
- :label="$t('pageLocalUserManagement.modal.userUnlockMethod')"
- >
- <b-form-radio
- v-model="form.unlockMethod"
- name="unlock-method"
- class="mb-2"
- :value="0"
- data-test-id="localUserManagement-radio-manualUnlock"
- @input="$v.form.unlockMethod.$touch()"
- >
- {{ $t('pageLocalUserManagement.modal.manual') }}
- </b-form-radio>
- <b-form-radio
- v-model="form.unlockMethod"
- name="unlock-method"
- :value="1"
- data-test-id="localUserManagement-radio-automaticUnlock"
- @input="$v.form.unlockMethod.$touch()"
- >
- {{ $t('pageLocalUserManagement.modal.automaticAfterTimeout') }}
- </b-form-radio>
- <div class="mt-3 ml-4">
- <b-form-text id="lockout-duration-help-block">
- {{
- $t('pageLocalUserManagement.modal.timeoutDurationSeconds')
- }}
- </b-form-text>
- <b-form-input
- v-model.number="form.lockoutDuration"
- aria-describedby="lockout-duration-help-block"
- type="number"
- data-test-id="localUserManagement-input-lockoutDuration"
- :state="getValidationState($v.form.lockoutDuration)"
- :readonly="$v.form.unlockMethod.$model === 0"
- @input="$v.form.lockoutDuration.$touch()"
- />
- <b-form-invalid-feedback role="alert">
- <template v-if="!$v.form.lockoutDuration.required">
- {{ $t('global.form.fieldRequired') }}
- </template>
- <template v-else-if="!$v.form.lockoutDuration.minvalue">
- {{ $t('global.form.mustBeAtLeast', { value: 1 }) }}
- </template>
- </b-form-invalid-feedback>
- </div>
- </b-form-group>
- </b-col>
- </b-row>
- </b-container>
- </b-form>
- <template #modal-footer="{ cancel }">
- <b-button
- variant="secondary"
- data-test-id="localUserManagement-button-cancel"
- @click="cancel()"
- >
- {{ $t('global.action.cancel') }}
- </b-button>
- <b-button
- form="form-settings"
- type="submit"
- variant="primary"
- data-test-id="localUserManagement-button-submit"
- @click="onOk"
- >
- {{ $t('global.action.save') }}
- </b-button>
- </template>
- </b-modal>
-</template>
-
-<script>
-import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
-import {
- required,
- requiredIf,
- minValue,
- maxValue,
-} from 'vuelidate/lib/validators';
-
-export default {
- mixins: [VuelidateMixin],
- props: {
- settings: {
- type: Object,
- required: true,
- },
- },
- data() {
- return {
- form: {
- lockoutThreshold: 0,
- unlockMethod: 0,
- lockoutDuration: null,
- },
- };
- },
- watch: {
- settings: function ({ lockoutThreshold, lockoutDuration }) {
- this.form.lockoutThreshold = lockoutThreshold;
- this.form.unlockMethod = lockoutDuration ? 1 : 0;
- this.form.lockoutDuration = lockoutDuration ? lockoutDuration : null;
- },
- },
- validations: {
- form: {
- lockoutThreshold: {
- minValue: minValue(0),
- maxValue: maxValue(65535),
- required,
- },
- unlockMethod: { required },
- lockoutDuration: {
- minValue: function (value) {
- return this.form.unlockMethod === 0 || value > 0;
- },
- required: requiredIf(function () {
- return this.form.unlockMethod === 1;
- }),
- },
- },
- },
- methods: {
- handleSubmit() {
- this.$v.$touch();
- if (this.$v.$invalid) return;
-
- let lockoutThreshold;
- let lockoutDuration;
- if (this.$v.form.lockoutThreshold.$dirty) {
- lockoutThreshold = this.form.lockoutThreshold;
- }
- if (this.$v.form.unlockMethod.$dirty) {
- lockoutDuration = this.form.unlockMethod
- ? this.form.lockoutDuration
- : 0;
- }
-
- this.$emit('ok', { lockoutThreshold, lockoutDuration });
- this.closeModal();
- },
- onOk(bvModalEvt) {
- // prevent modal close
- bvModalEvt.preventDefault();
- this.handleSubmit();
- },
- closeModal() {
- this.$nextTick(() => {
- this.$refs.modal.hide();
- });
- },
- resetForm() {
- // Reset form models
- this.form.lockoutThreshold = this.settings.lockoutThreshold;
- this.form.unlockMethod = this.settings.lockoutDuration ? 1 : 0;
- this.form.lockoutDuration = this.settings.lockoutDuration
- ? this.settings.lockoutDuration
- : null;
- this.$v.$reset(); // clear validations
- },
- },
-};
-</script>