@@ -200,6 +241,8 @@ function validate() {
kind="primary"
size="lg"
@click.prevent="login"
+ :disabled="loading"
+ :loading="loading"
type="submit"
class="w-full"
>{{ t('login.sign_in') }}
{{ t('controller.users.display_name') }}
+
+ {{ t('controller.users.two_fa_status') }}
+
@@ -75,6 +80,18 @@ function getDropdownItems(item: ControllerAccount) {
{{ item.display_name }}
+
+
+
+
+ {{ t('controller.users.two_fa_enabled') }}
+
+
+
+ {{ t('controller.users.two_fa_disabled') }}
+
+
+
diff --git a/src/components/standalone/StandaloneAppLogin.vue b/src/components/standalone/StandaloneAppLogin.vue
index a719df768..f719377ed 100644
--- a/src/components/standalone/StandaloneAppLogin.vue
+++ b/src/components/standalone/StandaloneAppLogin.vue
@@ -22,7 +22,7 @@ import { MessageBag, validateRequired, validateSixDigitCode } from '@/lib/valida
import { useI18n } from 'vue-i18n'
import { getProductName, getCompanyName, getPrivacyPolicyUrl } from '@/lib/config'
import { jwtDecode } from 'jwt-decode'
-import { verifyTwoFaOtp } from '@/lib/standalone/twoFa'
+import { verifyTwoFaOtp } from '@/lib/twoFa'
import { ValidationError } from '@/lib/standalone/ubus'
let username = ref('')
diff --git a/src/components/standalone/account/two_fa/TwoFactorAuth.vue b/src/components/standalone/account/two_fa/TwoFactorAuth.vue
index 759e373b9..f12d58414 100644
--- a/src/components/standalone/account/two_fa/TwoFactorAuth.vue
+++ b/src/components/standalone/account/two_fa/TwoFactorAuth.vue
@@ -6,7 +6,7 @@