updated mfa settings

This commit is contained in:
Maksim Pechnikov 2019-05-22 17:26:18 +03:00
parent 7d372e7fe5
commit 649627b00f
3 changed files with 19 additions and 18 deletions

View File

@ -2,24 +2,26 @@ const Mfa = {
data () {
return {
settings: {},
setup: false,
currentPassword: null,
backup_codes: [],
otpSettings: null,
otpConfirmToken: null,
disableOTP: false,
canSetupTotp: false
}
},
watch: {
setup (v) {
if (v) {
this.clear()
this.getBackupCodes()
}
canSetupTotp: false,
displaySetupBlock: false
}
},
methods: {
setupMFA({target}) {
if (target.checked) {
this.clear()
this.getBackupCodes()
this.displaySetupBlock = true
} else {
this.clear()
this.displaySetupBlock = false
}
},
clear () {
this.currentPassword = null
this.backup_codes = []
@ -34,7 +36,6 @@ const Mfa = {
password: this.currentPassword
})
.then((res) => {
this.setup = false
this.fetchSettings(true)
})
},

View File

@ -51,22 +51,22 @@
</div>
<div v-show="!settings.enabled">
<input type="checkbox" id="setup-mfa" v-model="setup">
<input type="checkbox" id="setup-mfa" @change="setupMFA">
<label for="setup-mfa">{{$t('settings.require_mfa')}}</label>
</div>
<div class="setup-mfa" v-if="setup">
<div class="setup-mfa" v-if="displaySetupBlock">
<br />
<div>
<h4>{{$t('settings.mfa.generate_recovery_codes')}}</h4>
<h4>{{$t('settings.mfa.recovery_codes')}}</h4>
<ul><li v-for="code in backup_codes">{{code}}</li></ul>
</div>
<div v-if="canSetupTotp">
<button class="btn btn-default" @click="setupOTP">
<button class="btn btn-default" @click="setupOTP" v-if="!otpSettings">
{{$t('settings.mfa.setup_otp')}}
</button>
<br />
<div v-if="otpSettings">
<h4>{{$t('settings.mfa.scan.title')}}</h4>
<p>{{$t('settings.mfa.scan.desc')}}</p>

View File

@ -96,12 +96,12 @@
"confirm_and_enabled" : "Подтвердить и включить OTP",
"title": "Двухфакторная аутентификация",
"re_generate_recovery_codes" : "Получить новые коды востановления",
"generate_recovery_codes" : "Получить кодов восстановления.",
"generate_recovery_codes" : "Коды восстановления",
"recovery_codes" : "Коды восстановления.",
"methods" : "Методы двухэтапной аутентификации",
"scan": {
"title": "Сканирование",
"desc": "Используйте приложение для двухэтапной аутентификации для сканирования этого QR-код или введите текстовый код:",
"desc": "Используйте приложение для двухэтапной аутентификации для сканирования этого QR-код или введите текстовый ключ:",
"secret_code": "Ключ"
},
"verify": {