GitHub/WoltLab/WCF.git
3 years agoMerge branch '5.3'
Matthias Schmidt [Tue, 15 Dec 2020 17:22:32 +0000 (18:22 +0100)]
Merge branch '5.3'

3 years agoMerge branch '5.2' into 5.3
Matthias Schmidt [Tue, 15 Dec 2020 17:19:37 +0000 (18:19 +0100)]
Merge branch '5.2' into 5.3

3 years agoFix hiding/showing tab menu entries due to form builder dependencies
Matthias Schmidt [Tue, 15 Dec 2020 17:19:21 +0000 (18:19 +0100)]
Fix hiding/showing tab menu entries due to form builder dependencies

3 years agoMerge pull request #3809 from WoltLab/access-log
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

3 years agoEnsure that the request ID is fully logged in SessionAccessLogListener
Tim Düsterhus [Mon, 14 Dec 2020 16:19:00 +0000 (17:19 +0100)]
Ensure that the request ID is fully logged in SessionAccessLogListener

3 years agoMerge branch '5.3'
Alexander Ebert [Tue, 15 Dec 2020 10:43:02 +0000 (11:43 +0100)]
Merge branch '5.3'

3 years agoMerge pull request #3810 from WoltLab/user-group-option-limited-removal
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

3 years agoMerge branch '5.3'
Alexander Ebert [Mon, 14 Dec 2020 19:13:50 +0000 (20:13 +0100)]
Merge branch '5.3'

3 years agoMerge branch '5.2' into 5.3
Alexander Ebert [Mon, 14 Dec 2020 19:13:35 +0000 (20:13 +0100)]
Merge branch '5.2' into 5.3

3 years agoExcempt the admin panel from application overrides
Alexander Ebert [Mon, 14 Dec 2020 19:13:04 +0000 (20:13 +0100)]
Excempt the admin panel from application overrides

Fixes #3762

3 years agoPrevent the unintentional removal of values for groups that are not being edited
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

3 years agoIncrease `Bcrypt` cost to 12
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.

3 years agoMerge branch '5.3'
Alexander Ebert [Mon, 14 Dec 2020 13:13:57 +0000 (14:13 +0100)]
Merge branch '5.3'

3 years agoMerge pull request #3807 from WoltLab/imagick-quantize-images
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

3 years agoRemoved the legacy workaround for ancient ImageMagick versions
Alexander Ebert [Mon, 14 Dec 2020 12:43:18 +0000 (13:43 +0100)]
Removed the legacy workaround for ancient ImageMagick versions

3 years agoMake the ACP session access log more useful
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

3 years agoTypo
Alexander Ebert [Sun, 13 Dec 2020 19:05:13 +0000 (20:05 +0100)]
Typo

3 years agoPrevent the trophy content being squished together
Alexander Ebert [Sat, 12 Dec 2020 18:11:39 +0000 (19:11 +0100)]
Prevent the trophy content being squished together

3 years agoGreatly improve the performance of GIF processing with ImageMagick
Alexander Ebert [Sat, 12 Dec 2020 17:41:36 +0000 (18:41 +0100)]
Greatly improve the performance of GIF processing with ImageMagick

3 years agoMerge branch '5.3'
Matthias Schmidt [Sat, 12 Dec 2020 14:08:25 +0000 (15:08 +0100)]
Merge branch '5.3'

3 years agoMerge branch '5.2' into 5.3
Matthias Schmidt [Sat, 12 Dec 2020 14:01:52 +0000 (15:01 +0100)]
Merge branch '5.2' into 5.3

3 years agoMerge pull request #3799 from WoltLab/nonnull_in_primary_key
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

3 years agoReload styleEditor after updating image path
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.

3 years agoMerge pull request #3778 from WoltLab/consistent-phrasing
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

3 years agoRemove obsolete PACKAGE_ID check in ImportCLICommand
Tim Düsterhus [Thu, 10 Dec 2020 13:21:03 +0000 (14:21 +0100)]
Remove obsolete PACKAGE_ID check in ImportCLICommand

3 years agoMerge pull request #3781 from WoltLab/remove-recaptcha-v1
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

3 years agoSimplify recaptcha key checks in template
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>
3 years agoMerge pull request #3798 from WoltLab/toc-suppress-enumeration
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

