--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<data xmlns="http://www.woltlab.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.woltlab.com http://www.woltlab.com/XSD/2019/acpTemplateDelete.xsd">
+ <delete>
+ <template>masterPassword</template>
+ <template>masterPasswordInit</template>
+ </delete>
+</data>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<data xmlns="http://www.woltlab.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.woltlab.com http://www.woltlab.com/XSD/2019/fileDelete.xsd">
+ <delete>
+ <file>acp/masterPassword.inc.php</file>
+ <file>lib/acp/form/MasterPasswordForm.class.php</file>
+ <file>lib/acp/form/MasterPasswordInitForm.class.php</file>
+ </delete>
+</data>
<defaultvalue>1</defaultvalue>
<hidden>1</hidden>
</option>
- <option name="module_master_password">
- <categoryname>module.system</categoryname>
- <optiontype>boolean</optiontype>
- <defaultvalue>0</defaultvalue>
- </option>
<option name="visitor_use_tiny_build">
<categoryname>module.system</categoryname>
<optiontype>boolean</optiontype>
</option>
</options>
</import>
+ <delete>
+ <option name="module_master_password"/>
+ </delete>
</data>
*/
// automatically defined constants/constants defined with classes
-\define('MASTER_PASSWORD', '');
\define('PACKAGE_ID', 1);
\define('PACKAGE_NAME', '');
\define('RELATIVE_WCF_DIR', '');
\define('LAST_UPDATE_TIME', 0);
\define('WCF_UUID', 'bd096261-15f4-5dc1-9767-01ce08d7c80b');
\define('WOLTLAB_BRANDING', 1);
-\define('MODULE_MASTER_PASSWORD', 0);
\define('VISITOR_USE_TINY_BUILD', 0);
\define('ENABLE_DEBUG_MODE', 1);
\define('ENABLE_BENCHMARK', 0);
+++ /dev/null
-{include file='header' pageTitle='wcf.acp.masterPassword.enter'}
-
-<script data-relocate="true">
- $(function() {
- $('#masterPassword').focus();
- });
-</script>
-
-<header class="contentHeader">
- <h1 class="contentTitle">{lang}wcf.acp.masterPassword.enter{/lang}</h1>
-</header>
-
-<p class="warning">
- {lang}wcf.acp.masterPassword.enter.deprecated{/lang}
-</p>
-
-{include file='formError'}
-
-<form method="post" action="{link controller='MasterPassword'}{/link}">
- <div class="section">
- <dl{if $errorField == 'masterPassword'} class="formError"{/if}>
- <dt><label for="masterPassword">{lang}wcf.acp.masterPassword{/lang}</label></dt>
- <dd>
- <input type="password" id="masterPassword" name="masterPassword" value="{$masterPassword}" class="medium">
- {if $errorField == 'masterPassword'}
- <small class="innerError">
- {if $errorType == 'empty'}
- {lang}wcf.global.form.error.empty{/lang}
- {else}
- {lang}wcf.acp.masterPassword.error.{@$errorType}{/lang}
- {/if}
- </small>
- {/if}
- <small>{lang}wcf.acp.masterPassword.enter.description{/lang}</small>
- </dd>
- </dl>
-
- {event name='enterFields'}
- </div>
-
- {event name='sections'}
-
- <div class="formSubmit">
- <input type="submit" name="submitButton" value="{lang}wcf.global.button.submit{/lang}" accesskey="s">
- <input type="hidden" name="url" value="{$url}">
- {csrfToken}
- </div>
-</form>
-
-{include file='footer'}
+++ /dev/null
-{include file='header' pageTitle='wcf.acp.masterPassword.init'}
-
-<script data-relocate="true">
- $(function() {
- $('#setPassword').click(function() {
- $('input[type="password"]').val($.proxy(function(index, element) {
- return $(this).text();
- }, this));
- });
- });
-</script>
-
-<header class="contentHeader">
- <h1 class="contentTitle">{lang}wcf.acp.masterPassword.init{/lang}</h1>
-</header>
-
-{include file='formError'}
-
-<form method="post" action="{link controller='MasterPasswordInit'}{/link}">
- <div class="section">
- <dl{if $errorField == 'masterPassword'} class="formError"{/if}>
- <dt><label for="masterPassword">{lang}wcf.acp.masterPassword{/lang}</label></dt>
- <dd>
- <input type="password" id="masterPassword" name="masterPassword" value="{$masterPassword}" class="medium">
- {if $errorField == 'masterPassword'}
- <small class="innerError">
- {if $errorType == 'empty'}
- {lang}wcf.global.form.error.empty{/lang}
- {else}
- {lang}wcf.acp.masterPassword.error.{@$errorType}{/lang}
- {/if}
- </small>
- {/if}
- <small>{lang}wcf.acp.masterPassword.init.description{/lang}</small>
- </dd>
- </dl>
-
- <dl{if $errorField == 'confirmMasterPassword'} class="formError"{/if}>
- <dt><label for="confirmMasterPassword">{lang}wcf.acp.masterPassword.confirm{/lang}</label></dt>
- <dd>
- <input type="password" id="confirmMasterPassword" name="confirmMasterPassword" value="{$confirmMasterPassword}" class="medium">
- {if $errorField == 'confirmMasterPassword'}
- <small class="innerError">
- {if $errorType == 'empty'}
- {lang}wcf.global.form.error.empty{/lang}
- {else}
- {lang}wcf.acp.masterPassword.error.{@$errorType}{/lang}
- {/if}
- </small>
- {/if}
- </dd>
- </dl>
-
- <dl>
- <dt><label for="exampleMasterPassword">{lang}wcf.acp.masterPassword.example{/lang}</label></dt>
- <dd>
- <p><a class="jsTooltip" id="setPassword" title="{lang}wcf.acp.masterPassword.example.set{/lang}">{@$exampleMasterPassword}</a></p>
- <input type="hidden" id="exampleMasterPassword" name="exampleMasterPassword" value="{@$exampleMasterPassword}">
- </dd>
- </dl>
-
- {event name='initFields'}
- </div>
-
- {event name='sections'}
-
- <div class="formSubmit">
- <input type="submit" name="submitButton" value="{lang}wcf.global.button.submit{/lang}" accesskey="s">
- <input type="hidden" name="url" value="{$url}">
- {csrfToken}
- </div>
-</form>
-
-{include file='footer'}
parent::execute();
WCF::getSession()->clearReauthentication();
- WCF::getSession()->unregister('masterPassword');
$this->executed();
use wcf\system\exception\UserInputException;
use wcf\system\language\LanguageFactory;
use wcf\system\WCF;
-use wcf\system\WCFACP;
use wcf\util\XML;
/**
'packageID' => $this->packageID,
]);
}
-
- /**
- * @inheritDoc
- */
- public function show()
- {
- // check master password
- WCFACP::checkMasterPassword();
-
- parent::show();
- }
}
use wcf\system\exception\UserInputException;
use wcf\system\language\LanguageFactory;
use wcf\system\WCF;
-use wcf\system\WCFACP;
use wcf\util\ArrayUtil;
/**
'languages' => $this->languages,
]);
}
-
- /**
- * @inheritDoc
- */
- public function show()
- {
- // check master password
- WCFACP::checkMasterPassword();
-
- parent::show();
- }
}
+++ /dev/null
-<?php
-
-namespace wcf\acp\form;
-
-use wcf\form\AbstractForm;
-use wcf\system\exception\UserInputException;
-use wcf\system\request\LinkHandler;
-use wcf\system\request\RouteHandler;
-use wcf\system\WCF;
-use wcf\util\HeaderUtil;
-use wcf\util\PasswordUtil;
-
-/**
- * Shows the master password form.
- *
- * @author Marcel Werk
- * @copyright 2001-2019 WoltLab GmbH
- * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
- * @package WoltLabSuite\Core\Acp\Form
- * @deprecated 5.4 The master password is deprecated in favor of proper MFA (https://github.com/WoltLab/WCF/issues/3698).
- */
-class MasterPasswordForm extends AbstractForm
-{
- /**
- * master password
- * @var string
- */
- public $masterPassword = '';
-
- /**
- * forward url
- * @var string
- */
- public $url = '';
-
- /**
- * @inheritDoc
- */
- public function readParameters()
- {
- parent::readParameters();
-
- if (\file_exists(WCF_DIR . 'acp/masterPassword.inc.php')) {
- require_once(WCF_DIR . 'acp/masterPassword.inc.php');
- } else {
- HeaderUtil::redirect(LinkHandler::getInstance()->getLink('MasterPasswordInit'));
-
- exit;
- }
- }
-
- /**
- * @inheritDoc
- */
- public function readFormParameters()
- {
- parent::readFormParameters();
-
- if (isset($_POST['masterPassword'])) {
- $this->masterPassword = $_POST['masterPassword'];
- }
- if (isset($_POST['url'])) {
- $this->url = $_POST['url'];
- }
- }
-
- /**
- * @inheritDoc
- */
- public function validate()
- {
- parent::validate();
-
- if (empty($this->masterPassword)) {
- throw new UserInputException('masterPassword');
- }
-
- // check password
- if (!\hash_equals(MASTER_PASSWORD, PasswordUtil::getDoubleSaltedHash($this->masterPassword, MASTER_PASSWORD))) {
- throw new UserInputException('masterPassword', 'invalid');
- }
- }
-
- /**
- * @inheritDoc
- */
- public function save()
- {
- parent::save();
-
- // update session
- WCF::getSession()->register('masterPassword', 1);
- WCF::getSession()->update();
- WCF::getSession()->disableUpdate();
-
- // forward
- if (empty($this->url)) {
- $this->url = LinkHandler::getInstance()->getLink();
- }
- HeaderUtil::redirect($this->url);
-
- exit;
- }
-
- /**
- * @inheritDoc
- */
- public function readData()
- {
- parent::readData();
-
- if (empty($_POST) && \mb_strpos(WCF::getSession()->requestURI, 'MasterPassword') === false) {
- // The request URI on it's own is not sufficient for environments that use different subdomains.
- $protocol = RouteHandler::secureConnection() ? 'https' : 'http';
- $this->url = $protocol . '://' . $_SERVER['HTTP_HOST'] . WCF::getSession()->requestURI;
- }
- }
-
- /**
- * @inheritDoc
- */
- public function assignVariables()
- {
- parent::assignVariables();
-
- WCF::getTPL()->assign([
- 'masterPassword' => $this->masterPassword,
- 'relativeWcfDir' => RELATIVE_WCF_DIR,
- 'url' => $this->url,
- ]);
- }
-}
+++ /dev/null
-<?php
-
-namespace wcf\acp\form;
-
-use wcf\form\AbstractForm;
-use wcf\system\exception\IllegalLinkException;
-use wcf\system\exception\UserInputException;
-use wcf\system\io\File;
-use wcf\system\Regex;
-use wcf\system\WCF;
-use wcf\util\FileUtil;
-use wcf\util\PasswordUtil;
-
-/**
- * Shows the master password init form.
- *
- * @author Marcel Werk
- * @copyright 2001-2019 WoltLab GmbH
- * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
- * @package WoltLabSuite\Core\Acp\Form
- * @deprecated 5.4 The master password is deprecated in favor of proper MFA (https://github.com/WoltLab/WCF/issues/3698).
- */
-class MasterPasswordInitForm extends MasterPasswordForm
-{
- /**
- * master password confirm
- * @var string
- */
- public $confirmMasterPassword = '';
-
- /**
- * @inheritDoc
- */
- public function readParameters()
- {
- AbstractForm::readParameters();
-
- if (\file_exists(WCF_DIR . 'acp/masterPassword.inc.php')) {
- require_once(WCF_DIR . 'acp/masterPassword.inc.php');
-
- if (\defined('MASTER_PASSWORD')) {
- throw new IllegalLinkException();
- }
- }
- }
-
- /**
- * @inheritDoc
- */
- public function readFormParameters()
- {
- parent::readFormParameters();
-
- if (isset($_POST['confirmMasterPassword'])) {
- $this->confirmMasterPassword = $_POST['confirmMasterPassword'];
- }
- }
-
- /**
- * @inheritDoc
- */
- public function validate()
- {
- AbstractForm::validate();
-
- if (empty($this->masterPassword)) {
- throw new UserInputException('masterPassword');
- }
-
- // check password security
- if (\mb_strlen($this->masterPassword) < 12) {
- throw new UserInputException('masterPassword', 'notSecure');
- }
- // digits
- if (!Regex::compile('\d')->match($this->masterPassword)) {
- throw new UserInputException('masterPassword', 'notSecure');
- }
- // latin characters (lower-case)
- if (!Regex::compile('[a-z]')->match($this->masterPassword)) {
- throw new UserInputException('masterPassword', 'notSecure');
- }
- // latin characters (upper-case)
- if (!Regex::compile('[A-Z]')->match($this->masterPassword)) {
- throw new UserInputException('masterPassword', 'notSecure');
- }
-
- // password equals username
- if ($this->masterPassword == WCF::getUser()->username) {
- throw new UserInputException('masterPassword', 'notSecure');
- }
-
- // confirm master password
- if (empty($this->confirmMasterPassword)) {
- throw new UserInputException('confirmMasterPassword');
- }
-
- if ($this->confirmMasterPassword != $this->masterPassword) {
- throw new UserInputException('confirmMasterPassword', 'notEqual');
- }
- }
-
- /**
- * @inheritDoc
- */
- public function save()
- {
- // write master password file
- $file = new File(WCF_DIR . 'acp/masterPassword.inc.php');
- $file->write("<?php
-/** MASTER PASSWORD STORAGE
-DO NOT EDIT THIS FILE */
-define('MASTER_PASSWORD', '" . PasswordUtil::getDoubleSaltedHash($this->masterPassword) . "');
-?>");
- $file->close();
- FileUtil::makeWritable(WCF_DIR . 'acp/masterPassword.inc.php');
-
- parent::save();
- }
-
- /**
- * @inheritDoc
- */
- public function assignVariables()
- {
- parent::assignVariables();
-
- WCF::getTPL()->assign([
- 'confirmMasterPassword' => $this->confirmMasterPassword,
- 'exampleMasterPassword' => PasswordUtil::getRandomPassword(16),
- 'relativeWcfDir' => RELATIVE_WCF_DIR,
- ]);
- }
-}
use wcf\system\menu\acp\ACPMenu;
use wcf\system\style\StyleHandler;
use wcf\system\WCF;
-use wcf\system\WCFACP;
use wcf\util\StringUtil;
/**
// check permission
WCF::getSession()->checkPermissions(['admin.configuration.canEditOption']);
- if ($this->category->categoryName == 'module') {
- // check master password
- WCFACP::checkMasterPassword();
- }
-
// show form
parent::show();
}
use wcf\system\package\validation\PackageValidationException;
use wcf\system\package\validation\PackageValidationManager;
use wcf\system\WCF;
-use wcf\system\WCFACP;
use wcf\util\FileUtil;
/**
throw new PermissionDeniedException();
}
- // check master password
- WCFACP::checkMasterPassword();
-
parent::show();
}
}
use wcf\system\exception\UserInputException;
use wcf\system\request\LinkHandler;
use wcf\system\WCF;
-use wcf\system\WCFACP;
use wcf\util\StringUtil;
use wcf\util\Url;
'action' => 'add',
]);
}
-
- /**
- * @inheritDoc
- */
- public function show()
- {
- // check master password
- WCFACP::checkMasterPassword();
-
- parent::show();
- }
}
use wcf\system\option\user\group\UserGroupOptionHandler;
use wcf\system\request\LinkHandler;
use wcf\system\WCF;
-use wcf\system\WCFACP;
use wcf\util\StringUtil;
/**
'requireMultifactor' => $this->requireMultifactor,
]);
}
-
- /**
- * @inheritDoc
- */
- public function show()
- {
- // check master password
- WCFACP::checkMasterPassword();
-
- // show form
- parent::show();
- }
}
use wcf\system\option\user\group\IUserGroupGroupOptionType;
use wcf\system\option\user\group\IUserGroupOptionType;
use wcf\system\WCF;
-use wcf\system\WCFACP;
/**
* Shows the user group option form to edit a single option.
]);
}
- /**
- * @inheritDoc
- */
- public function show()
- {
- // check master password
- WCFACP::checkMasterPassword();
-
- parent::show();
- }
-
/**
* Validates object options and permissions.
*
use wcf\system\package\PackageInstallationDispatcher;
use wcf\system\package\validation\PackageValidationManager;
use wcf\system\WCF;
-use wcf\system\WCFACP;
/**
* Shows a confirmation page prior to start installing.
'installingImportedStyle' => $this->installingImportedStyle,
]);
}
-
- /**
- * @inheritDoc
- */
- public function show()
- {
- // check master password
- WCFACP::checkMasterPassword();
-
- parent::show();
- }
}
use wcf\page\AbstractPage;
use wcf\system\package\PackageUpdateDispatcher;
use wcf\system\WCF;
-use wcf\system\WCFACP;
/**
* Shows the package update confirmation form.
'availableUpdates' => $this->availableUpdates,
]);
}
-
- /**
- * @inheritDoc
- */
- public function show()
- {
- // check master password
- WCFACP::checkMasterPassword();
-
- parent::show();
- }
}
// Cover photos are always enabled since 5.4.
// https://github.com/WoltLab/WCF/issues/3902
\define('MODULE_USER_COVER_PHOTO', 1);
+
+ // The master password has been removed since 5.5.
+ // https://github.com/WoltLab/WCF/issues/3913
+ \define('MODULE_MASTER_PASSWORD', 0);
}
/**
namespace wcf\system;
-use wcf\acp\form\MasterPasswordForm;
-use wcf\acp\form\MasterPasswordInitForm;
use wcf\data\menu\Menu;
use wcf\data\menu\MenuCache;
use wcf\system\application\ApplicationHandler;
*/
public static function checkMasterPassword()
{
- if (
- \defined('MODULE_MASTER_PASSWORD')
- && MODULE_MASTER_PASSWORD == 1
- && !WCF::getSession()->getVar('masterPassword')
- ) {
- if (ENABLE_ENTERPRISE_MODE && WCF::getUser()->hasOwnerAccess()) {
- return;
- }
-
- if (\file_exists(WCF_DIR . 'acp/masterPassword.inc.php')) {
- require_once(WCF_DIR . 'acp/masterPassword.inc.php');
- }
- if (\defined('MASTER_PASSWORD')) {
- $form = new MasterPasswordForm();
- $form->__run();
-
- exit;
- } else {
- $form = new MasterPasswordInitForm();
- $form->__run();
-
- exit;
- }
- }
+ // Does nothing. The master password has been removed since version 5.5.
}
}
\define('PACKAGE_ID', 0);
\define('HTTP_SEND_X_FRAME_OPTIONS', 0);
\define('CACHE_SOURCE_TYPE', 'disk');
-\define('MODULE_MASTER_PASSWORD', 1);
\define('ENABLE_DEBUG_MODE', 1);
\define('ENABLE_BENCHMARK', 0);
\define('ENABLE_ENTERPRISE_MODE', 0);
$factory->load();
SessionHandler::getInstance()->changeUser($admin);
- SessionHandler::getInstance()->register('masterPassword', 1);
SessionHandler::getInstance()->register('__wcfSetup_developerMode', self::$developerMode);
SessionHandler::getInstance()->register('__wcfSetup_directories', self::$directories);
SessionHandler::getInstance()->register('__wcfSetup_imagick', ImagickImageAdapter::isSupported());
\define('CACHE_SOURCE_TYPE', 'disk');
\define('IMAGE_ADAPTER_TYPE', 'gd');
-\define('MODULE_MASTER_PASSWORD', 0);
\define('TIMEZONE', 'Europe/Berlin');
\define('ENABLE_DEBUG_MODE', 1);
<item name="wcf.acp.language.add.package"><![CDATA[Paket]]></item>
<item name="wcf.acp.language.add.package.description"><![CDATA[Die importierten Texte werden dem ausgewählten Paket zugeordnet.]]></item>
</category>
- <category name="wcf.acp.masterPassword">
- <item name="wcf.acp.masterPassword"><![CDATA[Hauptkennwort]]></item>
- <item name="wcf.acp.masterPassword.confirm"><![CDATA[Hauptkennwort wiederholen]]></item>
- <item name="wcf.acp.masterPassword.enter"><![CDATA[Hauptkennwort erforderlich]]></item>
- <item name="wcf.acp.masterPassword.enter.description"><![CDATA[Die aufgerufene Seite oder Aktion erfordert aus Sicherheitsgründen die Eingabe des Hauptkennwortes. Pro Sitzung ist die Eingabe des Hauptkennwortes nur einmal erforderlich. Falls {if LANGUAGE_USE_INFORMAL_VARIANT}du{else}Sie{/if} das Hauptkennwort vergessen haben {if LANGUAGE_USE_INFORMAL_VARIANT}solltest{else}sollten{/if}, {if LANGUAGE_USE_INFORMAL_VARIANT}kannst du{else}können Sie{/if} es zurücksetzen, indem {if LANGUAGE_USE_INFORMAL_VARIANT}du{else}Sie{/if} die Datei <em>{@$relativeWcfDir}acp/masterPassword.inc.php</em> {if LANGUAGE_USE_INFORMAL_VARIANT}löschst{else}löschen{/if}.]]></item>
- <item name="wcf.acp.masterPassword.error.notEqual"><![CDATA[Die eingegebenen Kennwörter sind nicht identisch.]]></item>
- <item name="wcf.acp.masterPassword.error.notSecure"><![CDATA[Das Kennwort wurde als unsicher eingestuft. Das Kennwort sollte mindestens acht Zeichen lang sein, große und kleine lateinische Buchstaben, Zahlen und Sonderzeichen enthalten. Es darf nicht mit den Kennwörtern von anderen Administratoren übereinstimmen.]]></item>
- <item name="wcf.acp.masterPassword.error.invalid"><![CDATA[Das Hauptkennwort ist nicht korrekt. Falls {if LANGUAGE_USE_INFORMAL_VARIANT}du{else}Sie{/if} das Hauptkennwort vergessen haben {if LANGUAGE_USE_INFORMAL_VARIANT}solltest{else}sollten{/if}, {if LANGUAGE_USE_INFORMAL_VARIANT}kannst du{else}können Sie{/if} es zurücksetzen, indem {if LANGUAGE_USE_INFORMAL_VARIANT}du{else}Sie{/if} die Datei <em>{@$relativeWcfDir}acp/masterPassword.inc.php</em> {if LANGUAGE_USE_INFORMAL_VARIANT}löschst{else}löschen{/if}.]]></item>
- <item name="wcf.acp.masterPassword.example"><![CDATA[Vorschlag]]></item>
- <item name="wcf.acp.masterPassword.example.set"><![CDATA[Vorschlag übernehmen]]></item>
- <item name="wcf.acp.masterPassword.init"><![CDATA[Hauptkennwort festlegen]]></item>
- <item name="wcf.acp.masterPassword.init.description"><![CDATA[Das Hauptkennwort ist ein zusätzlicher Schutz für sicherheitskritische Funktionen. {if LANGUAGE_USE_INFORMAL_VARIANT}Du solltest{else}Sie sollten{/if} ein möglichst sicheres Kennwort verwenden, dass sich von {if LANGUAGE_USE_INFORMAL_VARIANT}deinem{else}Ihrem{/if} regulären Administrator-Kennwort unterscheidet, Dritten nicht bekannt ist und auch nicht auf anderen Internetseiten verwendet wird.]]></item>
- <item name="wcf.acp.masterPassword.enter.deprecated"><![CDATA[Die Unterstützung für das Hauptkennwort ist obsolet und wird in einer zukünftigen Version ohne weiteren Hinweis entfernt. Die <a href="{link controller='AccountSecurity' forceFrontend=true application='wcf'}#section_multifactor{/link}">Mehrfaktor-Authentifizierung</a> schützt Benutzerkonten zuverlässiger und in allen Bereichen. Falls gewünscht, können einzelne Benutzergruppen verpflichtet werden, die Mehrfaktor-Authentifizierung einzurichten, bevor diese sensible Bereiche, wie beispielsweise die Administrationsoberfläche betreten können.]]></item>
- </category>
<category name="wcf.acp.menu">
<item name="wcf.acp.menu.link.management"><![CDATA[Verwaltung]]></item>
<item name="wcf.acp.menu.link.maintenance"><![CDATA[Wartung]]></item>
<item name="wcf.acp.option.meta_description"><![CDATA[Meta Description]]></item>
<item name="wcf.acp.option.og_image"><![CDATA[Standardwert „Open Graph“-Bild]]></item>
<item name="wcf.acp.option.og_image.description"><![CDATA[Pfad zur Bilddatei, die beim Verlinken von Inhalten auf Facebook, Twitter und anderen „Social Media“-Seiten standardmäßig eingebunden wird.]]></item>
- <item name="wcf.acp.option.module_master_password"><![CDATA[Hauptkennwort aktivieren (obsolet)]]></item>
- <item name="wcf.acp.option.module_master_password.description"><![CDATA[Von der Verwendung des Hauptkennworts wird abgeraten. Stattdessen sollte die Mehrfaktor-Authentifizierung genutzt werden. Diese schützt Benutzerkonten zuverlässiger und in allen Bereichen. Die Unterstützung für das Hauptkennwort wird in einer zukünftigen Version ohne weiteren Hinweis entfernt.]]></item>
<item name="wcf.acp.option.page_description"><![CDATA[Seitenbeschreibung]]></item>
<item name="wcf.acp.option.page_title"><![CDATA[Titel der Seite]]></item>
<item name="wcf.acp.option.proxy_server_http"><![CDATA[Proxy-Server (HTTP)]]></item>
<item name="wcf.upload.error.uploadFailed"><![CDATA[Beim Hochladen der Datei ist ein unbekannter Fehler aufgetreten.]]></item>
</category>
</import>
+<delete>
+ <item name="wcf.acp.masterPassword"/>
+ <item name="wcf.acp.masterPassword.confirm"/>
+ <item name="wcf.acp.masterPassword.enter"/>
+ <item name="wcf.acp.masterPassword.enter.description"/>
+ <item name="wcf.acp.masterPassword.error.notEqual"/>
+ <item name="wcf.acp.masterPassword.error.notSecure"/>
+ <item name="wcf.acp.masterPassword.error.invalid"/>
+ <item name="wcf.acp.masterPassword.example"/>
+ <item name="wcf.acp.masterPassword.example.set"/>
+ <item name="wcf.acp.masterPassword.init"/>
+ <item name="wcf.acp.masterPassword.init.description"/>
+ <item name="wcf.acp.masterPassword.enter.deprecated"/>
+ <item name="wcf.acp.option.module_master_password"/>
+ <item name="wcf.acp.option.module_master_password.description"/>
+</delete>
</language>
<item name="wcf.acp.language.add.package"><![CDATA[Package]]></item>
<item name="wcf.acp.language.add.package.description"><![CDATA[The imported phrases will be assigned to the selected package.]]></item>
</category>
- <category name="wcf.acp.masterPassword">
- <item name="wcf.acp.masterPassword"><![CDATA[Master Password]]></item>
- <item name="wcf.acp.masterPassword.confirm"><![CDATA[Confirm Master Password]]></item>
- <item name="wcf.acp.masterPassword.enter"><![CDATA[Master Password Required]]></item>
- <item name="wcf.acp.masterPassword.enter.description"><![CDATA[The page or action requires the master password for security reasons, the password will be remembered for your current session. In case you forgot the password, please reset it by removing the file <em>{@$relativeWcfDir}acp/masterPassword.inc.php</em>.]]></item>
- <item name="wcf.acp.masterPassword.error.invalid"><![CDATA[The password is incorrect. In case you forgot the password, please reset it by removing the file <em>{@$relativeWcfDir}acp/masterPassword.inc.php</em>.]]></item>
- <item name="wcf.acp.masterPassword.error.notEqual"><![CDATA[The passwords do not match.]]></item>
- <item name="wcf.acp.masterPassword.error.notSecure"><![CDATA[The password is considered unsafe. It should be at least 8 characters, containing uppercase and lowercase letters, numbers, and special symbols.]]></item>
- <item name="wcf.acp.masterPassword.example"><![CDATA[Suggestion]]></item>
- <item name="wcf.acp.masterPassword.example.set"><![CDATA[Use Suggestion]]></item>
- <item name="wcf.acp.masterPassword.init"><![CDATA[Set Master Password]]></item>
- <item name="wcf.acp.masterPassword.init.description"><![CDATA[The master password is the last line of defense, protecting both critical settings and sensitive data. One should choose a rather strong password which is neither known to any 3rd party person nor re-used on other web pages.]]></item>
- <item name="wcf.acp.masterPassword.enter.deprecated"><![CDATA[Support for the master password is discouraged and will be removed in a future version without further notice. The <a href="{link controller='AccountSecurity' forceFrontend=true application='wcf'}#section_multifactor{/link}">Multi-factor Authentication</a> protects accounts more reliably and in all areas. If desired, specific user groups can be required to set up multi-factor authentication, before they are able to enter sensitive areas, such as the Administration Control Panel.]]></item>
- </category>
<category name="wcf.acp.menu">
<item name="wcf.acp.menu.link.management"><![CDATA[Management]]></item>
<item name="wcf.acp.menu.link.maintenance"><![CDATA[Maintenance]]></item>
<item name="wcf.acp.option.meta_description"><![CDATA[Meta Description]]></item>
<item name="wcf.acp.option.og_image"><![CDATA[Open Graph Image]]></item>
<item name="wcf.acp.option.og_image.description"><![CDATA[Path to the default image that will be displayed when sharing your site on Facebook, Twitter and other social media sites.]]></item>
- <item name="wcf.acp.option.module_master_password"><![CDATA[Enable master password (Not Recommended)]]></item>
- <item name="wcf.acp.option.module_master_password.description"><![CDATA[Use of the master password is discouraged. Instead multi-factor authentication should be set up. Multi-factor authentication protects accounts more reliably and in all areas. Support for the master password will be removed in a future version without further notice.]]></item>
<item name="wcf.acp.option.page_description"><![CDATA[Page Description]]></item>
<item name="wcf.acp.option.page_title"><![CDATA[Page Title]]></item>
<item name="wcf.acp.option.proxy_server_http"><![CDATA[Proxy-Server (HTTP)]]></item>
<item name="wcf.upload.error.uploadFailed"><![CDATA[An unknown error occurred during the upload.]]></item>
</category>
</import>
+<delete>
+ <item name="wcf.acp.masterPassword"/>
+ <item name="wcf.acp.masterPassword.confirm"/>
+ <item name="wcf.acp.masterPassword.enter"/>
+ <item name="wcf.acp.masterPassword.enter.description"/>
+ <item name="wcf.acp.masterPassword.error.notEqual"/>
+ <item name="wcf.acp.masterPassword.error.notSecure"/>
+ <item name="wcf.acp.masterPassword.error.invalid"/>
+ <item name="wcf.acp.masterPassword.example"/>
+ <item name="wcf.acp.masterPassword.example.set"/>
+ <item name="wcf.acp.masterPassword.init"/>
+ <item name="wcf.acp.masterPassword.init.description"/>
+ <item name="wcf.acp.masterPassword.enter.deprecated"/>
+ <item name="wcf.acp.option.module_master_password"/>
+ <item name="wcf.acp.option.module_master_password.description"/>
+</delete>
</language>