From 5d11e6e13f7254a72874dabee6c1cf4e81f5ec52 Mon Sep 17 00:00:00 2001 From: "Shishkevich D." <135337715+shishkevichd@users.noreply.github.com> Date: Wed, 2 Jul 2025 16:25:25 +0700 Subject: chore: reset two-factor authentication after changing admin credentials (#3029) * chore: add `resetTwoFactor` argument for main.go fixes #3025 * chore: reset two-factor authentication after changing admin credentials * chore: reset two-factor authentication after changing admin credentials --------- Co-authored-by: somebodywashere <68244480+somebodywashere@users.noreply.github.com> Co-authored-by: Sanaei --- web/html/settings.html | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) (limited to 'web/html/settings.html') diff --git a/web/html/settings.html b/web/html/settings.html index 1c55ea81..c7fa9bd8 100644 --- a/web/html/settings.html +++ b/web/html/settings.html @@ -310,12 +310,30 @@ } }, async updateUser() { - this.loading(true); - const msg = await HttpUtil.post("/panel/setting/updateUser", this.user); - this.loading(false); - if (msg.success) { - this.user = {}; - window.location.replace(basePath + "logout"); + const sendUpdateUserRequest = async () => { + this.loading(true); + const msg = await HttpUtil.post("/panel/setting/updateUser", this.user); + this.loading(false); + if (msg.success) { + this.user = {}; + window.location.replace(basePath + "logout"); + } + } + + if (this.allSetting.twoFactorEnable) { + twoFactorModal.show({ + title: '{{ i18n "pages.settings.security.twoFactorModalChangeCredentialsTitle" }}', + description: '{{ i18n "pages.settings.security.twoFactorModalChangeCredentialsStep" }}', + token: this.allSetting.twoFactorToken, + type: 'confirm', + confirm: (success) => { + if (success) { + sendUpdateUserRequest(); + } + } + }) + } else { + sendUpdateUserRequest(); } }, async restartPanel() { @@ -353,6 +371,8 @@ type: 'set', confirm: (success) => { if (success) { + Vue.prototype.$message['success']('{{ i18n "pages.settings.security.twoFactorModalSetSuccess" }}') + this.allSetting.twoFactorToken = newTwoFactorToken } @@ -362,10 +382,13 @@ } else { twoFactorModal.show({ title: '{{ i18n "pages.settings.security.twoFactorModalDeleteTitle" }}', + description: '{{ i18n "pages.settings.security.twoFactorModalRemoveStep" }}', token: this.allSetting.twoFactorToken, - type: 'remove', + type: 'confirm', confirm: (success) => { if (success) { + Vue.prototype.$message['success']('{{ i18n "pages.settings.security.twoFactorModalDeleteSuccess" }}') + this.allSetting.twoFactorEnable = false this.allSetting.twoFactorToken = "" } -- cgit v1.2.3