From a46d8a0b84960a98ae9a772aac75e20fd85bebb7 Mon Sep 17 00:00:00 2001
From: =?utf8?q?Tim=20D=C3=BCsterhus?=
Date: Wed, 25 Nov 2020 17:40:50 +0100
Subject: [PATCH] Add explanatory texts to backup MF method (#3754)
* Add explanatory texts to backup MF method
* Improve phrasing of MF backup explanations
Co-authored-by: Alexander Ebert
---
com.woltlab.wcf/templates/multifactorManageBackup.tpl | 1 +
.../user/multifactor/BackupMultifactorMethod.class.php | 7 +++++++
wcfsetup/install/lang/de.xml | 4 +++-
wcfsetup/install/lang/en.xml | 4 +++-
4 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/com.woltlab.wcf/templates/multifactorManageBackup.tpl b/com.woltlab.wcf/templates/multifactorManageBackup.tpl
index 1fff904d7a..cf8aae514d 100644
--- a/com.woltlab.wcf/templates/multifactorManageBackup.tpl
+++ b/com.woltlab.wcf/templates/multifactorManageBackup.tpl
@@ -1,3 +1,4 @@
+{lang}wcf.user.security.multifactor.backup.existingCodes.description{/lang}
{foreach from=$codes item='code'}
-
diff --git a/wcfsetup/install/files/lib/system/user/multifactor/BackupMultifactorMethod.class.php b/wcfsetup/install/files/lib/system/user/multifactor/BackupMultifactorMethod.class.php
index 2110781ac0..ca2d37de27 100644
--- a/wcfsetup/install/files/lib/system/user/multifactor/BackupMultifactorMethod.class.php
+++ b/wcfsetup/install/files/lib/system/user/multifactor/BackupMultifactorMethod.class.php
@@ -3,6 +3,7 @@ namespace wcf\system\user\multifactor;
use wcf\system\email\SimpleEmail;
use wcf\system\flood\FloodControl;
use wcf\system\form\builder\container\FormContainer;
+use wcf\system\form\builder\CustomFormNode;
use wcf\system\form\builder\field\ButtonFormField;
use wcf\system\form\builder\field\TextFormField;
use wcf\system\form\builder\field\validation\FormFieldValidationError;
@@ -116,6 +117,10 @@ class BackupMultifactorMethod implements IMultifactorMethod {
$regenerateContainer = FormContainer::create('regenerateCodesContainer')
->label('wcf.user.security.multifactor.backup.regenerateCodes')
->appendChildren([
+ CustomFormNode::create('explanation')
+ ->content(WCF::getLanguage()->getDynamicVariable(
+ 'wcf.user.security.multifactor.backup.regenerateCodes.description'
+ )),
ButtonFormField::create('regenerateCodes')
->buttonLabel('wcf.user.security.multifactor.backup.regenerateCodes')
->objectProperty('action')
@@ -129,6 +134,8 @@ class BackupMultifactorMethod implements IMultifactorMethod {
$form->appendChild($regenerateContainer);
}
else {
+ // This part of the form is not visible to the end user. It will be implicitly filled in
+ // when setting up the first multi-factor method.
$generateContainer = FormContainer::create('generateCodesContainer')
->label('wcf.user.security.multifactor.backup.generateCodes')
->appendChildren([
diff --git a/wcfsetup/install/lang/de.xml b/wcfsetup/install/lang/de.xml
index 7d3248dfa2..dc6d503307 100644
--- a/wcfsetup/install/lang/de.xml
+++ b/wcfsetup/install/lang/de.xml
@@ -4839,7 +4839,7 @@ Die E-Mail-Adresse des neuen Benutzers lautet: {@$user->email}
-
+
@@ -4933,6 +4933,8 @@ Die E-Mail-Adresse des neuen Benutzers lautet: {@$user->email}
{if LANGUAGE_USE_INFORMAL_VARIANT}Du hast{else}Sie haben{/if} den Notfall-Code â{$usedCode[identifier]}â zur Mehrfaktor-Authentifizierung genutzt. Dieser Code ist nun nicht mehr gültig. {plural value=$remaining 0='**Es gibt keine weiteren gültigen Codes.**' 1='Es verbleibt ein gültiger Code.' other='Es verbleiben # gültige Codes.'} {* this line ends with a space *}
{if LANGUAGE_USE_INFORMAL_VARIANT}Du kannst{else}Sie können{/if} die Mehrfaktor-Authentifizierung in der Account-Sicherheit [URL:{link controller='AccountSecurity' isEmail=true}{/link}] verwalten und dort neue Notfall-Codes generieren oder die Mehrfaktor-Authentifizierung deaktivieren.]]>
+ - Unterhalb {if LANGUAGE_USE_INFORMAL_VARIANT}findest du{else}finden Sie{/if} den zuletzt generierten Satz an Notfallcodes für die Mehrfaktor-Authentifizierung. Durchgestrichene Notfallcodes wurden bereits verwendet und sind nicht mehr gültig. {if LANGUAGE_USE_INFORMAL_VARIANT}Verwende{else}Verwenden Sie{/if} die fettgedruckte Nummer, um die Notfallcodes mit {if LANGUAGE_USE_INFORMAL_VARIANT}deinen{else}Ihren{/if} Notizen abzugleichen. {if LANGUAGE_USE_INFORMAL_VARIANT}Generiere neue Codes, falls deine Notizen{else}Generieren Sie neue Codes, falls Ihre Notizen{/if} nicht zu der angezeigten Liste passen.
]]>
+ - {if LANGUAGE_USE_INFORMAL_VARIANT}Generiere{else}Generieren Sie{/if} neue Notfallcodes, wenn {if LANGUAGE_USE_INFORMAL_VARIANT}du deinen{else}Sie Ihren{/if} bisherigen Satz verlegt oder verbraucht haben. Die Generierung neuer Notfallcodes wird alle bestehenden Notfallcodes ungültig machen.]]>
- Bei aktivierter Bestätigung über E-Mail {if LANGUAGE_USE_INFORMAL_VARIANT}erhältst du{else}erhalten Sie{/if} bei jedem Login einen Einmalcode an {if LANGUAGE_USE_INFORMAL_VARIANT}deine{else}Ihre{/if} hinterlegte E-Mail-Adresse ({$__wcf->user->email}). {if LANGUAGE_USE_INFORMAL_VARIANT}Du musst Zugriff auf dein E-Mail-Postfach haben, damit du dich erfolgreich einloggen kannst.{else}Sie müssen Zugriff auf Ihr E-Mail-Postfach haben, damit Sie sich erfolgreich einloggen können.{/if}]]>
- Hallo {$user->username},
diff --git a/wcfsetup/install/lang/en.xml b/wcfsetup/install/lang/en.xml
index 4408735a1e..662e0e7402 100644
--- a/wcfsetup/install/lang/en.xml
+++ b/wcfsetup/install/lang/en.xml
@@ -4836,7 +4836,7 @@ Open the link below to access the user profile:
-
+
@@ -4930,6 +4930,8 @@ Open the link below to access the user profile:
You used the emergency code â{$usedCode[identifier]}â for multi-factor authentication. This code no longer is valid. {plural value=$remaining 0='**You don't have any remaining codes.**' 1='You have one remaining code.' other='You have # remaining codes.'} {* this line ends with a space *}
You can manage multi-factor authentication within the Account Security page [URL:{link controller='AccountSecurity' isEmail=true}{/link}]. Within account security you can generate new emergency codes or disable multi-factor authentication.]]>
+ - You can find the latest set of emergency codes for use with the multi-factor authentication below. Codes that are striked out have been used and are no longer valid. Use the bold identifier to compare the list to your notes. Please generate a new set of codes if the listed codes do not match your notes.]]>
+ - Generate new emergency codes if you lost or used up your existing set. Generating new emergency codes will invalidate all existing codes.]]>
- With enabled confirmation via email you will receive a one time code via email whenever you login. You will need to have access to your email inbox to be able to login successfully.]]>
- Dear {$user->username},
--
2.20.1