Tim Düsterhus [Tue, 27 Jul 2021 15:25:21 +0000 (17:25 +0200)]
Merge branch '5.4'
Tim Düsterhus [Tue, 27 Jul 2021 15:21:22 +0000 (17:21 +0200)]
Merge pull request #4423 from WoltLab/oauth-pkce
Add PKCE support to AbstractOauth2Action
Tim Düsterhus [Tue, 27 Jul 2021 14:37:05 +0000 (16:37 +0200)]
Name “Notfallcodes“ consistently
Drop the hyphen from “Notfall-Code”.
Tim Düsterhus [Tue, 27 Jul 2021 14:32:27 +0000 (16:32 +0200)]
Add PKCE support to AbstractOauth2Action
Tim Düsterhus [Tue, 27 Jul 2021 14:22:01 +0000 (16:22 +0200)]
Merge branch '5.4'
Tim Düsterhus [Tue, 27 Jul 2021 14:15:24 +0000 (16:15 +0200)]
Merge pull request #4421 from WoltLab/5.4-deleteDsStore
Add files/acp/update_com.woltlab.wcf_5.4.3_deleteDsStore.php
Marcel Werk [Tue, 27 Jul 2021 13:27:51 +0000 (15:27 +0200)]
Merge pull request #4422 from WoltLab/5.4-check-search-rebuild
Refer to RebuildDataPage in the system check for search engine tables
Tim Düsterhus [Tue, 27 Jul 2021 12:53:47 +0000 (14:53 +0200)]
Refer to RebuildDataPage in the system check for search engine tables
Tim Düsterhus [Tue, 27 Jul 2021 12:44:15 +0000 (14:44 +0200)]
Generate preload manifest when testing style
Tim Düsterhus [Tue, 27 Jul 2021 12:36:12 +0000 (14:36 +0200)]
Fix system font stack when combined with a Google Font
Perform the replacement of the system font name, before prepending the Google
font to properly match the font name without the Google font prefix.
Tim Düsterhus [Tue, 27 Jul 2021 12:18:15 +0000 (14:18 +0200)]
Add files/acp/update_com.woltlab.wcf_5.4.3_deleteDsStore.php
Tim Düsterhus [Tue, 27 Jul 2021 12:31:26 +0000 (14:31 +0200)]
Drop obsolete update_com.woltlab.wcf_5.4.2_deleteInvalidSessions.php
This was only required to fix a bug in 5.4.0.
Tim Düsterhus [Mon, 26 Jul 2021 16:04:36 +0000 (18:04 +0200)]
Merge pull request #4420 from WoltLab/userQuit
Add notice letting the user know quitting their account is active
Alexander Ebert [Mon, 26 Jul 2021 16:04:32 +0000 (18:04 +0200)]
Merge branch '5.4' of https://github.com/WoltLab/WCF into 5.4
Alexander Ebert [Mon, 26 Jul 2021 16:04:20 +0000 (18:04 +0200)]
Release 5.4.2
Marcel Werk [Mon, 26 Jul 2021 16:03:10 +0000 (18:03 +0200)]
Merge branch '5.4' of https://github.com/WoltLab/WCF into 5.4
Marcel Werk [Mon, 26 Jul 2021 15:59:17 +0000 (17:59 +0200)]
Fix code style
WoltLab [Mon, 26 Jul 2021 15:54:45 +0000 (15:54 +0000)]
Updating minified JavaScript files
Alexander Ebert [Mon, 26 Jul 2021 15:53:29 +0000 (17:53 +0200)]
Merge pull request #4417 from WoltLab/captcha-delete-after-use
Delete the captcha registration after retrieving data in Comment/Add and Message/Reply
WoltLab [Mon, 26 Jul 2021 15:51:34 +0000 (15:51 +0000)]
Updating minified JavaScript files
Marcel Werk [Mon, 26 Jul 2021 15:50:31 +0000 (17:50 +0200)]
TOC code was visible in search results of articles
Alexander Ebert [Mon, 26 Jul 2021 15:23:41 +0000 (17:23 +0200)]
Ignore click events that were triggered outside of the editor
This appears to haben if the click event was partially intercepted because of an open overlay that was implicitly closed.
Tim Düsterhus [Mon, 26 Jul 2021 14:44:59 +0000 (16:44 +0200)]
Add notice letting the user know quitting their account is active
Tim Düsterhus [Mon, 26 Jul 2021 14:38:04 +0000 (16:38 +0200)]
Allow canceling the quit after losing the permission to quit
Alexander Ebert [Mon, 26 Jul 2021 13:36:35 +0000 (15:36 +0200)]
Caret misplacement due to U+200B in Safari after pasting
Tim Düsterhus [Mon, 26 Jul 2021 12:42:44 +0000 (14:42 +0200)]
Delete the captcha registration after retrieving data in Comment/Add and Message/Reply
When a validation error is encountered, a new template with a new captcha will
be sent. However the logic within the captcha controller prevents a callback
from being added for a specific captcha ID if one is already registered. This
leads to the previous captcha callback being reused for another attempt.
This does not work, because a single instance of reCAPTCHA may only be used
once, thus erroring out if the callback is invoked a second time.
Fix this issue by deleting the captcha callback once we used it once. Upon
another failure another template will be sent, re-registering a new and valid
captcha.
It was also considered caching the return value, however this will cause issues
if the user mistypes a captcha as they will be unable to correct the error, due
to the same value being returned on the next attempt.
Ideally the `getData()` function would automatically delete the callback,
making it a single-use callback by design. This might break API users relying
on this current (broken) behavior, though.
The whole (AJAX) CAPTCHA API looks broken beyond repair. It also relies on the
jQuery parts being available. It should be cleanly refactored in a future
version.
Alexander Ebert [Mon, 26 Jul 2021 12:26:14 +0000 (14:26 +0200)]
Incorrect text alignment on mobile
joshuaruesweg [Fri, 23 Jul 2021 17:46:28 +0000 (19:46 +0200)]
Merge branch '5.4'
joshuaruesweg [Fri, 23 Jul 2021 17:45:26 +0000 (19:45 +0200)]
Decrease sitemap size to 25,000 objects
Google allows up to 50,000 items in a single sitemap. This makes these sitemaps potentially very large. Even though Google allows up to 50 MB, too large sitemaps are still problematic, especially when it comes to troubleshooting in Google Webmaster Tools. Therefore, we minimise the limit of objects in a sitemap to 25,000 objects. This does not have any negative effects for Google as long as no more than 50,000 sitemaps are linked in the index sitemap.
joshuaruesweg [Fri, 23 Jul 2021 17:22:20 +0000 (19:22 +0200)]
Fix sitemap name of duplicate sitemaps
The issue was introduced with the commit
98dcdefc38574de9a249b19e378958a5cbdcb5d4
Marcel Werk [Fri, 23 Jul 2021 16:12:04 +0000 (18:12 +0200)]
Some external links in the admin panel did not open in a new window
Tim Düsterhus [Fri, 23 Jul 2021 10:48:24 +0000 (12:48 +0200)]
Trim trailing whitespace
Tim Düsterhus [Fri, 23 Jul 2021 10:33:23 +0000 (12:33 +0200)]
Fix IpAddress::toBulletMasked() for IP addresses with unmasked quadruplets with value zero
Rebuild the IPv6 masking algorithm to a proper parser handling the quadruplets
one-by-one, instead of attempting to process the IP address using regular
expressions.
This patch fixes masking of IP addresses such as:
2001:db8:1234:0:abcd::1234
Applying a /64 mask will transform the IP address into:
2001:db8:1234::
Note how the explicit 0 block is elided as well.
Previously the bullet masking algorithm would transform this into:
2001:db8:1234:••••:••••:••••:••••
Resulting in an IP address with just 7 quadruplets. Now it correctly returns:
2001:db8:1234:0:••••:••••:••••:••••
Tim Düsterhus [Fri, 23 Jul 2021 07:15:58 +0000 (09:15 +0200)]
Merge branch '5.4'
Tim Düsterhus [Fri, 23 Jul 2021 07:15:48 +0000 (09:15 +0200)]
Merge remote-tracking branch 'origin/5.4' into 5.4
Tim Düsterhus [Fri, 23 Jul 2021 07:14:08 +0000 (09:14 +0200)]
Merge branch '5.4'
Tim Düsterhus [Fri, 23 Jul 2021 07:12:08 +0000 (09:12 +0200)]
Merge branch '5.3' into 5.4
Tim Düsterhus [Fri, 23 Jul 2021 07:10:50 +0000 (09:10 +0200)]
Merge branch '5.2' into 5.3
Tim Düsterhus [Fri, 23 Jul 2021 07:10:26 +0000 (09:10 +0200)]
Merge branch '3.1' into 5.2
Tim Düsterhus [Fri, 23 Jul 2021 07:09:56 +0000 (09:09 +0200)]
Encode HTML in smileyTitle in Smiley::getHtml()
Tim Düsterhus [Thu, 22 Jul 2021 15:04:51 +0000 (17:04 +0200)]
Merge pull request #4415 from WoltLab/focus-not-on-never
Help TSC understand the data flow in Dropdown/Simple#toggle
Tim Düsterhus [Thu, 22 Jul 2021 14:32:11 +0000 (16:32 +0200)]
Help TSC understand the data flow in Dropdown/Simple#toggle
Newer TSC versions determine that `firstListItem` must always be `null`, thus
resulting in `firstListItem` being of type `never` within the `if
(firstListItem !== null)` condition, ultimately complaining about calling
`.focus()` on a `never` type:
> Property 'focus' does not exist on type 'never'.
The issue lies in the TypeScript compiler not properly understanding the
semantics of the `.forEach()`, assuming it might not synchronously call the
callback function.
Rewrite this logic to support TSC in understanding the code and to also make
the intent clearer to the human reader by adding additional helper variables.
Marcel Werk [Thu, 22 Jul 2021 14:08:14 +0000 (16:08 +0200)]
Wrong background color for hero boxes in mobile version
Tim Düsterhus [Thu, 22 Jul 2021 13:16:44 +0000 (15:16 +0200)]
Merge branch '5.4'
Tim Düsterhus [Thu, 22 Jul 2021 13:15:58 +0000 (15:15 +0200)]
Tim Düsterhus [Thu, 22 Jul 2021 13:03:19 +0000 (15:03 +0200)]
Correctly pass COMPILER_TARGET_DEFAULT when building WoltLabSuite.Core*.min.js
Tim Düsterhus [Thu, 22 Jul 2021 12:56:37 +0000 (14:56 +0200)]
Reference `COMPILER_TARGET_DEFAULT` without going via `globalThis`
This is required, because the minifier will not detect it otherwise.
Marcel Werk [Thu, 22 Jul 2021 11:43:45 +0000 (13:43 +0200)]
Text links in the mobile menu of the admin panel did not work
Marcel Werk [Thu, 22 Jul 2021 09:19:30 +0000 (11:19 +0200)]
Merge pull request #4414 from Bantor/langfixes
some langfixes
Bantor [Thu, 22 Jul 2021 00:25:00 +0000 (02:25 +0200)]
proofreading
Tim Düsterhus [Wed, 21 Jul 2021 13:18:37 +0000 (15:18 +0200)]
Fix mistake in informal version of de.xml
Tim Düsterhus [Tue, 20 Jul 2021 15:18:05 +0000 (17:18 +0200)]
Merge pull request #4412 from WoltLab/coverPhoto-upgrade
Improve resiliency of the style cover photo upgrade script
Tim Düsterhus [Tue, 20 Jul 2021 14:27:31 +0000 (16:27 +0200)]
Check whether the style's cover photo exists during upgrade to 5.4
Alexander Ebert [Tue, 20 Jul 2021 13:59:03 +0000 (15:59 +0200)]
Merge pull request #4411 from WoltLab/test-for-webp-support
Fall-back to GD if ImageMagick does not satisfy the requirements
Alexander Ebert [Tue, 20 Jul 2021 13:50:29 +0000 (15:50 +0200)]
Partially reverted the logic for the image library check
Alexander Ebert [Tue, 20 Jul 2021 12:42:39 +0000 (14:42 +0200)]
Fall-back to GD if ImageMagick does not satisfy the requirements
Tim Düsterhus [Tue, 20 Jul 2021 12:38:26 +0000 (14:38 +0200)]
Merge pull request #4406 from WoltLab/quoted-printable-header
Stop using mb_encode_mimeheader()
Tim Düsterhus [Tue, 20 Jul 2021 11:25:37 +0000 (13:25 +0200)]
Merge branch '5.4'
Tim Düsterhus [Tue, 20 Jul 2021 10:52:24 +0000 (12:52 +0200)]
Add update_com.woltlab.wcf_5.4.2_deleteInvalidSessions.php
Tim Düsterhus [Tue, 20 Jul 2021 10:43:38 +0000 (12:43 +0200)]
Default IP address to `::` if `$_SERVER['REMOTE_ADDR']` is unavailable
The session list within the AccountSecurityPage relies on all sessions storing
valid IP addresses. When using `cli.php` no `REMOTE_ADDR` will be available and
an empty string was being stored. As the empty string is not a valid IP address
the `\wcf\util\IpAddress` class errored out.
Fix this issue by always returning a syntactically valid IP address from
`UserUtil::getIpAddress()`. `::` is being used which is commonly used to
indicate unknown IP addresses and must never appear within valid IP packets.
joshuaruesweg [Tue, 20 Jul 2021 10:12:15 +0000 (12:12 +0200)]
Disable unfurled links in AMP pages
joshuaruesweg [Tue, 20 Jul 2021 09:36:13 +0000 (11:36 +0200)]
Prevent inverting permissions, if the object is visible for everyone
If the permission is inverted and the object is allowed for everyone, the object cannot seen by anyone. Furthermore the admin can only uncheck the inverted permissions button, if the object is not allowed for everyone anymore.
joshuaruesweg [Tue, 20 Jul 2021 08:50:29 +0000 (10:50 +0200)]
Fix faulty invertPermission label logic
Tim Düsterhus [Tue, 20 Jul 2021 07:10:20 +0000 (09:10 +0200)]
Add missing `@since` to ISafeFormatAvatar
Alexander Ebert [Mon, 19 Jul 2021 15:35:42 +0000 (17:35 +0200)]
Missing implicit function scope
Alexander Ebert [Mon, 19 Jul 2021 15:32:25 +0000 (17:32 +0200)]
Cast empty values for the file size to int
PHP 8 is much more sensitive to type mismatches, before PHP 8 the value `''` was implicitly converted to `0`.
Marcel Werk [Mon, 19 Jul 2021 14:24:38 +0000 (16:24 +0200)]
WebP was not recognised as image format when uploading images
Tim Düsterhus [Mon, 19 Jul 2021 10:03:23 +0000 (12:03 +0200)]
Remove IPv6 localhost "fix" from UserUtil::getIpAddress()
This "fix" dates from a time where users did not know what IPv6 was and thus were confused. It is no longer required.
Tim Düsterhus [Mon, 19 Jul 2021 09:42:53 +0000 (11:42 +0200)]
Merge branch '5.4'
Matthias Schmidt [Mon, 5 Jul 2021 09:15:20 +0000 (11:15 +0200)]
Make renaming columns with PHP DB API idempotent (#4367)
An error message should only be shown if the neither a column with the old name, nor with the name name exists so that after the rename, a second rename is a no-op.
Close #4362
See #3765
(cherry picked from commit
1a029332791f3e3cdca054d8f139857b5ef78791)
Tim Düsterhus [Fri, 16 Jul 2021 13:32:44 +0000 (15:32 +0200)]
Merge branch '5.4'
Tim Düsterhus [Fri, 16 Jul 2021 12:08:16 +0000 (14:08 +0200)]
Set `$isAtom` to `false` when encoding the email's subject
Tim Düsterhus [Fri, 16 Jul 2021 12:07:11 +0000 (14:07 +0200)]
Stop using `mb_encode_mimeheader`
Replace the implementation in EmailGrammar::encodeQuotedPrintableHeader() with
a hand-rolled encoder.
Resolves #4395
Joshua Rüsweg [Fri, 16 Jul 2021 08:43:12 +0000 (10:43 +0200)]
Merge pull request #4405 from WoltLab/migrateMultifactor-deleted-user
Skip authenticators of deleted users in update_com.woltlab.wcf_5.4_migrate_multifactor.php
Tim Düsterhus [Thu, 15 Jul 2021 14:50:59 +0000 (16:50 +0200)]
Skip authenticators of deleted users in update_com.woltlab.wcf_5.4_migrate_multifactor.php
Alexander Ebert [Thu, 15 Jul 2021 12:07:03 +0000 (14:07 +0200)]
Merge branch '5.3' into 5.4
Alexander Ebert [Thu, 15 Jul 2021 12:04:15 +0000 (14:04 +0200)]
Release 5.3.12
Alexander Ebert [Thu, 15 Jul 2021 11:58:44 +0000 (13:58 +0200)]
Release 5.4.1
Tim Düsterhus [Thu, 15 Jul 2021 11:57:09 +0000 (13:57 +0200)]
Merge branch '5.4'
Dropped `update_com.woltlab.wcf_5.4_fixSqlLog.php`, because it is required for
5.3 to 5.4 only.
Tim Düsterhus [Thu, 15 Jul 2021 11:56:01 +0000 (13:56 +0200)]
Merge branch '5.3' into 5.4
Alexander Ebert [Thu, 15 Jul 2021 11:05:26 +0000 (13:05 +0200)]
Merge pull request #4404 from WoltLab/imagick-webp-optional
Permit the upgrade if only GD with WebP support is present
Alexander Ebert [Thu, 15 Jul 2021 11:00:55 +0000 (13:00 +0200)]
Rebuild the pre-update file archive
Alexander Ebert [Thu, 15 Jul 2021 11:00:14 +0000 (13:00 +0200)]
Merge branch '5.4' into imagick-webp-optional
Alexander Ebert [Thu, 15 Jul 2021 10:57:46 +0000 (12:57 +0200)]
Merge pull request #4403 from WoltLab/5.4-sqlLog
Add missing SQL log entry for `wcf1_acp_session_virtual` during upgrade to 5.4
Alexander Ebert [Thu, 15 Jul 2021 10:52:39 +0000 (12:52 +0200)]
Updated the pre-update file archive
Alexander Ebert [Thu, 15 Jul 2021 10:50:51 +0000 (12:50 +0200)]
Allow bypass of a broken imagick extension, improved error messages
Alexander Ebert [Thu, 15 Jul 2021 10:45:36 +0000 (12:45 +0200)]
Improved the explanation for missing system requirements
Tim Düsterhus [Thu, 15 Jul 2021 09:57:39 +0000 (11:57 +0200)]
Add missing SQL log entry for `wcf1_acp_session_virtual` during upgrade to 5.4
This entry is required to be able to delete this table later in the process.
Alexander Ebert [Thu, 15 Jul 2021 09:22:06 +0000 (11:22 +0200)]
Check for WebP support in the selected adapter
Tim Düsterhus [Thu, 15 Jul 2021 07:19:22 +0000 (09:19 +0200)]
Fix typo in de.xml
Alexander Ebert [Wed, 14 Jul 2021 15:38:49 +0000 (17:38 +0200)]
Release 5.4.0
Tim Düsterhus [Wed, 14 Jul 2021 15:10:48 +0000 (17:10 +0200)]
Merge pull request #4402 from WoltLab/deprecate-search-message
Deprecate `WCF.Search.Message.KeywordList`
Tim Düsterhus [Wed, 14 Jul 2021 15:05:59 +0000 (17:05 +0200)]
Deprecate `WCF.Search.Message.KeywordList`
This ideally would have happened a long time ago, as the base class already is
deprecated.
Tim Düsterhus [Wed, 14 Jul 2021 13:34:49 +0000 (15:34 +0200)]
Merge branch '5.4'
Tim Düsterhus [Wed, 14 Jul 2021 13:34:06 +0000 (15:34 +0200)]
Merge branch '5.3' into 5.4
Alexander Ebert [Wed, 14 Jul 2021 13:14:25 +0000 (15:14 +0200)]
Release 5.3.11
Alexander Ebert [Wed, 14 Jul 2021 12:27:04 +0000 (14:27 +0200)]
Removed reference to earlier evaluation versions
Alexander Ebert [Wed, 14 Jul 2021 12:08:06 +0000 (14:08 +0200)]
Enable the upgrade notice for 5.4 by default
Tim Düsterhus [Wed, 14 Jul 2021 10:02:03 +0000 (12:02 +0200)]
Merge pull request #4401 from WoltLab/wcfsetup-data-uri
Use `data:` URIs to load assets in WCFSetup
Tim Düsterhus [Wed, 14 Jul 2021 09:14:03 +0000 (11:14 +0200)]
Use `data:` URIs to load assets in WCFSetup
With this change the HTML responses generated by WCFSetup are completely
self-contained and do not rely on external requests.
This avoids the proxying of the assets using PHP from the temporary folder at
the expense of slightly bloating the HTML with the embedded CSS.
The total size of the HTML is 530kB before gzip and 200kB after gzip.
Resolves #4394