3 years agoMerge branch '5.3'
Matthias Schmidt [Wed, 9 Dec 2020 17:43:15 +0000 (18:43 +0100)]
Merge branch '5.3'

3 years agoMerge branch '5.2' into 5.3
Matthias Schmidt [Wed, 9 Dec 2020 17:43:05 +0000 (18:43 +0100)]
Merge branch '5.2' into 5.3

3 years agoFix doubled validation errors for CaptchaFormField
Matthias Schmidt [Wed, 9 Dec 2020 17:42:41 +0000 (18:42 +0100)]
Fix doubled validation errors for CaptchaFormField

3 years agoValidate primary indices with null columns in PHP DB API
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

3 years agoSuppress enumeration that is part of the headline in ToC
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

3 years agoMerge pull request #3711 from WoltLab/mfa-meta
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

3 years agoSort language items in wcf.user.security category
Tim Düsterhus [Wed, 9 Dec 2020 11:52:57 +0000 (12:52 +0100)]
Sort language items in wcf.user.security category

3 years agoAppend 'Authentication' to name of SessionHandler::changeUserAfterMultifactor()
Tim Düsterhus [Wed, 9 Dec 2020 10:54:23 +0000 (11:54 +0100)]
Append 'Authentication' to name of SessionHandler::changeUserAfterMultifactor()

3 years agoUse constant time hexadecimal encoding in migrate_multifactor
Tim Düsterhus [Wed, 9 Dec 2020 10:44:56 +0000 (11:44 +0100)]
Use constant time hexadecimal encoding in migrate_multifactor

3 years agoAdd missing language item
Tim Düsterhus [Wed, 9 Dec 2020 10:43:16 +0000 (11:43 +0100)]
Add missing language item

3 years agoMake use of ->markRequiredFields(false) for single-field authentication forms
Tim Düsterhus [Wed, 9 Dec 2020 09:45:16 +0000 (10:45 +0100)]
Make use of ->markRequiredFields(false) for single-field authentication forms

3 years agoMerge branch 'master' into mfa-meta
Tim Düsterhus [Wed, 9 Dec 2020 09:22:16 +0000 (10:22 +0100)]
Merge branch 'master' into mfa-meta

For #3764.

