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.
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: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:48 +0000 (09:15 +0200)]
Merge remote-tracking branch 'origin/5.4' into 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: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
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 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
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)
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: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 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
Alexander Ebert [Tue, 13 Jul 2021 15:32:34 +0000 (17:32 +0200)]
Removed a legacy condition used in the old session system
This is an old condition that dates back to the early days of the keep alive system. The condition does not work with the new session system anymore, because `lastActivityTime` is always mapped to `TIME_NOW`.
Marcel Werk [Tue, 13 Jul 2021 15:15:06 +0000 (17:15 +0200)]
Merge pull request #4383 from WoltLab/article_embedded
Fix recursively loading embedded objects in articles
Alexander Ebert [Tue, 13 Jul 2021 14:43:03 +0000 (16:43 +0200)]
Merge pull request #4346 from mutec/currencydecimals
support custom number of decimals in currency modifier
Alexander Ebert [Tue, 13 Jul 2021 14:31:03 +0000 (16:31 +0200)]
Saving WebP images in GD requires a True Color palette
https://stackoverflow.com/questions/
39292617/fatal-error-paletter-image-not-supported-by-webp/
47469726#
47469726
joshuaruesweg [Tue, 13 Jul 2021 08:39:27 +0000 (10:39 +0200)]
Merge branch '5.3'
joshuaruesweg [Tue, 13 Jul 2021 08:31:43 +0000 (10:31 +0200)]
Use `emailConfirmed` status to exclude unconfirmed emails
With 5.3 we introduced the new `emailConfirmed` status to separate the status of the email and the activation status of the user. Therefore, we want to send emails to users, which emails are enabled. The user activation status is not relevant anymore for sending emails.
Tim Düsterhus [Tue, 13 Jul 2021 07:32:08 +0000 (09:32 +0200)]
Merge pull request #4397 from WoltLab/favicon-is-processed
Improve Favicon handling in StyleAction
Marcel Werk [Mon, 12 Jul 2021 18:07:22 +0000 (20:07 +0200)]
Devtools did not work correctly under Windows
Alexander Ebert [Mon, 12 Jul 2021 14:52:32 +0000 (16:52 +0200)]
Incorrect keystroke
Alexander Ebert [Mon, 12 Jul 2021 14:50:47 +0000 (16:50 +0200)]
Missing `px` units for the image dimensions
Alexander Ebert [Mon, 12 Jul 2021 14:40:03 +0000 (16:40 +0200)]
Merge branch '5.4' of https://github.com/WoltLab/WCF into 5.4
Alexander Ebert [Mon, 12 Jul 2021 14:39:56 +0000 (16:39 +0200)]
Missing cover photo in the list of articles in a footer box
Replaces #4378
Tim Düsterhus [Mon, 12 Jul 2021 14:27:34 +0000 (16:27 +0200)]
Upgrade the default STARTTLS level to `encrypt`
see #4246
Tim Düsterhus [Mon, 12 Jul 2021 13:55:57 +0000 (15:55 +0200)]
Update the default SMTP port to 587
25 is not meant for submission.
Alexander Ebert [Mon, 12 Jul 2021 13:40:28 +0000 (15:40 +0200)]
Explicitly mark styles for 5.2+ as compatible with 5.4
Tim Düsterhus [Mon, 12 Jul 2021 12:55:31 +0000 (14:55 +0200)]
Regenerate Favicon images only when the template changes
Tim Düsterhus [Mon, 12 Jul 2021 12:53:05 +0000 (14:53 +0200)]
Delete manifest.json and browserconfig.xml when deleting a favicon
Joshua Rüsweg [Sun, 11 Jul 2021 16:02:54 +0000 (18:02 +0200)]
Merge pull request #4392 from WoltLab/rename-totp-field
Rename TOTP code form field to `onetimecode`
mutec [Sat, 26 Jun 2021 17:17:46 +0000 (19:17 +0200)]
support custom number of decimals in currency modifier
joshuaruesweg [Sun, 11 Jul 2021 09:28:07 +0000 (11:28 +0200)]
Rename TOTP code form field to `onetimecode`
The name `code` for the form field is too generic and should be specified. `onetimecode` is a more fitting identifier for the input name. In addition, 1password fills the totp code automatically, if the field is named `onetimecode` (See https://1password.community/discussion/comment/604200/#Comment_604200).
joshuaruesweg [Sun, 11 Jul 2021 08:50:15 +0000 (10:50 +0200)]
Convert tabs to spaces
joshuaruesweg [Sun, 11 Jul 2021 08:48:21 +0000 (10:48 +0200)]
Merge branch '5.3'
joshuaruesweg [Sun, 11 Jul 2021 08:34:16 +0000 (10:34 +0200)]
Merge branch '5.2'
joshuaruesweg [Sun, 11 Jul 2021 08:31:21 +0000 (10:31 +0200)]
Merge branch '3.1'
Sascha Greuel [Sun, 11 Jul 2021 08:24:24 +0000 (10:24 +0200)]
Don't leak an account's activation status (#4365)
* Don't leak an account's activation status
* Update wcfsetup/install/files/lib/form/RegisterNewActivationCodeForm.class.php
Co-authored-by: Tim Düsterhus <timwolla@googlemail.com>
Co-authored-by: Tim Düsterhus <timwolla@googlemail.com>
joshuaruesweg [Sat, 10 Jul 2021 09:44:09 +0000 (11:44 +0200)]
Merge branch '5.3'
joshuaruesweg [Sat, 10 Jul 2021 09:39:33 +0000 (11:39 +0200)]
Set new activation code on rerequesting them
Alexander Ebert [Thu, 8 Jul 2021 13:38:43 +0000 (15:38 +0200)]
Release 5.4.0 RC 2
Matthias Schmidt [Thu, 8 Jul 2021 07:36:37 +0000 (09:36 +0200)]
Fix recursively loading embedded objects in articles
Close #4382
See
3af7b77d40ed93c95cebb22004ab745bf69683e2
Tim Düsterhus [Thu, 8 Jul 2021 07:25:39 +0000 (09:25 +0200)]
Add update_com.woltlab.wcf_5.4_styleCoverPhoto.php to package.xml
Tim Düsterhus [Thu, 8 Jul 2021 07:25:20 +0000 (09:25 +0200)]
Do not use the cache in update_com.woltlab.wcf_5.4_styleCoverPhoto.php
Matthias Schmidt [Thu, 8 Jul 2021 06:50:43 +0000 (08:50 +0200)]
Fix variable name in `ViewableArticleContentList::readObjects()`
Alexander Ebert [Wed, 7 Jul 2021 16:16:32 +0000 (18:16 +0200)]
Do not block matching abbreviation if the package is the same
The previous code would block the installation of an update of the same package.
Fix for #4357
Alexander Ebert [Wed, 7 Jul 2021 15:58:23 +0000 (17:58 +0200)]
Release 5.4.0 RC 2
WoltLab [Wed, 7 Jul 2021 15:41:36 +0000 (15:41 +0000)]
Updating minified JavaScript files
Alexander Ebert [Wed, 7 Jul 2021 15:14:55 +0000 (17:14 +0200)]
Improved the visuals of the list of MFA options
The content is now vertically centered and the somewhat tiny smartphone icon is enlarged to better match the other icons.