From ea9742a1c64b826ad42e95554b09f147431d20ea Mon Sep 17 00:00:00 2001 From: Bernd Storath <999999bst@gmail.com> Date: Tue, 1 Apr 2025 13:28:30 +0200 Subject: [PATCH] require 2fa on login if enabled --- src/app/composables/useSubmit.ts | 7 -- src/app/pages/admin/interface.vue | 2 - src/app/pages/login.vue | 51 ++++++++++++-- src/app/pages/me.vue | 2 +- src/i18n/locales/en.json | 21 +++--- src/server/api/me/totp.post.ts | 8 ++- src/server/api/session.post.ts | 56 ++++++++------- .../database/repositories/user/service.ts | 70 +++++++++++++++++++ .../database/repositories/user/types.ts | 8 ++- src/server/utils/types.ts | 7 ++ 10 files changed, 172 insertions(+), 60 deletions(-) diff --git a/src/app/composables/useSubmit.ts b/src/app/composables/useSubmit.ts index 048aadfc..805c2b66 100644 --- a/src/app/composables/useSubmit.ts +++ b/src/app/composables/useSubmit.ts @@ -28,7 +28,6 @@ type SubmitOpts< > = { revert: RevertFn; successMsg?: string; - errorMsg?: string; noSuccessToast?: boolean; }; @@ -38,7 +37,6 @@ export function useSubmit< T = unknown, >(url: R, options: O, opts: SubmitOpts) { const toast = useToast(); - const { t: $t } = useI18n(); return async (data: unknown) => { try { @@ -47,11 +45,6 @@ export function useSubmit< body: data, }); - // eslint-disable-next-line @typescript-eslint/no-explicit-any - if (!(res as any).success) { - throw new Error(opts.errorMsg || $t('toast.errored')); - } - if (!opts.noSuccessToast) { toast.showToast({ type: 'success', diff --git a/src/app/pages/admin/interface.vue b/src/app/pages/admin/interface.vue index 18988943..55e7d283 100644 --- a/src/app/pages/admin/interface.vue +++ b/src/app/pages/admin/interface.vue @@ -86,7 +86,6 @@ const _changeCidr = useSubmit( { revert, successMsg: t('admin.interface.cidrSuccess'), - errorMsg: t('admin.interface.cidrError'), } ); @@ -102,7 +101,6 @@ const _restartInterface = useSubmit( { revert, successMsg: t('admin.interface.restartSuccess'), - errorMsg: t('admin.interface.restartError'), } ); diff --git a/src/app/pages/login.vue b/src/app/pages/login.vue index 9c342f61..76d34ca7 100644 --- a/src/app/pages/login.vue +++ b/src/app/pages/login.vue @@ -30,6 +30,18 @@ autocomplete="current-password" /> + +