Tim Düsterhus [Wed, 25 Aug 2021 11:52:15 +0000 (13:52 +0200)]
Clean up control and data flow in UserFormField::validate()
Tim Düsterhus [Wed, 25 Aug 2021 11:48:44 +0000 (13:48 +0200)]
Fix typo in en.xml
Tim Düsterhus [Wed, 25 Aug 2021 11:47:33 +0000 (13:47 +0200)]
Fix error message for nonExistent user in UserFormField
Tim Düsterhus [Wed, 25 Aug 2021 11:39:38 +0000 (13:39 +0200)]
Merge branch '5.3' into 5.4
Tim Düsterhus [Wed, 25 Aug 2021 11:37:43 +0000 (13:37 +0200)]
Merge branch '5.2' into 5.3
Tim Düsterhus [Wed, 25 Aug 2021 11:36:54 +0000 (13:36 +0200)]
Correctly handle null values in UserFormField::validate()
Closes #4471
Co-authored-by: Fabii547 <Fabii547@users.noreply.github.com>
Tim Düsterhus [Wed, 25 Aug 2021 11:32:55 +0000 (13:32 +0200)]
Simplify UserFormField's form data processor using `\array_column()`
Tim Düsterhus [Wed, 25 Aug 2021 11:25:31 +0000 (13:25 +0200)]
Make requirement validation more readable in UserFormField::validate()
Tim Düsterhus [Wed, 25 Aug 2021 11:21:07 +0000 (13:21 +0200)]
Return explicit `null` in UserFormField::getSaveValue()
Tim Düsterhus [Wed, 25 Aug 2021 08:37:13 +0000 (10:37 +0200)]
Add missing 'not' in error message in AbstractFormFieldDecorator
Tim Düsterhus [Wed, 25 Aug 2021 07:19:28 +0000 (09:19 +0200)]
Trim trailing whitespace in Core/Ui/Object/Action.ts
Alexander Ebert [Tue, 24 Aug 2021 21:53:37 +0000 (23:53 +0200)]
Prevent the default action of a toggle button
Alexander Ebert [Tue, 24 Aug 2021 21:23:55 +0000 (23:23 +0200)]
Prevent the menu item itself being selected as its parent item
See https://community.woltlab.com/thread/291999-men%C3%BCpunkt-verschwindet-wenn-%C3%BCbergeordneter-men%C3%BCpunkt-der-gleiche-ist/
Alexander Ebert [Tue, 24 Aug 2021 21:15:20 +0000 (23:15 +0200)]
Match mentions later because they are less specific
Parts like `@example` can legitimately appears as part of a link that gets auto-detected.
This issue was discovered when an URL was pasted that happens to also match a user that is named `document`. The "offending" URL was: `https://developer.mozilla.org/de/docs/Web/CSS/@document`
The `@document` is recognized as part of a mention because the forward slash is a valid token that matches the boundary condition (`\b`) of the regex for mentions.
See https://community.woltlab.com/thread/292020-automatische-link-umwandlung-schl%C3%A4gt-fehlt/
Alexander Ebert [Tue, 24 Aug 2021 16:10:20 +0000 (18:10 +0200)]
Improved phrasing of merging user accounts
https://community.woltlab.com/thread/292121-merging-user-accounts/
Alexander Ebert [Tue, 24 Aug 2021 15:52:44 +0000 (17:52 +0200)]
Improved phrasing
https://community.woltlab.com/thread/292111-typo-verbesserung-types-of-content-und-by-zu-of/
Alexander Ebert [Tue, 24 Aug 2021 15:47:31 +0000 (17:47 +0200)]
Reset the page cache when modifying the app landing pages
Fixes #4475
Alexander Ebert [Tue, 24 Aug 2021 15:17:21 +0000 (17:17 +0200)]
Recommend the maintenance mode while rebuilding data
Closes #4419
Tim Düsterhus [Tue, 24 Aug 2021 14:44:05 +0000 (16:44 +0200)]
Exclude banned users from list of users awaiting approval
WoltLab [Tue, 24 Aug 2021 12:28:06 +0000 (12:28 +0000)]
Updating minified JavaScript files
Tim Düsterhus [Mon, 23 Aug 2021 14:30:28 +0000 (16:30 +0200)]
Merge pull request #4473 from WoltLab/samesite
Set SameSite=none when embedding into frames is allowed
Tim Düsterhus [Mon, 23 Aug 2021 14:15:52 +0000 (16:15 +0200)]
Set SameSite=none when embedding into frames is allowed
Resolves #4428
Tim Düsterhus [Fri, 20 Aug 2021 13:52:15 +0000 (15:52 +0200)]
Merge pull request #4470 from WoltLab/oauth2-state-clear
Ensure that the OAuth 2 state parameter is cleared in all cases
Tim Düsterhus [Fri, 20 Aug 2021 13:16:46 +0000 (15:16 +0200)]
Ensure that the OAuth 2 state parameter is cleared in all cases
Alexander Ebert [Fri, 20 Aug 2021 13:09:50 +0000 (15:09 +0200)]
Missing phrases for validation errors in the app management
Tim Düsterhus [Fri, 20 Aug 2021 09:50:14 +0000 (11:50 +0200)]
Merge pull request #4467 from WoltLab/coverPhoto-worker
Fix handling of cover photos in UserRebuildDataWorker
Peter Lohse [Fri, 20 Aug 2021 09:19:23 +0000 (11:19 +0200)]
Add AbstractFormFieldDecorator (#4469)
Tim Düsterhus [Fri, 20 Aug 2021 07:35:35 +0000 (09:35 +0200)]
Remove records of unreadable cover photos in UserRebuildDataWorker
This is a clean fix of
c3ebf8b995927b826072cfcc72d08a9ebd93f878.
Tim Düsterhus [Fri, 20 Aug 2021 07:31:14 +0000 (09:31 +0200)]
Check `coverPhotoHasWebP` in UserRebuildDataWorker
This is already checked in `->createWebpVariant()`, but with the `->update()`
added in the previous commit this saves some work.
Tim Düsterhus [Fri, 20 Aug 2021 07:30:32 +0000 (09:30 +0200)]
Update `coverPhotoHasWebP` in UserRebuilDataWorker
Tim Düsterhus [Fri, 20 Aug 2021 07:20:51 +0000 (09:20 +0200)]
Use ->getLocation() in UserCoverPhoto::createWebpVariant()
This partially reapplies
c3ebf8b995927b826072cfcc72d08a9ebd93f878 which was
reverted in
300312306b2858b6b9f474a30814fe16c3e1854c.
Tim Düsterhus [Fri, 20 Aug 2021 07:19:28 +0000 (09:19 +0200)]
Revert "Skip cover photos that cannot be read"
This should rather be cleanly fixed within the UserRebuildDataWorker, while
also updating the database on failure.
This reverts commit
c3ebf8b995927b826072cfcc72d08a9ebd93f878.
Tim Düsterhus [Thu, 19 Aug 2021 14:43:57 +0000 (16:43 +0200)]
Fix check whether a non-owned index is being dropped in DatabaseTableChangeProcessor
The reproducer and fix is effectively identical to the one in
d7f721d6f920d66f75102723b504d89e57a8c9ff.
Package A: Installs KEY someIndex (`UNIQUE`)
Package B: Installs UNIQUE KEY someIndex2 (`UNIQUE`)
Package B: Drops UNIQUE KEY someIndex2 (`UNIQUE`)
It was erroneously detected that Package B would drop the index owned by
Package A. The actual dropping logic was already correct, just the safety check
was incorrect.
Alexander Ebert [Wed, 18 Aug 2021 16:37:11 +0000 (18:37 +0200)]
Skip cover photos that cannot be read
Tim Düsterhus [Wed, 18 Aug 2021 09:35:20 +0000 (11:35 +0200)]
Merge pull request #4464 from WoltLab/session-id-unpack
Fix unpacking of the sessionId
Tim Düsterhus [Wed, 18 Aug 2021 07:43:22 +0000 (09:43 +0200)]
Add safety check for unpacked session cookie data
Tim Düsterhus [Wed, 18 Aug 2021 07:44:07 +0000 (09:44 +0200)]
Fix unpacking of the sessionId
As documented by PHP's reference documentation:
> The "a" code now retains trailing NULL bytes.
> The "A" code now strips all trailing ASCII whitespace (spaces, tabs,
> newlines, carriage returns, and NULL bytes).
Previously, with the 'A' code, sessionIds ending in ASCII whitespace would be
incorrectly unpacked, missing their trailing bytes. This ultimately resulted in
the session not being found and the user being logged out.
Five of the 256 possible characters exhibited this bug, making this fail in
roughly 2% of the cases.
However this likely was not noticable by the typical user. Once they have a
non-affected sessionId, this Id is not going to change. What the user might've
noticed is a login not working, despite showing a success message, because they
sessionId change after a successful login handed out an affected sessionId. But
then the user would likely try again, succeeding this time and writing off the
incident as a fluke.
Test script to reproduce the issue:
<?php
for ($i = 0; $i <= 255; $i++) {
$string = "foo".chr($i);
$packed = \pack(
'CA4',
1,
$string
);
$unpacked1 = \unpack('Cversion/A4string', $packed);
$unpacked2 = \unpack('Cversion/a4string', $packed);
if ($unpacked1['string'] !== $string) {
echo "$i: unpacked1\n";
}
if ($unpacked2['string'] !== $string) {
echo "$i: unpacked2\n";
}
}
Tim Düsterhus [Wed, 18 Aug 2021 07:04:18 +0000 (09:04 +0200)]
Fix informal phrase in de.xml
Marcel Werk [Mon, 16 Aug 2021 13:08:54 +0000 (15:08 +0200)]
Mark as read doesn't removed the badge from submenu entries
Marcel Werk [Mon, 16 Aug 2021 12:56:30 +0000 (14:56 +0200)]
Missing informal variant
Marcel Werk [Mon, 16 Aug 2021 12:52:59 +0000 (14:52 +0200)]
Typo
Tim Düsterhus [Mon, 16 Aug 2021 10:53:46 +0000 (12:53 +0200)]
Whitelist `abs` in enterprise mode
Tim Düsterhus [Mon, 16 Aug 2021 09:02:42 +0000 (11:02 +0200)]
Merge pull request #4463 from WoltLab/smiley-unicode-title
Fix Unicode in smiley titles
Tim Düsterhus [Mon, 16 Aug 2021 07:09:10 +0000 (09:09 +0200)]
Fix Unicode in smiley titles
see
5d0bf3ec233f62c6a5a68629e32b7eaa8c9d1dd3
see #4156
Tim Düsterhus [Sun, 15 Aug 2021 12:33:39 +0000 (14:33 +0200)]
Fix localization of PAGE_TITLE in __multifactorTotpSecretField.tpl
Tim Düsterhus [Fri, 13 Aug 2021 10:31:32 +0000 (12:31 +0200)]
Add `required` attributes to acptemplates/login
Marcel Werk [Fri, 13 Aug 2021 09:35:44 +0000 (11:35 +0200)]
Show article labels in recent activities
Tim Düsterhus [Fri, 13 Aug 2021 08:45:58 +0000 (10:45 +0200)]
Fix PHP 8.1 compatibility in DatabaseObject::getDatabaseTableIndexName()
Tim Düsterhus [Fri, 13 Aug 2021 07:20:30 +0000 (09:20 +0200)]
Merge branch '5.3' into 5.4
Tim Düsterhus [Fri, 13 Aug 2021 07:19:27 +0000 (09:19 +0200)]
Merge branch '5.2' into 5.3
Tim Düsterhus [Fri, 13 Aug 2021 07:18:36 +0000 (09:18 +0200)]
Merge pull request #4459 from SoftCreatR/bugfix/custom-errors
Unify error handling in several templates
Sascha Greuel [Thu, 12 Aug 2021 16:08:27 +0000 (18:08 +0200)]
Unified error handling in several templates
Tim Düsterhus [Thu, 12 Aug 2021 15:22:34 +0000 (17:22 +0200)]
Slightly improve phrasing in de.xml
Tim Düsterhus [Thu, 12 Aug 2021 08:09:17 +0000 (10:09 +0200)]
Merge branch '5.3' into 5.4
Tim Düsterhus [Thu, 12 Aug 2021 08:07:08 +0000 (10:07 +0200)]
Add missing call to ->loadVariables() before downloading Google Font during style import
Joshua Rüsweg [Thu, 12 Aug 2021 07:23:30 +0000 (09:23 +0200)]
Rename `Ui/Object/Action/Toogle` to `Toggle` (#4450)
Tim Düsterhus [Wed, 11 Aug 2021 13:31:13 +0000 (15:31 +0200)]
Merge pull request #4456 from WoltLab/style-edit-description
Prevent StyleEditForm from creating phrases with empty name
Tim Düsterhus [Wed, 11 Aug 2021 12:22:10 +0000 (14:22 +0200)]
Delete the empty phrase when updating to 5.4.5
Tim Düsterhus [Wed, 11 Aug 2021 12:19:53 +0000 (14:19 +0200)]
Validate the languageVariable in I18nHandler::save()
Tim Düsterhus [Wed, 11 Aug 2021 12:17:49 +0000 (14:17 +0200)]
Add LanguageEditor::validateItemName()
Tim Düsterhus [Wed, 11 Aug 2021 12:12:42 +0000 (14:12 +0200)]
Store deterministic language variable for style description in StyleEditForm
If the `styleDescription` was empty (as it might be for the default style) this
attempted to store the description in the language item with empty name.
Marcel Werk [Wed, 11 Aug 2021 11:26:02 +0000 (13:26 +0200)]
Missing information who reported a content, if report was made by a guest
Tim Düsterhus [Wed, 11 Aug 2021 09:56:40 +0000 (11:56 +0200)]
Merge branch '5.3' into 5.4
Tim Düsterhus [Wed, 11 Aug 2021 09:56:10 +0000 (11:56 +0200)]
Merge branch '5.2' into 5.3
Tim Düsterhus [Wed, 11 Aug 2021 09:37:23 +0000 (11:37 +0200)]
Merge pull request #4453 from WoltLab/iformbutton-is-available
Check whether an IFormButton is available before rendering
Tim Düsterhus [Wed, 11 Aug 2021 07:54:12 +0000 (09:54 +0200)]
Check whether an IFormButton is available before rendering
WoltLab [Tue, 10 Aug 2021 13:30:36 +0000 (13:30 +0000)]
Updating minified JavaScript files
Alexander Ebert [Tue, 10 Aug 2021 13:26:04 +0000 (15:26 +0200)]
Release 5.4.4
Tim Düsterhus [Tue, 10 Aug 2021 12:36:32 +0000 (14:36 +0200)]
Tim Düsterhus [Tue, 10 Aug 2021 12:34:12 +0000 (14:34 +0200)]
mutec [Tue, 10 Aug 2021 10:06:27 +0000 (12:06 +0200)]
use the sessions language id instead of the user's default in `I18nDatabaseObjectList`
`WCF::getUser()->languageID` doesn't return a valid language id as integer in every case. Additionally we (normally) want to use a specific language or the session's language - which might be different from the user's default in some moments.
see #4407
Alexander Ebert [Tue, 10 Aug 2021 09:05:07 +0000 (11:05 +0200)]
Release 5.4.3
WoltLab [Mon, 9 Aug 2021 16:39:16 +0000 (16:39 +0000)]
Updating minified JavaScript files
Alexander Ebert [Mon, 9 Aug 2021 16:36:13 +0000 (18:36 +0200)]
Workaround for unfreezing the screen in iOS Safari
The change to the CSS class and the properties cause a recalculation that could sometimes interfere with the page scrolling.
Forcing the scrolling into the next iteration of the event loop solves this issue by separating both actions. Since the scrolling does depend on the actions in the lines above it, this is reasonably safe to do.
joshuaruesweg [Mon, 9 Aug 2021 13:22:31 +0000 (15:22 +0200)]
Fix sorting status column in emailLogList.tpl
Alexander Ebert [Mon, 9 Aug 2021 12:00:00 +0000 (14:00 +0200)]
Skip XML that have been unchanged for 5.3 -> 5.4
Alexander Ebert [Mon, 9 Aug 2021 10:53:43 +0000 (12:53 +0200)]
Merge pull request #4445 from WoltLab/template-sandbox-foreachvars
Sandbox `foreachVars` in templates
Marcel Werk [Mon, 9 Aug 2021 09:35:07 +0000 (11:35 +0200)]
Merge pull request #4446 from WoltLab/mfa-setup-allocation-failed
Show nicer error message if allocating the MFA setup fails
Tim Düsterhus [Mon, 9 Aug 2021 09:27:51 +0000 (11:27 +0200)]
Show nicer error message if allocating the MFA setup fails
`Setup::allocateSetUpId` can deadlock if the form is submitted twice at the
same time. This error should not be normally seen by the user. If they do they
will be directed to "Try again" and then see that MFA is active, because one of
the requests succeeded. They will also receive the info mail letting them know
where to regenerate their backup codes if necessary.
Tim Düsterhus [Mon, 9 Aug 2021 09:07:27 +0000 (11:07 +0200)]
Add RejectEverythingFormField if email MFA is already active
We must not allow submitting the form in this case, because we will trigger the
assertion otherwise.
Tim Düsterhus [Mon, 9 Aug 2021 09:06:39 +0000 (11:06 +0200)]
Fix assertion in EmailMultifactorMethod::processManagementForm()
Alexander Ebert [Sun, 8 Aug 2021 09:29:26 +0000 (11:29 +0200)]
Sandbox `foreachVars` in templates
Nesting the same template inside a `foreach` loop that is also accessed inside the nested call will overwrite the values from the outer template due to identical identifiers being used.
The sandbox did not protected `$this->foreachVars` despite being stateful.
See #4431
Fixes #4444
Marcel Werk [Sat, 7 Aug 2021 09:42:38 +0000 (11:42 +0200)]
Search for not filled user option fields was not possible
Alexander Ebert [Sat, 7 Aug 2021 08:48:11 +0000 (10:48 +0200)]
Merge pull request #4442 from SoftCreatR/css-optimizations
Prefixed CSS First
Sascha Greuel [Fri, 6 Aug 2021 18:42:21 +0000 (20:42 +0200)]
Prefixed CSS First
Ensured vendor-prefixed versions of a CSS property are listed before the standardized, unprefixed version.
When multiple versions of the same CSS property are specified, the last supported one will be used due to how browsers handle fallback values. This means the order matters when using both vendor-prefixed and unprefixed versions of the same property. Specifically, the unprefixed version must be listed last to ensure standardized behavior takes precedence.
Alexander Ebert [Fri, 6 Aug 2021 16:15:55 +0000 (18:15 +0200)]
Removing inline formatting yielded empty elements and broke the selection
See https://community.woltlab.com/thread/291496-fettmarkierung-bei-einem-einzelnen-wort-kann-nicht-mehr-entfernt-werden/
WoltLab [Fri, 6 Aug 2021 12:52:45 +0000 (12:52 +0000)]
Updating minified JavaScript files
Tim Düsterhus [Fri, 6 Aug 2021 12:44:42 +0000 (14:44 +0200)]
Merge pull request #4440 from WoltLab/sourcemap-proxy
Add proxy_sourcemap.php
Alexander Ebert [Fri, 6 Aug 2021 12:41:10 +0000 (14:41 +0200)]
Merge branch '5.3' into 5.4
Alexander Ebert [Fri, 6 Aug 2021 12:41:00 +0000 (14:41 +0200)]
Prevent submitting an empty message to the preview
Tim Düsterhus [Fri, 6 Aug 2021 12:34:52 +0000 (14:34 +0200)]
Merge pull request #4441 from WoltLab/acp-logout-to-reauth
Redirect the user to ACP reauthentication instead of frontend after logout
Tim Düsterhus [Fri, 6 Aug 2021 08:04:23 +0000 (10:04 +0200)]
Add proxy_sourcemap.php
Tim Düsterhus [Fri, 6 Aug 2021 11:43:36 +0000 (13:43 +0200)]
Redirect the user to ACP reauthentication instead of frontend after logout
Tim Düsterhus [Fri, 6 Aug 2021 11:34:59 +0000 (13:34 +0200)]
Revert "Update Open Sans"
This reverts Open Sans back to the non-variable version, as the variable one
appears to render pretty badly on Windows.
This reverts commit
33c8866a790e9e6bc46358f6e82df76d2e32f56e.
Tim Düsterhus [Fri, 6 Aug 2021 10:31:18 +0000 (12:31 +0200)]
Merge branch '5.3' into 5.4
Tim Düsterhus [Fri, 6 Aug 2021 10:26:36 +0000 (12:26 +0200)]
Merge branch '5.2' into 5.3
Joshua Rüsweg [Fri, 6 Aug 2021 09:22:18 +0000 (11:22 +0200)]
Merge pull request #4439 from xopez/5.2
Fixes Bings Sitemap Howto
Marcel Werk [Thu, 5 Aug 2021 15:56:02 +0000 (17:56 +0200)]
Reactions were not displayed in article list when sorted by title
Marcel Werk [Thu, 5 Aug 2021 15:48:20 +0000 (17:48 +0200)]
Mark as read doesn't removed the badge in the mobile menu
xopez [Thu, 5 Aug 2021 14:55:45 +0000 (16:55 +0200)]
Fixes Bings Sitemap Howto
This includes the correct links if the Bing Webmaster Tools help & how-to for sitemaps.