50 lines
1.1 KiB
JavaScript
50 lines
1.1 KiB
JavaScript
import Confirm from './confirm.vue'
|
|
import { mapState } from 'vuex'
|
|
|
|
export default {
|
|
props: ['settings'],
|
|
data: () => ({
|
|
error: false,
|
|
currentPassword: '',
|
|
deactivate: false,
|
|
inProgress: false // progress peform request to disable otp method
|
|
}),
|
|
components: {
|
|
'confirm': Confirm
|
|
},
|
|
computed: {
|
|
isActivated () {
|
|
return this.settings.totp
|
|
},
|
|
...mapState({
|
|
backendInteractor: (state) => state.api.backendInteractor
|
|
})
|
|
},
|
|
methods: {
|
|
doActivate () {
|
|
this.$emit('activate')
|
|
},
|
|
cancelDeactivate () { this.deactivate = false },
|
|
doDeactivate () {
|
|
this.error = null
|
|
this.deactivate = true
|
|
},
|
|
confirmDeactivate () { // confirm deactivate TOTP method
|
|
this.error = null
|
|
this.inProgress = true
|
|
this.backendInteractor.mfaDisableOTP({
|
|
password: this.currentPassword
|
|
})
|
|
.then((res) => {
|
|
this.inProgress = false
|
|
if (res.error) {
|
|
this.error = res.error
|
|
return
|
|
}
|
|
this.deactivate = false
|
|
this.$emit('deactivate')
|
|
})
|
|
}
|
|
}
|
|
}
|