Matthias Schmidt [Tue, 15 Dec 2020 17:22:32 +0000 (18:22 +0100)]
Merge branch '5.3'
Matthias Schmidt [Tue, 15 Dec 2020 17:19:37 +0000 (18:19 +0100)]
Merge branch '5.2' into 5.3
Matthias Schmidt [Tue, 15 Dec 2020 17:19:21 +0000 (18:19 +0100)]
Fix hiding/showing tab menu entries due to form builder dependencies
Tim Düsterhus [Tue, 15 Dec 2020 10:47:41 +0000 (11:47 +0100)]
Merge pull request #3809 from WoltLab/access-log
Make the ACP session access log more useful
Tim Düsterhus [Mon, 14 Dec 2020 16:19:00 +0000 (17:19 +0100)]
Ensure that the request ID is fully logged in SessionAccessLogListener
Alexander Ebert [Tue, 15 Dec 2020 10:43:02 +0000 (11:43 +0100)]
Merge branch '5.3'
Alexander Ebert [Tue, 15 Dec 2020 10:42:36 +0000 (11:42 +0100)]
Merge pull request #3810 from WoltLab/user-group-option-limited-removal
Prevent the unintentional removal of values for groups that are not being edited
Alexander Ebert [Mon, 14 Dec 2020 19:13:50 +0000 (20:13 +0100)]
Merge branch '5.3'
Alexander Ebert [Mon, 14 Dec 2020 19:13:35 +0000 (20:13 +0100)]
Merge branch '5.2' into 5.3
Alexander Ebert [Mon, 14 Dec 2020 19:13:04 +0000 (20:13 +0100)]
Excempt the admin panel from application overrides
Fixes #3762
Alexander Ebert [Mon, 14 Dec 2020 17:44:41 +0000 (18:44 +0100)]
Prevent the unintentional removal of values for groups that are not being edited
Tim Düsterhus [Mon, 14 Dec 2020 15:16:09 +0000 (16:16 +0100)]
Increase `Bcrypt` cost to 12
This results in ~333ms per hash on an oldish Intel(R) Core(TM) i5-2430M CPU @ 2.40GHz
any other CPU I tested was faster than that.
Alexander Ebert [Mon, 14 Dec 2020 13:13:57 +0000 (14:13 +0100)]
Merge branch '5.3'
Alexander Ebert [Mon, 14 Dec 2020 13:13:27 +0000 (14:13 +0100)]
Merge pull request #3807 from WoltLab/imagick-quantize-images
Greatly improve the performance of GIF processing with ImageMagick
Alexander Ebert [Mon, 14 Dec 2020 12:43:18 +0000 (13:43 +0100)]
Removed the legacy workaround for ancient ImageMagick versions
Tim Düsterhus [Mon, 14 Dec 2020 10:51:24 +0000 (11:51 +0100)]
Make the ACP session access log more useful
This commit intentionally overloads the existing fields to keep the change
simple. The log is not really usuable for programmatic processing, due to the
existing constraints. The cleanest solution probably would be storing all the
loggable information as a JSON blob and then parsing that one when accessing
the log and querying it with MySQL's JSON function. But the latter are not
supported yet.
All in all this change improves the ACP session access log a lot and that is
what counts.
Resolves #3537
Alexander Ebert [Sun, 13 Dec 2020 19:05:13 +0000 (20:05 +0100)]
Typo
Alexander Ebert [Sat, 12 Dec 2020 18:11:39 +0000 (19:11 +0100)]
Prevent the trophy content being squished together
Alexander Ebert [Sat, 12 Dec 2020 17:41:36 +0000 (18:41 +0100)]
Greatly improve the performance of GIF processing with ImageMagick
Matthias Schmidt [Sat, 12 Dec 2020 14:08:25 +0000 (15:08 +0100)]
Merge branch '5.3'
Matthias Schmidt [Sat, 12 Dec 2020 14:01:52 +0000 (15:01 +0100)]
Merge branch '5.2' into 5.3
Matthias Schmidt [Sat, 12 Dec 2020 14:00:52 +0000 (15:00 +0100)]
Merge pull request #3799 from WoltLab/nonnull_in_primary_key
Validate primary indices with null columns in PHP DB API
joshuaruesweg [Fri, 11 Dec 2020 10:48:22 +0000 (11:48 +0100)]
Reload styleEditor after updating image path
Because the style is compiled after the variables have been set, we have to reload the style object once with the correct `imagePath` so that it can be used correctly in the initial compilation.
Tim Düsterhus [Fri, 11 Dec 2020 08:17:23 +0000 (09:17 +0100)]
Merge pull request #3778 from WoltLab/consistent-phrasing
Use consistent phrasing
Tim Düsterhus [Thu, 10 Dec 2020 13:21:03 +0000 (14:21 +0100)]
Remove obsolete PACKAGE_ID check in ImportCLICommand
Tim Düsterhus [Thu, 10 Dec 2020 10:30:29 +0000 (11:30 +0100)]
Merge pull request #3781 from WoltLab/remove-recaptcha-v1
Remove reCAPTCHA v1 implementation
Tim Düsterhus [Thu, 10 Dec 2020 08:45:27 +0000 (09:45 +0100)]
Simplify recaptcha key checks in template
Co-authored-by: Alexander Ebert <ebert@woltlab.com>
Tim Düsterhus [Thu, 10 Dec 2020 08:44:07 +0000 (09:44 +0100)]
Merge pull request #3798 from WoltLab/toc-suppress-enumeration
Suppress enumeration that is part of the headline in ToC
Matthias Schmidt [Wed, 9 Dec 2020 17:43:15 +0000 (18:43 +0100)]
Merge branch '5.3'
Matthias Schmidt [Wed, 9 Dec 2020 17:43:05 +0000 (18:43 +0100)]
Merge branch '5.2' into 5.3
Matthias Schmidt [Wed, 9 Dec 2020 17:42:41 +0000 (18:42 +0100)]
Fix doubled validation errors for CaptchaFormField
Matthias Schmidt [Wed, 9 Dec 2020 16:13:59 +0000 (17:13 +0100)]
Validate primary indices with null columns in PHP DB API
Close #3792
Tim Düsterhus [Wed, 9 Dec 2020 13:49:11 +0000 (14:49 +0100)]
Suppress enumeration that is part of the headline in ToC
Resolves #3757
Tim Düsterhus [Wed, 9 Dec 2020 12:26:58 +0000 (13:26 +0100)]
Merge pull request #3711 from WoltLab/mfa-meta
Multifactor Authentication: Integration branch
Tim Düsterhus [Wed, 9 Dec 2020 11:52:57 +0000 (12:52 +0100)]
Sort language items in wcf.user.security category
Tim Düsterhus [Wed, 9 Dec 2020 10:54:23 +0000 (11:54 +0100)]
Append 'Authentication' to name of SessionHandler::changeUserAfterMultifactor()
Tim Düsterhus [Wed, 9 Dec 2020 10:44:56 +0000 (11:44 +0100)]
Use constant time hexadecimal encoding in migrate_multifactor
Tim Düsterhus [Wed, 9 Dec 2020 10:43:16 +0000 (11:43 +0100)]
Add missing language item
Tim Düsterhus [Wed, 9 Dec 2020 09:45:16 +0000 (10:45 +0100)]
Make use of ->markRequiredFields(false) for single-field authentication forms
Tim Düsterhus [Wed, 9 Dec 2020 09:22:16 +0000 (10:22 +0100)]
Merge branch 'master' into mfa-meta
For #3764.
Alexander Ebert [Wed, 9 Dec 2020 00:23:31 +0000 (01:23 +0100)]
Restored the user online location for profiles
There has been a change in 5.3 that introduced the `$userOnline` value, however this is the target user itself and not the user's content they are viewing. The `$user` variable is useless, because it is a plain `User` object that is not compatible with `{$user}`.
Matthias Schmidt [Tue, 8 Dec 2020 17:05:21 +0000 (18:05 +0100)]
Merge pull request #3765 from WoltLab/db_api_rename_column
Support renaming database table columns via PHP API
Matthias Schmidt [Tue, 8 Dec 2020 17:03:41 +0000 (18:03 +0100)]
Make marking required fields optional with form builder (#3764)
Close #3758
joshuaruesweg [Tue, 8 Dec 2020 12:57:21 +0000 (13:57 +0100)]
Merge branch '5.3'
joshuaruesweg [Tue, 8 Dec 2020 12:56:41 +0000 (13:56 +0100)]
Fix `wcf.user.register.needEmailConfirmation`
joshuaruesweg [Tue, 8 Dec 2020 12:54:49 +0000 (13:54 +0100)]
Fix `wcf.user.register.needEmailConfirmation`
Alexander Ebert [Mon, 7 Dec 2020 20:00:31 +0000 (21:00 +0100)]
Merge branch '5.2' into 5.3
Alexander Ebert [Mon, 7 Dec 2020 20:00:11 +0000 (21:00 +0100)]
Merge branch '3.1' into 5.2
Alexander Ebert [Mon, 7 Dec 2020 19:58:02 +0000 (20:58 +0100)]
Force the use of the attachment thumbnail if the original is inaccessible
Alexander Ebert [Mon, 7 Dec 2020 19:02:58 +0000 (20:02 +0100)]
Workaround for the misaligned caret in Safari caused by 0x200B
Alexander Ebert [Mon, 7 Dec 2020 17:16:08 +0000 (18:16 +0100)]
Improved the iOS WebKit click detection inside the editor margin
Alexander Ebert [Mon, 7 Dec 2020 16:27:54 +0000 (17:27 +0100)]
Force a whitespace before and after inserted smileys
Tim Düsterhus [Mon, 7 Dec 2020 15:52:12 +0000 (16:52 +0100)]
Merge pull request #3793 from WoltLab/style-import-permissions
Validate package installation permissions in StyleImportForm
Tim Düsterhus [Mon, 7 Dec 2020 14:56:53 +0000 (15:56 +0100)]
Validate package installation permissions in StyleImportForm
Joshua Rüsweg [Mon, 7 Dec 2020 12:59:44 +0000 (13:59 +0100)]
Merge pull request #3786 from WoltLab/like-rebuild
Optimize LikeRebuildDataWorker performance
Tim Düsterhus [Mon, 7 Dec 2020 10:36:22 +0000 (11:36 +0100)]
Merge pull request #3775 from WoltLab/mfa-reauth
Add generic reauthentication implementation
Tim Düsterhus [Mon, 7 Dec 2020 10:24:56 +0000 (11:24 +0100)]
Add explanatory texts to reauthentication
Tim Düsterhus [Tue, 1 Dec 2020 14:59:00 +0000 (15:59 +0100)]
Do not request reauthentication from users connected to a third party provider
Tim Düsterhus [Tue, 1 Dec 2020 14:53:05 +0000 (15:53 +0100)]
Request reauthentication in MultifactorDisableForm
Tim Düsterhus [Tue, 1 Dec 2020 14:52:08 +0000 (15:52 +0100)]
Request reauthentication in MultifactorManageForm
Tim Düsterhus [Tue, 1 Dec 2020 14:48:12 +0000 (15:48 +0100)]
Add TReauthenticationCheck
Tim Düsterhus [Tue, 1 Dec 2020 14:41:12 +0000 (15:41 +0100)]
Add ReauthenticationForm
Tim Düsterhus [Tue, 1 Dec 2020 14:08:29 +0000 (15:08 +0100)]
Add reauthentication logic to SessionHandler
Tim Düsterhus [Tue, 1 Dec 2020 14:19:07 +0000 (15:19 +0100)]
Remove obsolete import from MultifactorAuthenticationForm
Tim Düsterhus [Mon, 7 Dec 2020 10:05:24 +0000 (11:05 +0100)]
Merge branch 'master' into mfa-meta
For the UserPasswordFormField.
Tim Düsterhus [Mon, 7 Dec 2020 10:05:02 +0000 (11:05 +0100)]
Merge branch '5.3'
Tim Düsterhus [Mon, 7 Dec 2020 08:09:50 +0000 (09:09 +0100)]
Merge pull request #3779 from WoltLab/mfa-acp
Add multi-factor management to UserEditForm
Tim Düsterhus [Mon, 7 Dec 2020 08:07:57 +0000 (09:07 +0100)]
Merge pull request #3782 from WoltLab/deprecate-memcached
Deprecate memcached
Alexander Ebert [Sun, 6 Dec 2020 21:48:54 +0000 (22:48 +0100)]
Only close the user panel drop-downs if no key modifier was pressed
Alexander Ebert [Sun, 6 Dec 2020 20:16:16 +0000 (21:16 +0100)]
Discard the current selection when saving a quote
Alexander Ebert [Sun, 6 Dec 2020 20:10:59 +0000 (21:10 +0100)]
Prevent the tooltip being selectable while the user changes the selection
Alexander Ebert [Sun, 6 Dec 2020 19:35:08 +0000 (20:35 +0100)]
Unified behavior of the notification list and the corresponding menu drop-down
Alexander Ebert [Sun, 6 Dec 2020 19:19:58 +0000 (20:19 +0100)]
Consistent width of menus in the mobile menu
Matthias Schmidt [Sun, 6 Dec 2020 14:11:50 +0000 (15:11 +0100)]
Fix merge conflict
Matthias Schmidt [Sun, 6 Dec 2020 14:11:26 +0000 (15:11 +0100)]
Merge branch '5.3'
Matthias Schmidt [Sun, 6 Dec 2020 14:09:45 +0000 (15:09 +0100)]
Merge branch '5.2' into 5.3
Matthias Schmidt [Sun, 6 Dec 2020 14:09:17 +0000 (15:09 +0100)]
Fix dependencies for single media form field
Matthias Schmidt [Sun, 6 Dec 2020 13:09:21 +0000 (14:09 +0100)]
Fix column logs if renaming database column that was added later
Matthias Schmidt [Sun, 6 Dec 2020 13:08:37 +0000 (14:08 +0100)]
Throw error if renaming non existing database column
Matthias Schmidt [Sun, 6 Dec 2020 12:48:28 +0000 (13:48 +0100)]
Add form field for active user's password (#3783)
Close #3777
Tim Düsterhus [Sat, 5 Dec 2020 18:08:14 +0000 (19:08 +0100)]
Add missing space after comma in ReactionHandler::renderInlineList()
Alexander Ebert [Fri, 4 Dec 2020 17:53:33 +0000 (18:53 +0100)]
Merge pull request #3785 from WoltLab/54-typescript-acp-article
Convert the ACP article modules to TypeScript
Tim Düsterhus [Fri, 4 Dec 2020 14:59:43 +0000 (15:59 +0100)]
Simplify selection of existing like objects in LikeRebuildDataWorker
Since the previous commit it is expected that only a single objectTypeID is hit
per worker execution in the usual case, because all objects for a single
objectTypeID are processed before proceeding to the next objectTypeID. This
patch optimizes this case by sending a separate query per objectTypeID to fetch
the existing like objects instead of combining all the objects in a single
query.
This should help MySQL in optimizing the query, because the objectTypeID (which
is the first column in the UNIQUE KEY on wcf1_like_object) is fixed for a
single query and this is immediately obvious without needing to scan all the
tuples passed to the IN(…) condition.
In the general case the number of queries does not change. In the iterations
where the last objectID for an objectTypeID is reached two queries will be sent
instead of a single one. Those two combined should be more efficient that the
single old query, though.
Tim Düsterhus [Fri, 4 Dec 2020 14:52:10 +0000 (15:52 +0100)]
Allow LikeRebuildDataWorker to leverage the wcf1_like.objectTypeID key for sorting
joshuaruesweg [Fri, 4 Dec 2020 13:10:23 +0000 (14:10 +0100)]
Fix resetting user sessions when editing users via ACP
Fixes #3780
Marcel Werk [Fri, 4 Dec 2020 11:27:04 +0000 (12:27 +0100)]
Adjusted handling of empty breadcrumbs
joshuaruesweg [Fri, 4 Dec 2020 10:38:21 +0000 (11:38 +0100)]
Merge branch '5.3'
joshuaruesweg [Fri, 4 Dec 2020 10:35:16 +0000 (11:35 +0100)]
Merge branch '5.2'
joshuaruesweg [Fri, 4 Dec 2020 10:33:53 +0000 (11:33 +0100)]
Ignore invalid file ids during deleting uploaded files
There can be several reasons why the files are no longer known. We can ignore this and simply return a success message so that it doesn't pop up in the frontend when unknown files are deleted.
joshuaruesweg [Fri, 4 Dec 2020 10:23:53 +0000 (11:23 +0100)]
Fix detecting images with capitalised file extensions
joshuaruesweg [Fri, 4 Dec 2020 10:05:10 +0000 (11:05 +0100)]
Only rebuild favicons if there is a new image uploaded
joshuaruesweg [Fri, 4 Dec 2020 09:09:32 +0000 (10:09 +0100)]
Fix updating pageLogo in StyleAction
Tim Düsterhus [Fri, 4 Dec 2020 08:28:11 +0000 (09:28 +0100)]
Move the checkmark out of wcf.acp.user.security.multifactor.active
Tim Düsterhus [Fri, 4 Dec 2020 08:08:34 +0000 (09:08 +0100)]
Use 'Not Recommended' in favor of 'Deprecated' for English memcached deprecation
Tim Düsterhus [Fri, 4 Dec 2020 08:07:46 +0000 (09:07 +0100)]
Consistently use 'Obsolet' for German memcached deprecation
Alexander Ebert [Fri, 4 Dec 2020 00:44:36 +0000 (01:44 +0100)]
Convert `Acp/Ui/Article/InlineEditor` to TypeScript
Tim Düsterhus [Thu, 3 Dec 2020 10:24:30 +0000 (11:24 +0100)]
Deprecated memcached
Resolves #3638
Tim Düsterhus [Thu, 3 Dec 2020 10:11:43 +0000 (11:11 +0100)]
Inline RecaptchaHandlerV2::validate() in RecaptchaHandler
Tim Düsterhus [Thu, 3 Dec 2020 10:06:40 +0000 (11:06 +0100)]
Remove reCAPTCHA v1 implementation
API keys can no longer be created and Google removed the necessary endpoints
for it to work. Thus the code is dead code by now.
Tim Düsterhus [Thu, 3 Dec 2020 08:56:15 +0000 (09:56 +0100)]
Use more user-friendly error message for MFA w/o setups
This still MUST NOT ever happen, but in case it does the error message is more
useful and it was easy enough to implement.