<th class="columnText columnEnvironment{if $sortField == 'environment'} active {@$sortOrder}{/if}"><a href="{link controller='UserAuthenticationFailureList'}pageNo={@$pageNo}&sortField=environment&sortOrder={if $sortField == 'environment' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.acp.user.authentication.failure.environment{/lang}</a></th>
<th class="columnTitle columnUsername{if $sortField == 'username'} active {@$sortOrder}{/if}"><a href="{link controller='UserAuthenticationFailureList'}pageNo={@$pageNo}&sortField=username&sortOrder={if $sortField == 'username' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.user.username{/lang}</a></th>
<th class="columnDate columnTime{if $sortField == 'time'} active {@$sortOrder}{/if}"><a href="{link controller='UserAuthenticationFailureList'}pageNo={@$pageNo}&sortField=time&sortOrder={if $sortField == 'time' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.acp.user.authentication.failure.time{/lang}</a></th>
+ <th class="columnText columnValidationError{if $sortField === 'validationError'} active {@$sortOrder}{/if}"><a href="{link controller='UserAuthenticationFailureList'}pageNo={@$pageNo}&sortField=validationError&sortOrder={if $sortField === 'validationError' && $sortOrder === 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.acp.user.authentication.failure.validationError{/lang}</a></th>
<th class="columnURL columnIpAddress{if $sortField == 'ipAddress'} active {@$sortOrder}{/if}"><a href="{link controller='UserAuthenticationFailureList'}pageNo={@$pageNo}&sortField=ipAddress&sortOrder={if $sortField == 'ipAddress' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.user.ipAddress{/lang}</a></th>
<th class="columnText columnUserAgent{if $sortField == 'userAgent'} active {@$sortOrder}{/if}"><a href="{link controller='UserAuthenticationFailureList'}pageNo={@$pageNo}&sortField=userAgent&sortOrder={if $sortField == 'userAgent' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{/link}">{lang}wcf.user.userAgent{/lang}</a></th>
{if $authenticationFailure->userID}<a href="{link controller='UserEdit' id=$authenticationFailure->userID}{/link}">{$authenticationFailure->username}</a>{else}{$authenticationFailure->username}{/if}
</td>
<td class="columnDate columnTime">{@$authenticationFailure->time|time}</td>
+ <td class="columnText columnValidationError">
+ {if $authenticationFailure->validationError}
+ {lang}wcf.acp.user.authentication.failure.validationError.{$authenticationFailure->validationError}{/lang}
+ {/if}
+ </td>
<td class="columnSmallText columnIpAddress">{$authenticationFailure->getIpAddress()}</td>
<td class="columnSmallText columnUserAgent" title="{$authenticationFailure->userAgent}">{$authenticationFailure->userAgent|truncate:75|tableWordwrap}</td>
DefaultFalseBooleanDatabaseTableColumn::create('multifactorActive'),
]),
+ PartialDatabaseTable::create('wcf1_user_authentication_failure')
+ ->columns([
+ NotNullVarchar255DatabaseTableColumn::create('validationError')
+ ->defaultValue(''),
+ ]),
+
PartialDatabaseTable::create('wcf1_user_avatar')
->columns([
DefaultFalseBooleanDatabaseTableColumn::create("hasWebP"),
'time' => TIME_NOW,
'ipAddress' => UserUtil::getIpAddress(),
'userAgent' => UserUtil::getUserAgent(),
+ 'validationError' => 'invalid' . \ucfirst($this->errorField),
],
]);
$action->executeAction();
'time' => TIME_NOW,
'ipAddress' => UserUtil::getIpAddress(),
'userAgent' => UserUtil::getUserAgent(),
+ 'validationError' => 'invalid' . \ucfirst($this->errorField),
],
]);
$action->executeAction();
<item name="wcf.acp.user.authentication.failure.time"><![CDATA[Datum]]></item>
<item name="wcf.acp.user.authentication.failure.password"><![CDATA[Ungültiges Kennwort]]></item>
<item name="wcf.acp.user.authentication.failure.username"><![CDATA[Unbekannter Benutzername]]></item>
+ <item name="wcf.acp.user.authentication.failure.validationError"><![CDATA[Fehler]]></item>
+ <item name="wcf.acp.user.authentication.failure.validationError.invalidPassword"><![CDATA[Falsches Passwort]]></item>
+ <item name="wcf.acp.user.authentication.failure.validationError.invalidUsername"><![CDATA[Unbekannter Benutzer]]></item>
<item name="wcf.acp.user.activation.mail.subject"><![CDATA[{if LANGUAGE_USE_INFORMAL_VARIANT}Dein{else}Ihr{/if} Benutzerkonto auf der Website: {@PAGE_TITLE|language} wurde freigeschaltet]]></item>
<item name="wcf.acp.user.activation.mail.html.headline"><![CDATA[Hallo {$mailbox->getUser()->username},]]></item>
<item name="wcf.acp.user.activation.mail.html.text"><![CDATA[
<item name="wcf.acp.user.authentication.failure.time"><![CDATA[Date]]></item>
<item name="wcf.acp.user.authentication.failure.password"><![CDATA[Invalid Password]]></item>
<item name="wcf.acp.user.authentication.failure.username"><![CDATA[Unknown Username]]></item>
+ <item name="wcf.acp.user.authentication.failure.validationError"><![CDATA[Error]]></item>
+ <item name="wcf.acp.user.authentication.failure.validationError.invalidPassword"><![CDATA[Incorrect password]]></item>
+ <item name="wcf.acp.user.authentication.failure.validationError.invalidUsername"><![CDATA[Unknown user]]></item>
<item name="wcf.acp.user.activation.mail.subject"><![CDATA[Your account on the website: {@PAGE_TITLE|language} has been approved]]></item>
<item name="wcf.acp.user.activation.mail.html.headline"><![CDATA[Dear {$mailbox->getUser()->username},]]></item>
<item name="wcf.acp.user.activation.mail.html.text"><![CDATA[
time INT(10) NOT NULL DEFAULT 0,
ipAddress VARCHAR(39) NOT NULL DEFAULT '',
userAgent VARCHAR(255) NOT NULL DEFAULT '',
+ validationError VARCHAR(255) NOT NULL DEFAULT '',
KEY (ipAddress, time),
KEY (time)
);