diff --git a/src/layouts/modals/AdminEnable2FA.vue b/src/layouts/modals/AdminEnable2FA.vue
new file mode 100644
index 0000000..7893e64
--- /dev/null
+++ b/src/layouts/modals/AdminEnable2FA.vue
@@ -0,0 +1,107 @@
+
+
+
+
+ {{ $t('admin.enable2FA') + " " + user.username }}
+
+
+
+
+ {{ $t('admin.rescanQr') }}
+
+
+ {{ $t('admin.rescanQrHint') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('actions.close') }}
+
+
+ {{ $t('actions.enable') }}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/locales/en.ts b/src/locales/en.ts
index 0ba2b7e..f2a4550 100644
--- a/src/locales/en.ts
+++ b/src/locales/en.ts
@@ -8,6 +8,7 @@ export default {
all: "All",
filter: "Filter",
loading: "Loading...",
+ warning: "Warning",
confirm: "Are you sure ?",
yes: "yes",
no: "no",
@@ -119,6 +120,8 @@ export default {
addbulk: "Add Bulk",
new: "New",
edit: "Edit",
+ edit2fa: "Edit 2FA",
+ enable: "Enable",
del: "Delete",
clone: "Clone",
save: "Save",
@@ -137,12 +140,21 @@ export default {
unRules: "Username can not be empty",
password: "Password",
pwRules: "Password can not be empty",
+ passcode: "Passcode",
+ passcodeRules: "Passcode can not be empty",
},
menu: {
logout: "Logout",
},
admin: {
changeCred: "Change credentials",
+ enable2FA: "Enable two-factor authentication (2FA)",
+ rescanQr: "Re-scan the QR code",
+ rescanQrHint: "Use an authenticator app from your phone to scan.",
+ passcode: "Verify the code from the app",
+ confirm2FAdisable: "Are you sure do disable 2FA?",
+ enabled: "Enabled",
+ disabled: "Disabled",
oldPass: "Current Password",
newUname: "New Username",
newPass: "New Password",
diff --git a/src/locales/ru.ts b/src/locales/ru.ts
index 8e43170..1cf0b7a 100644
--- a/src/locales/ru.ts
+++ b/src/locales/ru.ts
@@ -8,6 +8,7 @@ export default {
all: "Все",
filter: "Фильтр",
loading: "Загрузка...",
+ warning: "Внимание",
confirm: "Вы уверены?",
yes: "да",
no: "нет",
@@ -119,6 +120,8 @@ export default {
addbulk: "Добавить пакетно",
new: "Новый",
edit: "Редактировать",
+ edit2fa: "Редактировать 2FA",
+ enable: "Включить",
del: "Удалить",
clone: "Клонировать",
save: "Сохранить",
@@ -137,12 +140,21 @@ export default {
unRules: "Имя пользователя не может быть пустым",
password: "Пароль",
pwRules: "Пароль не может быть пустым",
+ passcode: "Одноразовый код",
+ passcodeRules: "Одноразовый код не может быть пустым",
},
menu: {
logout: "Выйти",
},
admin: {
changeCred: "Изменить учетные данные",
+ enable2FA: "Включить двухфакторную аутенификацию (2FA)",
+ rescanQr: "Отсканируйте QR-код",
+ rescanQrHint: "Используйте приложение для аутенификации на телефоне чтобы отсканировать.",
+ passcode: "Введите код из приложения",
+ confirm2FAdisable: "Вы уверены что хотите выключить 2FA?",
+ enabled: "Включена",
+ disabled: "Отключена",
oldPass: "Текущий пароль",
newUname: "Новое имя пользователя",
newPass: "Новый пароль",
diff --git a/src/views/Admins.vue b/src/views/Admins.vue
index c0ce20b..b3dae9e 100644
--- a/src/views/Admins.vue
+++ b/src/views/Admins.vue
@@ -6,6 +6,13 @@
@close="closeEditModal"
@save="saveEditModal"
/>
+
+
+
+
+ {{ $t('close') }}
+ {{ $t('disable') }}
+
+
+
{{ $t('admin.changes') }}
@@ -48,6 +74,12 @@
{{ item.ip }}
+
+
+ 2FA
+
+ {{ item.totp ? $t('admin.enabled') : $t('admin.disabled') }}
+
@@ -55,6 +87,10 @@
+
+
+
+
@@ -68,6 +104,7 @@