Tim Düsterhus [Wed, 9 Feb 2022 11:33:18 +0000 (12:33 +0100)]
Do not trust the source file hash in UserAvatarImporter
see
5969fa3dfada7df170ff10b8c4d8bf349c38cef9
Tim Düsterhus [Wed, 9 Feb 2022 11:32:09 +0000 (12:32 +0100)]
Make UserAvatarImporter determine the extension based on the mime type
Resolves #4665
Tim Düsterhus [Wed, 9 Feb 2022 11:31:29 +0000 (12:31 +0100)]
Check `is_readable()` in UserAvatarImporter
Tim Düsterhus [Tue, 8 Feb 2022 15:57:45 +0000 (16:57 +0100)]
Merge branch '5.4'
Tim Düsterhus [Tue, 8 Feb 2022 15:45:26 +0000 (16:45 +0100)]
Merge pull request #4664 from WoltLab/formbuilder-checkbox-ajax
Add `CheckedVoid` form builder data handler for CheckboxFormField
Tim Düsterhus [Tue, 8 Feb 2022 14:54:22 +0000 (15:54 +0100)]
Add `CheckedVoid` form builder data handler for CheckboxFormField
The `Checked` data handler is not usable for the CheckboxFormField, because its
behavior differs from the non-AJAX behavior by always sending a value whereas
checkboxes that are not checked will not send anything within a regular form.
It was considered to simply reuse the `readValue()` implementation in
BooleanFormField, because it appears to do the right thing at a glance. However
this would effectively revert
7d36c55726af2b5b9d9ab1706a05ccf5e52e84b8 which is
a fix to allow unchecking checkboxes that are checked by default.
Also matching the behavior of AJAX and non-AJAX forms 100% is considered a good
thing, so a new JavaScript module to handle this, is the best solution.
Tim Düsterhus [Tue, 8 Feb 2022 09:15:21 +0000 (10:15 +0100)]
Reject YEAR(2) in PHP DDL
Length 2 for YEAR columns is not supported by MySQL 8 and not really useful for
older versions either:
https://dev.mysql.com/doc/refman/8.0/en/year.html
> MySQL 8.0 does not support the 2-digit YEAR(2) data type permitted in older
> versions of MySQL. For instructions on converting to 4-digit YEAR, see
> 2-Digit YEAR(2) Limitations and Migrating to 4-Digit YEAR, in MySQL 5.7
> Reference Manual.
Tim Düsterhus [Tue, 8 Feb 2022 09:12:46 +0000 (10:12 +0100)]
Merge branch '5.4'
Tim Düsterhus [Tue, 8 Feb 2022 09:12:31 +0000 (10:12 +0100)]
Merge branch '5.3' into 5.4
Tim Düsterhus [Tue, 8 Feb 2022 09:07:00 +0000 (10:07 +0100)]
Ignore `length` when diffing YearDatabaseTableColumn
Similarly to INT columns MySQL 8 ignores the length of YEAR columns:
https://dev.mysql.com/doc/refman/8.0/en/year.html
> As of MySQL 8.0.19, the YEAR(4) data type with an explicit display width is
> deprecated and you should expect support for it to be removed in a future
> version of MySQL. Instead, use YEAR without a display width, which has the
> same meaning.
Marcel Werk [Mon, 7 Feb 2022 16:50:52 +0000 (17:50 +0100)]
Show direct link to media file in admin panel
Closes #4663
Tim Düsterhus [Mon, 7 Feb 2022 13:04:38 +0000 (14:04 +0100)]
Merge branch '5.4'
Tim Düsterhus [Mon, 7 Feb 2022 13:00:48 +0000 (14:00 +0100)]
Fix template syntax error in wcf.user.notification.articleComment.response(Owner)?.mail.html
see
cc5632977059ae88aa5cfe1c27407f0e00fa68c1
Tim Düsterhus [Mon, 7 Feb 2022 11:23:41 +0000 (12:23 +0100)]
Use more specific return type in PHP DDL column factories
see
b0d267facda16a3fcefdef5c2c2740c4cd790b63
Tim Düsterhus [Mon, 7 Feb 2022 08:16:08 +0000 (09:16 +0100)]
Whitelist `array_key_exists` in enterprise mode
Alexander Ebert [Sat, 5 Feb 2022 15:26:49 +0000 (16:26 +0100)]
Merge pull request #4661 from WoltLab/55-package-update-shortest-thread
Graceful handling of incoherent update paths
Alexander Ebert [Sat, 5 Feb 2022 15:01:31 +0000 (16:01 +0100)]
Incorrect error type for rejected credentials
Alexander Ebert [Sat, 5 Feb 2022 14:59:51 +0000 (15:59 +0100)]
Silently discard incoherent update paths if a valid path remains to be checked
Alexander Ebert [Sat, 5 Feb 2022 14:55:54 +0000 (15:55 +0100)]
Moved the exceptions inside the shortest update path calculation into separate classes
Alexander Ebert [Sat, 5 Feb 2022 13:03:43 +0000 (14:03 +0100)]
Consistent box-shadow for elevated elements
Marcel Werk [Sat, 5 Feb 2022 12:59:32 +0000 (13:59 +0100)]
Permission 'canOnlyAccessOwnMedia' did not work as expected
It was still possible to find files from other users through the search function.
Marcel Werk [Sat, 5 Feb 2022 12:56:59 +0000 (13:56 +0100)]
File size was displayed twice when uploading media
Alexander Ebert [Sat, 5 Feb 2022 12:21:09 +0000 (13:21 +0100)]
Missing z-index for the scrollbar in user menu items
Fixes #4660
Alexander Ebert [Sat, 5 Feb 2022 12:18:23 +0000 (13:18 +0100)]
User menu items now support the display of usernames
See WoltLab/com.woltlab.wcf.conversation#169
Alexander Ebert [Fri, 4 Feb 2022 16:59:21 +0000 (17:59 +0100)]
Adjusted the code style
Alexander Ebert [Fri, 4 Feb 2022 16:54:20 +0000 (17:54 +0100)]
Improved the styling of the user menus
Marcel Werk [Fri, 4 Feb 2022 15:58:56 +0000 (16:58 +0100)]
Reverted removed suppression of encoding and template scripting support
Previous change caused some broken page titles (e.g. within the dev tools).
Tim Düsterhus [Fri, 4 Feb 2022 15:14:05 +0000 (16:14 +0100)]
Fix update instructions from 5.4
Tim Düsterhus [Thu, 3 Feb 2022 11:17:32 +0000 (12:17 +0100)]
Fix call to `\str_ends_with()` in PackageUpdateServerAddForm
Alexander Ebert [Fri, 4 Feb 2022 13:10:58 +0000 (14:10 +0100)]
Skip close requests originating from the search drop-down itself
Alexander Ebert [Fri, 4 Feb 2022 12:52:58 +0000 (13:52 +0100)]
The mobile search behavior conflicted with the desktop view
Marcel Werk [Thu, 3 Feb 2022 16:03:09 +0000 (17:03 +0100)]
Merge pull request #4658 from WoltLab/dynamic-phrases-templates
Overhauled handling of dynamic phrases in templates
Alexander Ebert [Thu, 3 Feb 2022 15:40:25 +0000 (16:40 +0100)]
Incorrect behavior of user menus with overflowing content
Marcel Werk [Thu, 3 Feb 2022 15:20:47 +0000 (16:20 +0100)]
Removed suppression of encoding in places where it was not necessary
Marcel Werk [Thu, 3 Feb 2022 13:45:05 +0000 (14:45 +0100)]
Merge branch '5.4'
Marcel Werk [Thu, 3 Feb 2022 13:44:19 +0000 (14:44 +0100)]
Email column in notification settings was too small
Marcel Werk [Thu, 3 Feb 2022 13:35:10 +0000 (14:35 +0100)]
Overhauled handling of dynamic phrases in templates
Closes #4657
Alexander Ebert [Wed, 2 Feb 2022 18:29:42 +0000 (19:29 +0100)]
`saveInstant()` yields an incorrect selection after formatting
Consider the example `Hello World` where the word `World` is selected. Marking the selection as bold did not mark the button as active.
This was caused by the way the selection is created, causing it to be `Hello |<strong>World|</strong>` when using `saveInstant()` (the pipe denotes the selection boundary).
Tim Düsterhus [Wed, 2 Feb 2022 15:45:37 +0000 (16:45 +0100)]
Include the `$envelopeTo` address within the target filename in DebugFolderEmailTransport
It was verified that the resulting Maildir still is a valid Maildir by opening
it with mutt.
WoltLab [Wed, 2 Feb 2022 12:30:48 +0000 (12:30 +0000)]
Updating minified JavaScript files
Tim Düsterhus [Wed, 2 Feb 2022 11:05:30 +0000 (12:05 +0100)]
Merge branch '5.4'
Tim Düsterhus [Wed, 2 Feb 2022 11:05:19 +0000 (12:05 +0100)]
Merge pull request #4656 from WoltLab/dialog-alert
Fix rendering of alert boxes at the top of a dialog
Tim Düsterhus [Wed, 2 Feb 2022 11:01:43 +0000 (12:01 +0100)]
Remove obsolete inline CSS in removeUserContentDialog.tpl
see
0d0aecf7b629619de450304945989074522dbca2
Tim Düsterhus [Wed, 2 Feb 2022 10:50:13 +0000 (11:50 +0100)]
Fix rendering of alert boxes at the top of a dialog
Marcel Werk [Wed, 2 Feb 2022 10:40:57 +0000 (11:40 +0100)]
Merge pull request #4655 from WoltLab/report-flood
Add flood protection to creating new reports
Tim Düsterhus [Wed, 2 Feb 2022 10:12:21 +0000 (11:12 +0100)]
Add flood protection to creating new reports
Tim Düsterhus [Wed, 2 Feb 2022 10:11:38 +0000 (11:11 +0100)]
Fix adding of classes updateCounter() in user menu
Joshua Rüsweg [Wed, 2 Feb 2022 08:01:02 +0000 (09:01 +0100)]
Merge pull request #4654 from WoltLab/5.5-poll
Standardize Poll Creation
joshuaruesweg [Tue, 1 Feb 2022 10:44:02 +0000 (11:44 +0100)]
Deprecate `WCF.Poll.Management` JS module
joshuaruesweg [Tue, 1 Feb 2022 10:41:31 +0000 (11:41 +0100)]
Use TypeScript implementation for message polls
joshuaruesweg [Tue, 1 Feb 2022 10:41:00 +0000 (11:41 +0100)]
Standardize poll input names
The old implementation uses names like `pollQuestion` instead of `Poll_question`. Unifying these, make it easier to maintain the code and use the TypeScript implementation for old and new code.
Tim Düsterhus [Tue, 1 Feb 2022 11:26:00 +0000 (12:26 +0100)]
Merge branch '5.4'
Tim Düsterhus [Tue, 1 Feb 2022 11:24:38 +0000 (12:24 +0100)]
Update composer dependencies
Alexander Ebert [Mon, 31 Jan 2022 16:33:14 +0000 (17:33 +0100)]
Release 5.4.13
Alexander Ebert [Mon, 31 Jan 2022 16:32:20 +0000 (17:32 +0100)]
Merge branch '5.3' into 5.4
Alexander Ebert [Mon, 31 Jan 2022 16:30:49 +0000 (17:30 +0100)]
Release 5.3.19
Alexander Ebert [Mon, 31 Jan 2022 16:30:10 +0000 (17:30 +0100)]
Merge branch '5.2' into 5.3
Alexander Ebert [Mon, 31 Jan 2022 16:28:38 +0000 (17:28 +0100)]
Release 5.2.19
Alexander Ebert [Mon, 31 Jan 2022 16:27:54 +0000 (17:27 +0100)]
Merge branch '3.1' into 5.2
Alexander Ebert [Mon, 31 Jan 2022 16:24:44 +0000 (17:24 +0100)]
Release 3.1.27
Tim Düsterhus [Mon, 31 Jan 2022 16:22:00 +0000 (17:22 +0100)]
Merge branch '5.4'
Tim Düsterhus [Mon, 31 Jan 2022 16:21:49 +0000 (17:21 +0100)]
Merge branch '5.3' into 5.4
Tim Düsterhus [Mon, 31 Jan 2022 16:18:38 +0000 (17:18 +0100)]
Merge branch '5.2' into 5.3
Tim Düsterhus [Mon, 31 Jan 2022 16:18:14 +0000 (17:18 +0100)]
Merge branch '3.1' into 5.2
Tim Düsterhus [Mon, 31 Jan 2022 16:17:54 +0000 (17:17 +0100)]
Merge branch 'unknown-bbcode-xss' into 3.1
Tim Düsterhus [Mon, 31 Jan 2022 13:18:17 +0000 (14:18 +0100)]
Fix XSS vulnerability in HtmlBBCodeParser::buildBBCodeTag()
Thanks to @methosiea for responsibly reporting this issue.
Resolves #4653
Tim Düsterhus [Mon, 31 Jan 2022 13:41:34 +0000 (14:41 +0100)]
Merge branch '5.4'
Tim Düsterhus [Mon, 31 Jan 2022 13:40:44 +0000 (14:40 +0100)]
Fix PHP 8.1.2 compatibility in DatabaseException
> Cannot access protected property PDOException::$code
Tim Düsterhus [Mon, 31 Jan 2022 11:52:34 +0000 (12:52 +0100)]
Tim Düsterhus [Mon, 31 Jan 2022 11:41:12 +0000 (12:41 +0100)]
Update `.htaccess` authz rules for Apache 2.4
see https://httpd.apache.org/docs/2.4/mod/mod_access_compat.html
see https://httpd.apache.org/docs/2.4/mod/mod_authz_core.html#require
Alexander Ebert [Sun, 30 Jan 2022 14:53:42 +0000 (15:53 +0100)]
Slightly defer the menu overflow calculation to avoid an early style recalculation
Alexander Ebert [Sun, 30 Jan 2022 14:47:51 +0000 (15:47 +0100)]
Improved the behavior of the search button
Alexander Ebert [Fri, 28 Jan 2022 20:52:55 +0000 (21:52 +0100)]
Added the quick search button to the user list
Closes #3954
Tim Düsterhus [Fri, 28 Jan 2022 15:15:05 +0000 (16:15 +0100)]
Merge pull request #4651 from WoltLab/attachment-link-no-thumbnail
Always link image attachments in attachments.tpl
Tim Düsterhus [Fri, 28 Jan 2022 13:42:18 +0000 (14:42 +0100)]
Always link image attachments in attachments.tpl
Previously only attachments with a larger version were linked. This made it
hard to "rightclick-save" very small attachments and also suppressed them from
the image viewer, allowing users to miss them when watching the image viewer's
slideshow.
Resolves #4601
Alexander Ebert [Fri, 28 Jan 2022 13:40:25 +0000 (14:40 +0100)]
Updating minified JavaScript files
Alexander Ebert [Fri, 28 Jan 2022 13:33:16 +0000 (14:33 +0100)]
Merge branch '55-js-bundle'
Alexander Ebert [Fri, 28 Jan 2022 13:08:50 +0000 (14:08 +0100)]
Strip prism from the `tiny` bundle
Alexander Ebert [Fri, 28 Jan 2022 12:54:26 +0000 (13:54 +0100)]
Removed a faulty workaround for the module bundle
Alexander Ebert [Thu, 27 Jan 2022 18:53:06 +0000 (19:53 +0100)]
Properly remove lazy-loaded modules from the bundle
Alexander Ebert [Thu, 27 Jan 2022 18:21:01 +0000 (19:21 +0100)]
Exclude modules that only contain TypeScript types and interfaces
Alexander Ebert [Thu, 27 Jan 2022 18:00:42 +0000 (19:00 +0100)]
Deprecate the module `WoltLabSuite/Core/Ui/FlexibleMenu`
The module remains unused for years and has not been adopted by third parties.
Alexander Ebert [Thu, 27 Jan 2022 17:56:30 +0000 (18:56 +0100)]
Load additional modules on-demand
Alexander Ebert [Thu, 27 Jan 2022 17:46:26 +0000 (18:46 +0100)]
Lazy load the style changer and poll editor
Alexander Ebert [Thu, 27 Jan 2022 17:24:09 +0000 (18:24 +0100)]
Load the "pica" library on demand
Alexander Ebert [Thu, 27 Jan 2022 15:51:50 +0000 (16:51 +0100)]
Defer the overflow handling for the main menu
The previous code would inject the overflow handles immediately if the `screen-lg` environment matches. However, depending on the time it took this could have caused a forced reflow because the width of the menu was considered to be stale following the injection of the elements.
Alexander Ebert [Thu, 27 Jan 2022 15:02:01 +0000 (16:02 +0100)]
Skip the template compilation step for phrases without curly braces
Alexander Ebert [Thu, 27 Jan 2022 13:45:58 +0000 (14:45 +0100)]
Stop relying on `ts-node` from the global scope
Alexander Ebert [Thu, 27 Jan 2022 13:35:59 +0000 (14:35 +0100)]
Removed a forced reflow that effectively did nothing
Tim Düsterhus [Thu, 27 Jan 2022 13:18:04 +0000 (14:18 +0100)]
Merge branch '5.4'
Tim Düsterhus [Thu, 27 Jan 2022 13:09:56 +0000 (14:09 +0100)]
Merge branch '5.3' into 5.4
Tim Düsterhus [Thu, 27 Jan 2022 13:01:33 +0000 (14:01 +0100)]
Fix regular expression for the `atext` production in EmailGrammar
Due to the missing escaping of the hyphen with a backslash the allowed
characters were not just:
- The plus sign (`+`, 0x2B),
- the dash (`-`, 0x2D), and
- the slash (`/`, 0x2F).
But all ASCII characters between 0x2B and 0x2F, namely:
- The plus sign (`+`, 0x2B),
- the comma (`,`, 0x2C),
- the dash (`-`, 0x2D),
- the dot (`.`, 0x2E), and
- the slash (`/`, 0x2F).
i.e. the comma and dot in addition to the actually allowed characters.
This error caused an incorrect encoding of headers in `::encodeHeader()`.
Specifically the real name of a mailbox was affected by this issue. As a result
a real name that included a dot, but otherwise matched the `atom` grammar was
improperly encoded, possibly causing email parsing failures for MUAs.
Tim Düsterhus [Thu, 27 Jan 2022 09:18:17 +0000 (10:18 +0100)]
Provide the current `url` to all login links
see
6e5b36526f992eb1f04fb4ebc28f3ae38bed6aff
Alexander Ebert [Wed, 26 Jan 2022 18:44:20 +0000 (19:44 +0100)]
Removed the no longer used API compatibility from exported packages
Alexander Ebert [Wed, 26 Jan 2022 18:31:09 +0000 (19:31 +0100)]
Requiring a minimum age for registrations now marks the fields as required
See https://www.woltlab.com/community/thread/291431-mindestalter-geburtsdatum-ist-pflichtfeld-wird-aber-nicht-so-deklariert/
Alexander Ebert [Wed, 26 Jan 2022 18:16:15 +0000 (19:16 +0100)]
Placeholder color for textareas, replaced legacy properties with `::placeholder`
See https://www.woltlab.com/community/thread/292757-unterschiedliche-placeholder-farben/
Tim Düsterhus [Wed, 26 Jan 2022 09:40:01 +0000 (10:40 +0100)]
Do not replace files in `custom/` during style import
Resolves #3748
Tim Düsterhus [Wed, 26 Jan 2022 09:37:06 +0000 (10:37 +0100)]
Use `str_contains()` instead of `strpos() !== false` in StyleEditor
Tim Düsterhus [Wed, 26 Jan 2022 09:30:00 +0000 (10:30 +0100)]
Shorten overly long line in StyleEditor
Alexander Ebert [Tue, 25 Jan 2022 14:45:56 +0000 (15:45 +0100)]
Implemented the StoreCode (#4649)
Co-authored-by: Tim Düsterhus <duesterhus@woltlab.com>