Add explanatory texts to backup MF method (#3754)
authorTim Düsterhus <duesterhus@woltlab.com>
Wed, 25 Nov 2020 16:40:50 +0000 (17:40 +0100)
committerGitHub <noreply@github.com>
Wed, 25 Nov 2020 16:40:50 +0000 (17:40 +0100)
* Add explanatory texts to backup MF method
* Improve phrasing of MF backup explanations

Co-authored-by: Alexander Ebert <ebert@woltlab.com>
com.woltlab.wcf/templates/multifactorManageBackup.tpl
wcfsetup/install/files/lib/system/user/multifactor/BackupMultifactorMethod.class.php
wcfsetup/install/lang/de.xml
wcfsetup/install/lang/en.xml

index 1fff904d7a5be53df9a0ce7f94b4f6f4613f9372..cf8aae514d5ba84c4be913bb9a6acb75e11738c7 100644 (file)
@@ -1,3 +1,4 @@
+{lang}wcf.user.security.multifactor.backup.existingCodes.description{/lang}
 <ol class="nativeList multifactorBackupCodes">
 {foreach from=$codes item='code'}
 <li>
index 2110781ac048b9d6c94a704ee025f52e85c883ba..ca2d37de272dc9bf6cc1041cb00a8637cf727350 100644 (file)
@@ -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([
index 7d3248dfa262ab06666218343be68aa7f354792d..dc6d503307e92884296154cf54aa55475cc02521 100644 (file)
@@ -4839,7 +4839,7 @@ Die E-Mail-Adresse des neuen Benutzers lautet: {@$user->email}
                <item name="wcf.user.security.multifactor.com.woltlab.wcf.multifactor.totp"><![CDATA[Smartphone-App]]></item>
                <item name="wcf.user.security.multifactor.com.woltlab.wcf.multifactor.backup"><![CDATA[Notfall-Codes]]></item>
                <item name="wcf.user.security.multifactor.com.woltlab.wcf.multifactor.backup.manage"><![CDATA[Notfallcodes verwalten]]></item>
-               <item name="wcf.user.security.multifactor.backup.regenerateCodes"><![CDATA[Neue Codes generieren]]></item>
+               <item name="wcf.user.security.multifactor.backup.regenerateCodes"><![CDATA[Neue Notfallcodes generieren]]></item>
                <item name="wcf.user.security.multifactor.backup.existingCodes"><![CDATA[Aktive Notfallcodes]]></item>
                <item name="wcf.user.security.multifactor.backup.success"><![CDATA[Es wurden erfolgreich neue Codes generiert. Bestehende Codes sind nicht mehr gültig. Bitte {if LANGUAGE_USE_INFORMAL_VARIANT}schreibe dir{else}schreiben Sie sich{/if} die Codes gut auf!]]></item>
                <item name="wcf.user.security.multifactor.com.woltlab.wcf.multifactor.totp.manage"><![CDATA[Smartphone-App verwalten]]></item>
@@ -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.]]></item>
+               <item name="wcf.user.security.multifactor.backup.existingCodes.description"><![CDATA[<p>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.</p>]]></item>
+               <item name="wcf.user.security.multifactor.backup.regenerateCodes.description"><![CDATA[<p>{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.</p>]]></item>
                <item name="wcf.user.security.multifactor.email.enable.description"><![CDATA[<p>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}</p>]]></item>
                <item name="wcf.user.security.multifactor.setupEmail.subject"><![CDATA[Mehrfaktor-Authentifizierung auf {@PAGE_TITLE|language} aktiviert]]></item>
                <item name="wcf.user.security.multifactor.setupEmail.body.html"><![CDATA[<h2>Hallo {$user->username},</h2>
index 4408735a1e878a7a2a63bb48bcb54042d8d77c1a..662e0e74024fd51eb5e0826eb6fd291aef8ccf93 100644 (file)
@@ -4836,7 +4836,7 @@ Open the link below to access the user profile:
                <item name="wcf.user.security.multifactor.com.woltlab.wcf.multifactor.totp"><![CDATA[Smartphone App]]></item>
                <item name="wcf.user.security.multifactor.com.woltlab.wcf.multifactor.backup"><![CDATA[Emergency Codes]]></item>
                <item name="wcf.user.security.multifactor.com.woltlab.wcf.multifactor.backup.manage"><![CDATA[Manage Emergency Codes]]></item>
-               <item name="wcf.user.security.multifactor.backup.regenerateCodes"><![CDATA[Generate New Codes]]></item>
+               <item name="wcf.user.security.multifactor.backup.regenerateCodes"><![CDATA[Generate New Emergency Codes]]></item>
                <item name="wcf.user.security.multifactor.backup.existingCodes"><![CDATA[Active Emergency Codes]]></item>
                <item name="wcf.user.security.multifactor.backup.success"><![CDATA[New Codes were generated successfully. Any existing codes are no longer valid. Please carefully note down the codes.]]></item>
                <item name="wcf.user.security.multifactor.com.woltlab.wcf.multifactor.totp.manage"><![CDATA[Manage Smartphone App]]></item>
@@ -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.]]></item>
+               <item name="wcf.user.security.multifactor.backup.existingCodes.description"><![CDATA[<p>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.</p>]]></item>
+               <item name="wcf.user.security.multifactor.backup.regenerateCodes.description"><![CDATA[<p>Generate new emergency codes if you lost or used up your existing set. Generating new emergency codes will invalidate all existing codes.</p>]]></item>
                <item name="wcf.user.security.multifactor.email.enable.description"><![CDATA[<p>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.</p>]]></item>
                <item name="wcf.user.security.multifactor.setupEmail.subject"><![CDATA[Multi-factor Authentication Enabled on {@PAGE_TITLE|language}]]></item>
                <item name="wcf.user.security.multifactor.setupEmail.body.html"><![CDATA[<h2>Dear {$user->username},</h2>