3 years agoRestored the user online location for profiles
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}`.

3 years agoMerge pull request #3765 from WoltLab/db_api_rename_column
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

3 years agoMake marking required fields optional with form builder (#3764)
Matthias Schmidt [Tue, 8 Dec 2020 17:03:41 +0000 (18:03 +0100)]
Make marking required fields optional with form builder (#3764)

Close #3758

3 years agoMerge branch '5.3'
joshuaruesweg [Tue, 8 Dec 2020 12:57:21 +0000 (13:57 +0100)]
Merge branch '5.3'

3 years agoFix `wcf.user.register.needEmailConfirmation`
joshuaruesweg [Tue, 8 Dec 2020 12:56:41 +0000 (13:56 +0100)]
Fix `wcf.user.register.needEmailConfirmation`

3 years agoFix `wcf.user.register.needEmailConfirmation`
joshuaruesweg [Tue, 8 Dec 2020 12:54:49 +0000 (13:54 +0100)]
Fix `wcf.user.register.needEmailConfirmation`

3 years agoMerge branch '5.2' into 5.3
Alexander Ebert [Mon, 7 Dec 2020 20:00:31 +0000 (21:00 +0100)]
Merge branch '5.2' into 5.3

3 years agoMerge branch '3.1' into 5.2
Alexander Ebert [Mon, 7 Dec 2020 20:00:11 +0000 (21:00 +0100)]
Merge branch '3.1' into 5.2

3 years agoForce the use of the attachment thumbnail if the original is inaccessible
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

3 years agoWorkaround for the misaligned caret in Safari caused by 0x200B
Alexander Ebert [Mon, 7 Dec 2020 19:02:58 +0000 (20:02 +0100)]
Workaround for the misaligned caret in Safari caused by 0x200B

3 years agoImproved the iOS WebKit click detection inside the editor margin
Alexander Ebert [Mon, 7 Dec 2020 17:16:08 +0000 (18:16 +0100)]
Improved the iOS WebKit click detection inside the editor margin

3 years agoForce a whitespace before and after inserted smileys
Alexander Ebert [Mon, 7 Dec 2020 16:27:54 +0000 (17:27 +0100)]
Force a whitespace before and after inserted smileys

3 years agoMerge pull request #3793 from WoltLab/style-import-permissions
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

3 years agoValidate 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

3 years agoMerge pull request #3786 from WoltLab/like-rebuild
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

3 years agoMerge pull request #3775 from WoltLab/mfa-reauth
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

3 years agoAdd explanatory texts to reauthentication
Tim Düsterhus [Mon, 7 Dec 2020 10:24:56 +0000 (11:24 +0100)]
Add explanatory texts to reauthentication

3 years agoDo not request reauthentication from users connected to a third party provider
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

3 years agoRequest reauthentication in MultifactorDisableForm
Tim Düsterhus [Tue, 1 Dec 2020 14:53:05 +0000 (15:53 +0100)]
Request reauthentication in MultifactorDisableForm

3 years agoRequest reauthentication in MultifactorManageForm
Tim Düsterhus [Tue, 1 Dec 2020 14:52:08 +0000 (15:52 +0100)]
Request reauthentication in MultifactorManageForm

3 years agoAdd TReauthenticationCheck
Tim Düsterhus [Tue, 1 Dec 2020 14:48:12 +0000 (15:48 +0100)]
Add TReauthenticationCheck

3 years agoAdd ReauthenticationForm
Tim Düsterhus [Tue, 1 Dec 2020 14:41:12 +0000 (15:41 +0100)]
Add ReauthenticationForm

3 years agoAdd reauthentication logic to SessionHandler
Tim Düsterhus [Tue, 1 Dec 2020 14:08:29 +0000 (15:08 +0100)]
Add reauthentication logic to SessionHandler

3 years agoRemove obsolete import from MultifactorAuthenticationForm
Tim Düsterhus [Tue, 1 Dec 2020 14:19:07 +0000 (15:19 +0100)]
Remove obsolete import from MultifactorAuthenticationForm

3 years agoMerge branch 'master' into mfa-meta
Tim Düsterhus [Mon, 7 Dec 2020 10:05:24 +0000 (11:05 +0100)]
Merge branch 'master' into mfa-meta

For the UserPasswordFormField.

3 years agoMerge branch '5.3'
Tim Düsterhus [Mon, 7 Dec 2020 10:05:02 +0000 (11:05 +0100)]
Merge branch '5.3'

3 years agoMerge pull request #3779 from WoltLab/mfa-acp
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

3 years agoMerge pull request #3782 from WoltLab/deprecate-memcached
Tim Düsterhus [Mon, 7 Dec 2020 08:07:57 +0000 (09:07 +0100)]
Merge pull request #3782 from WoltLab/deprecate-memcached

Deprecate memcached

3 years agoOnly close the user panel drop-downs if no key modifier was pressed
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

3 years agoDiscard the current selection when saving a quote
Alexander Ebert [Sun, 6 Dec 2020 20:16:16 +0000 (21:16 +0100)]
Discard the current selection when saving a quote

3 years agoPrevent the tooltip being selectable while the user changes the selection
Alexander Ebert [Sun, 6 Dec 2020 20:10:59 +0000 (21:10 +0100)]
Prevent the tooltip being selectable while the user changes the selection

3 years agoUnified behavior of the notification list and the corresponding menu drop-down
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

3 years agoConsistent width of menus in the mobile menu
Alexander Ebert [Sun, 6 Dec 2020 19:19:58 +0000 (20:19 +0100)]
Consistent width of menus in the mobile menu

3 years agoFix merge conflict
Matthias Schmidt [Sun, 6 Dec 2020 14:11:50 +0000 (15:11 +0100)]
Fix merge conflict

3 years agoMerge branch '5.3'
Matthias Schmidt [Sun, 6 Dec 2020 14:11:26 +0000 (15:11 +0100)]
Merge branch '5.3'

3 years agoMerge branch '5.2' into 5.3
Matthias Schmidt [Sun, 6 Dec 2020 14:09:45 +0000 (15:09 +0100)]
Merge branch '5.2' into 5.3

3 years agoFix dependencies for single media form field
Matthias Schmidt [Sun, 6 Dec 2020 14:09:17 +0000 (15:09 +0100)]
Fix dependencies for single media form field

3 years agoFix column logs if renaming database column that was added later
Matthias Schmidt [Sun, 6 Dec 2020 13:09:21 +0000 (14:09 +0100)]
Fix column logs if renaming database column that was added later

3 years agoThrow error if renaming non existing database column
Matthias Schmidt [Sun, 6 Dec 2020 13:08:37 +0000 (14:08 +0100)]
Throw error if renaming non existing database column

3 years agoAdd form field for active user's password (#3783)
Matthias Schmidt [Sun, 6 Dec 2020 12:48:28 +0000 (13:48 +0100)]
Add form field for active user's password (#3783)

Close #3777

3 years agoAdd missing space after comma in ReactionHandler::renderInlineList()
Tim Düsterhus [Sat, 5 Dec 2020 18:08:14 +0000 (19:08 +0100)]
Add missing space after comma in ReactionHandler::renderInlineList()

3 years agoMerge pull request #3785 from WoltLab/54-typescript-acp-article
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

3 years agoSimplify selection of existing like objects in LikeRebuildDataWorker
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.

3 years agoAllow LikeRebuildDataWorker to leverage the wcf1_like.objectTypeID key for sorting
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

3 years agoFix resetting user sessions when editing users via ACP
joshuaruesweg [Fri, 4 Dec 2020 13:10:23 +0000 (14:10 +0100)]
Fix resetting user sessions when editing users via ACP
Fixes #3780

3 years agoAdjusted handling of empty breadcrumbs
Marcel Werk [Fri, 4 Dec 2020 11:27:04 +0000 (12:27 +0100)]
Adjusted handling of empty breadcrumbs

3 years agoMerge branch '5.3'
joshuaruesweg [Fri, 4 Dec 2020 10:38:21 +0000 (11:38 +0100)]
Merge branch '5.3'

3 years agoMerge branch '5.2'
joshuaruesweg [Fri, 4 Dec 2020 10:35:16 +0000 (11:35 +0100)]
Merge branch '5.2'

3 years agoIgnore invalid file ids during deleting uploaded files
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.

3 years agoFix detecting images with capitalised file extensions
joshuaruesweg [Fri, 4 Dec 2020 10:23:53 +0000 (11:23 +0100)]
Fix detecting images with capitalised file extensions

3 years agoOnly rebuild favicons if there is a new image uploaded
joshuaruesweg [Fri, 4 Dec 2020 10:05:10 +0000 (11:05 +0100)]
Only rebuild favicons if there is a new image uploaded

3 years agoFix updating pageLogo in StyleAction
joshuaruesweg [Fri, 4 Dec 2020 09:09:32 +0000 (10:09 +0100)]
Fix updating pageLogo in StyleAction

3 years agoMove the checkmark out of wcf.acp.user.security.multifactor.active
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

3 years agoUse 'Not Recommended' in favor of 'Deprecated' for English memcached deprecation
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

3 years agoConsistently use 'Obsolet' for German memcached deprecation
Tim Düsterhus [Fri, 4 Dec 2020 08:07:46 +0000 (09:07 +0100)]
Consistently use 'Obsolet' for German memcached deprecation

3 years agoConvert `Acp/Ui/Article/InlineEditor` to TypeScript
Alexander Ebert [Fri, 4 Dec 2020 00:44:36 +0000 (01:44 +0100)]
Convert `Acp/Ui/Article/InlineEditor` to TypeScript

3 years agoDeprecated memcached
Tim Düsterhus [Thu, 3 Dec 2020 10:24:30 +0000 (11:24 +0100)]
Deprecated memcached

Resolves #3638

3 years agoInline RecaptchaHandlerV2::validate() in RecaptchaHandler
Tim Düsterhus [Thu, 3 Dec 2020 10:11:43 +0000 (11:11 +0100)]
Inline RecaptchaHandlerV2::validate() in RecaptchaHandler

3 years agoRemove reCAPTCHA v1 implementation
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.

3 years agoUse more user-friendly error message for MFA w/o setups
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.