GitHub/WoltLab/WCF.git
4 years agoMerge pull request #3637 from WoltLab/remove_meta_keywords
Marcel Werk [Wed, 28 Oct 2020 09:05:02 +0000 (10:05 +0100)]
Merge pull request #3637 from WoltLab/remove_meta_keywords

Remove meta keywords

4 years agoMerge branch 'master' into remove_meta_keywords
Tim Düsterhus [Wed, 28 Oct 2020 09:00:46 +0000 (10:00 +0100)]
Merge branch 'master' into remove_meta_keywords

4 years agoMerge branch '5.3'
Matthias Schmidt [Tue, 27 Oct 2020 17:06:50 +0000 (18:06 +0100)]
Merge branch '5.3'

4 years agoHide empty table after deleting last missing language item on page
Matthias Schmidt [Tue, 27 Oct 2020 17:06:36 +0000 (18:06 +0100)]
Hide empty table after deleting last missing language item on page

4 years agoRemove obsolete references to `missingLanguageItems.txt`
Matthias Schmidt [Tue, 27 Oct 2020 17:02:15 +0000 (18:02 +0100)]
Remove obsolete references to `missingLanguageItems.txt`

4 years agoMerge pull request #3627 from WoltLab/composer-deps
Tim Düsterhus [Tue, 27 Oct 2020 13:09:20 +0000 (14:09 +0100)]
Merge pull request #3627 from WoltLab/composer-deps

Update composer dependencies

4 years agoTighten up minimum version of scssphp/scssphp
Tim Düsterhus [Thu, 22 Oct 2020 08:11:14 +0000 (10:11 +0200)]
Tighten up minimum version of scssphp/scssphp

4 years agoUpdate to ezyang/htmlpurifier 4.13.*
Tim Düsterhus [Thu, 22 Oct 2020 08:07:40 +0000 (10:07 +0200)]
Update to ezyang/htmlpurifier 4.13.*

4 years agoMerge branch '5.3'
Tim Düsterhus [Tue, 27 Oct 2020 10:47:37 +0000 (11:47 +0100)]
Merge branch '5.3'

4 years agoFix possible "Invalid parameter number" error in UserStorageHandler
Tim Düsterhus [Tue, 27 Oct 2020 10:46:55 +0000 (11:46 +0100)]
Fix possible "Invalid parameter number" error in UserStorageHandler

4 years agoRemove `Promise` polyfill
Tim Düsterhus [Mon, 19 Oct 2020 09:45:03 +0000 (11:45 +0200)]
Remove `Promise` polyfill

4 years agoMerge branch '5.3'
Tim Düsterhus [Mon, 26 Oct 2020 16:31:39 +0000 (17:31 +0100)]
Merge branch '5.3'

4 years agoMerge branch '5.2' into 5.3
Tim Düsterhus [Mon, 26 Oct 2020 16:31:20 +0000 (17:31 +0100)]
Merge branch '5.2' into 5.3

4 years agoMerge pull request #3648 from WoltLab/actions
Tim Düsterhus [Mon, 26 Oct 2020 16:31:08 +0000 (17:31 +0100)]
Merge pull request #3648 from WoltLab/actions

Refactor Workflows

4 years agoAdd javascript workflow
Tim Düsterhus [Mon, 26 Oct 2020 15:53:33 +0000 (16:53 +0100)]
Add javascript workflow

4 years agoRename php-syntax workflow to php
Tim Düsterhus [Mon, 26 Oct 2020 15:53:17 +0000 (16:53 +0100)]
Rename php-syntax workflow to php

4 years agoAdjust human readable name for CodeSniffer check
Tim Düsterhus [Mon, 26 Oct 2020 16:02:03 +0000 (17:02 +0100)]
Adjust human readable name for CodeSniffer check

4 years agoMerge pull request #3636 from WoltLab/remove-gzip
Tim Düsterhus [Mon, 26 Oct 2020 15:30:13 +0000 (16:30 +0100)]
Merge pull request #3636 from WoltLab/remove-gzip

Remove in-application gzip compression

4 years agoRemove in-application gzip compression
Tim Düsterhus [Fri, 23 Oct 2020 14:17:19 +0000 (16:17 +0200)]
Remove in-application gzip compression

Resolves #3634

4 years agoMerge branch '5.3'
Tim Düsterhus [Mon, 26 Oct 2020 15:18:58 +0000 (16:18 +0100)]
Merge branch '5.3'

4 years agoMerge pull request #3646 from WoltLab/user-storage-refactor
Alexander Ebert [Mon, 26 Oct 2020 14:48:46 +0000 (15:48 +0100)]
Merge pull request #3646 from WoltLab/user-storage-refactor

Clean up user storage update logic

4 years agoClean up user storage update logic
Tim Düsterhus [Fri, 23 Oct 2020 10:33:15 +0000 (12:33 +0200)]
Clean up user storage update logic

This commit attempts to reduce the lock contention during user storage
shutdown. The user storage is a constant source of deadlocks and the update
logic grew increasingly ugly over the years in attempts to fix this.

While the previous situation was acceptable in that errors did not surface due
to the automated retries it still trashed any useful information within `SHOW
ENGINE InnoDB STATUS`, making debugging other deadlocks unnecessarily hard.

The new updating logic uses a single `log` array, indexed by user and field.
`null` values indicate a reset, non-`null` values are an update.

When shutting the user storage down the database will be updated with one
transaction per user, ensuring a consistent view for that user. In most
requests it is expected that only a single user (the current one) is being
updated anyway. Before actually performing the updates the row in wcf1_user for
that user is locked using a SELECT FOR UPDATE query. This should cause
concurrent requests to wait at the `SELECT`, which hopefully stops them from
obtaining any locks that the later DELETE / INSERT will need.

Just locking the `wcf1_user_storage` will not work as the lock cannot be
grabbed atomically. Instead MySQL locks all the matching rows one-by-one.
Locking the user is not ideal, but the update of the user storage should happen
pretty quickly which makes it acceptable.

4 years agoSelect correct identifier in FloodControl::countGuestContent()
Tim Düsterhus [Mon, 26 Oct 2020 11:13:25 +0000 (12:13 +0100)]
Select correct identifier in FloodControl::countGuestContent()

see https://github.com/WoltLab/WCF/pull/3633/files#r511879902

4 years agoRemove deletion of options that were removed in 5.3
Tim Düsterhus [Mon, 26 Oct 2020 10:03:55 +0000 (11:03 +0100)]
Remove deletion of options that were removed in 5.3

4 years agoMerge branch '5.3'
joshuaruesweg [Sat, 24 Oct 2020 13:53:34 +0000 (15:53 +0200)]
Merge branch '5.3'

4 years agoMerge branch '5.2' into 5.3
joshuaruesweg [Sat, 24 Oct 2020 13:52:10 +0000 (15:52 +0200)]
Merge branch '5.2' into 5.3

4 years agoMerge pull request #3644 from Krymonota/patch-14
Joshua Rüsweg [Sat, 24 Oct 2020 13:28:59 +0000 (15:28 +0200)]
Merge pull request #3644 from Krymonota/patch-14

Add like support check to comment responses

4 years agoAdd like support check to comment responses
Niklas [Sat, 24 Oct 2020 12:12:15 +0000 (14:12 +0200)]
Add like support check to comment responses

If the provided comment manager doesn't support likes, it's not possible to like comments, as can be seen here:

- https://github.com/WoltLab/WCF/blob/6747fe291c584d7c8295912f8d94297588d142b2/com.woltlab.wcf/templates/commentList.tpl#L59
- https://github.com/WoltLab/WCF/blob/6747fe291c584d7c8295912f8d94297588d142b2/com.woltlab.wcf/templates/commentList.tpl#L59

However, it's never checked for comment responses whether the comment manager supports likes. This results in the like button being displayed for comment responses, even though likes aren't supported.

4 years agoMerge pull request #3633 from WoltLab/flood_control
Matthias Schmidt [Fri, 23 Oct 2020 15:39:21 +0000 (17:39 +0200)]
Merge pull request #3633 from WoltLab/flood_control

Add flood control API

4 years agoUnify flood control method descriptions
Matthias Schmidt [Fri, 23 Oct 2020 15:38:39 +0000 (17:38 +0200)]
Unify flood control method descriptions

4 years agoRemove foreign key in flood control database table
Matthias Schmidt [Fri, 23 Oct 2020 15:28:17 +0000 (17:28 +0200)]
Remove foreign key in flood control database table

4 years agoRelease 5.3.0 RC 3
Alexander Ebert [Fri, 23 Oct 2020 15:11:49 +0000 (17:11 +0200)]
Release 5.3.0 RC 3

4 years agoMerge branch 'remove_meta_keywords' of github.com:WoltLab/WCF into remove_meta_keywords
Matthias Schmidt [Fri, 23 Oct 2020 15:02:41 +0000 (17:02 +0200)]
Merge branch 'remove_meta_keywords' of github.com:WoltLab/WCF into remove_meta_keywords

4 years agoAdd update script to remove `wcf1_page_content.metaKeywords`
Matthias Schmidt [Fri, 23 Oct 2020 14:57:32 +0000 (16:57 +0200)]
Add update script to remove `wcf1_page_content.metaKeywords`

4 years agoUse PHPDoc to mark template variable as deprecated
Matthias Schmidt [Fri, 23 Oct 2020 14:50:46 +0000 (16:50 +0200)]
Use PHPDoc to mark template variable as deprecated

Co-authored-by: Tim Düsterhus <duesterhus@woltlab.com>
4 years agoUnify phrasing of FloodControl method documentation
Matthias Schmidt [Fri, 23 Oct 2020 14:48:03 +0000 (16:48 +0200)]
Unify phrasing of FloodControl method documentation

4 years agoImprove query performance in FloodControl::getLastTimeByIdentifier()
Matthias Schmidt [Fri, 23 Oct 2020 14:45:30 +0000 (16:45 +0200)]
Improve query performance in FloodControl::getLastTimeByIdentifier()

4 years agoUpdate flood control method description
Matthias Schmidt [Fri, 23 Oct 2020 14:32:09 +0000 (16:32 +0200)]
Update flood control method description

4 years agoUse WCF_UUID and class name if flood control identifier prefix
Matthias Schmidt [Fri, 23 Oct 2020 13:47:18 +0000 (15:47 +0200)]
Use WCF_UUID and class name if flood control identifier prefix

4 years agoUse half-open interval when counting flood control entries
Matthias Schmidt [Fri, 23 Oct 2020 13:32:14 +0000 (15:32 +0200)]
Use half-open interval when counting flood control entries

4 years agoMake FloodControl a final class
Matthias Schmidt [Fri, 23 Oct 2020 13:26:42 +0000 (15:26 +0200)]
Make FloodControl a final class

4 years agoChange FloodControl::PRUNE_TIME visability to private
Matthias Schmidt [Fri, 23 Oct 2020 13:25:05 +0000 (15:25 +0200)]
Change FloodControl::PRUNE_TIME visability to private

Co-authored-by: Tim Düsterhus <duesterhus@woltlab.com>
4 years agoCleanup old flood control entries in daily cronjob
Matthias Schmidt [Fri, 23 Oct 2020 12:57:43 +0000 (14:57 +0200)]
Cleanup old flood control entries in daily cronjob

4 years agoAdd flood control methods to get last content creation time
Matthias Schmidt [Fri, 23 Oct 2020 12:56:31 +0000 (14:56 +0200)]
Add flood control methods to get last content creation time

4 years agoAdd flood control methods to count contents in certain period of time
Matthias Schmidt [Fri, 23 Oct 2020 12:54:32 +0000 (14:54 +0200)]
Add flood control methods to count contents in certain period of time

4 years agoAdd flood control methods to register new content
Matthias Schmidt [Fri, 23 Oct 2020 12:53:28 +0000 (14:53 +0200)]
Add flood control methods to register new content

4 years agoAdd flood control database table
Matthias Schmidt [Fri, 23 Oct 2020 12:51:10 +0000 (14:51 +0200)]
Add flood control database table

4 years agoAdd flood control content object type
Matthias Schmidt [Fri, 23 Oct 2020 12:49:09 +0000 (14:49 +0200)]
Add flood control content object type

4 years agoRemove CMS page meta keywords
Matthias Schmidt [Fri, 23 Oct 2020 14:23:27 +0000 (16:23 +0200)]
Remove CMS page meta keywords

4 years agoRemove meta keywords from page importer
Matthias Schmidt [Fri, 23 Oct 2020 14:15:55 +0000 (16:15 +0200)]
Remove meta keywords from page importer

4 years agoRemove metaKeywords from page PIP
Matthias Schmidt [Fri, 23 Oct 2020 14:15:14 +0000 (16:15 +0200)]
Remove metaKeywords from page PIP

4 years agoRemove meta keywords option
Matthias Schmidt [Fri, 23 Oct 2020 14:12:18 +0000 (16:12 +0200)]
Remove meta keywords option

4 years agoMerge pull request #3573 from WoltLab/session-meta
Tim Düsterhus [Fri, 23 Oct 2020 13:08:44 +0000 (15:08 +0200)]
Merge pull request #3573 from WoltLab/session-meta

Refactor Session Handling: Integration branch

4 years agoMerge branch '5.3'
Tim Düsterhus [Fri, 23 Oct 2020 12:48:58 +0000 (14:48 +0200)]
Merge branch '5.3'

4 years agoMerge branch '5.2' into 5.3
Tim Düsterhus [Fri, 23 Oct 2020 12:48:41 +0000 (14:48 +0200)]
Merge branch '5.2' into 5.3

4 years agoMerge pull request #3612 from WoltLab/csrf-token-template-backport
Tim Düsterhus [Fri, 23 Oct 2020 12:47:06 +0000 (14:47 +0200)]
Merge pull request #3612 from WoltLab/csrf-token-template-backport

Backport CsrfTokenFunctionTemplatePlugin

4 years agoMerge pull request #3626 from WoltLab/php7.0-compatibility
Tim Düsterhus [Fri, 23 Oct 2020 12:46:18 +0000 (14:46 +0200)]
Merge pull request #3626 from WoltLab/php7.0-compatibility

Remove PHP 7.0 compatibility code for Reflection

4 years agoRe-add removed template variables relating to legacy auto login in LoginForm
Tim Düsterhus [Fri, 23 Oct 2020 12:33:50 +0000 (14:33 +0200)]
Re-add removed template variables relating to legacy auto login in LoginForm

4 years agoFix formatting in session refactoring (round 2)
Tim Düsterhus [Fri, 23 Oct 2020 12:33:09 +0000 (14:33 +0200)]
Fix formatting in session refactoring (round 2)

4 years agoFix formatting in session refactoring
Tim Düsterhus [Fri, 23 Oct 2020 12:20:48 +0000 (14:20 +0200)]
Fix formatting in session refactoring

Co-authored-by: Matthias Schmidt <gravatronics@live.com>
4 years agoMerge pull request #3630 from WoltLab/database-table-util
Tim Düsterhus [Fri, 23 Oct 2020 11:47:58 +0000 (13:47 +0200)]
Merge pull request #3630 from WoltLab/database-table-util

Remove DatabaseTableUtil

4 years agoMerge pull request #3624 from WoltLab/deprecate_fileutil_downloadfilefromhttp
Tim Düsterhus [Fri, 23 Oct 2020 11:35:47 +0000 (13:35 +0200)]
Merge pull request #3624 from WoltLab/deprecate_fileutil_downloadfilefromhttp

Use Guzzle instead of FileUtil::downloadFileFromHttp

4 years agoUse Guzzle to download spider list
joshuaruesweg [Wed, 21 Oct 2020 17:22:21 +0000 (19:22 +0200)]
Use Guzzle to download spider list

4 years agoUse Guzzle to download package archives
joshuaruesweg [Wed, 21 Oct 2020 17:10:42 +0000 (19:10 +0200)]
Use Guzzle to download package archives

4 years agoUse Guzzle to test the Gravatar URL
joshuaruesweg [Wed, 21 Oct 2020 15:34:16 +0000 (17:34 +0200)]
Use Guzzle to test the Gravatar URL

4 years agoMerge branch '5.3'
Tim Düsterhus [Fri, 23 Oct 2020 10:50:42 +0000 (12:50 +0200)]
Merge branch '5.3'

4 years agoMerge branch '5.2' into 5.3
Tim Düsterhus [Fri, 23 Oct 2020 10:50:23 +0000 (12:50 +0200)]
Merge branch '5.2' into 5.3

4 years agoWhitelist `get_class` in enterprise mode
Tim Düsterhus [Fri, 23 Oct 2020 10:49:54 +0000 (12:49 +0200)]
Whitelist `get_class` in enterprise mode

4 years agoMerge pull request #3631 from WoltLab/header-cleanup
Tim Düsterhus [Fri, 23 Oct 2020 10:41:26 +0000 (12:41 +0200)]
Merge pull request #3631 from WoltLab/header-cleanup

Clean up response headers

4 years agoRemove `Expires` response header
Tim Düsterhus [Fri, 23 Oct 2020 07:43:14 +0000 (09:43 +0200)]
Remove `Expires` response header

No RFC compliant user-agent will ever take this header into account:

> If a response includes a Cache-Control field with the max-age
> directive (Section 5.2.2.8), a recipient MUST ignore the Expires
> field.

4 years agoRemove `Pragma: no-cache` response header
Tim Düsterhus [Fri, 23 Oct 2020 07:38:57 +0000 (09:38 +0200)]
Remove `Pragma: no-cache` response header

`Pragma: no-cache` is HTTP/1.0 specific. Anything accessing WoltLab Suite
should be able to at least speak HTTP/1.1. HTTP/1.0 does not even define the
`Host` header for hosting multiple sites on a single IP address!

4 years agoRemove `X-UA-Compatible` response header
Tim Düsterhus [Fri, 23 Oct 2020 07:37:06 +0000 (09:37 +0200)]
Remove `X-UA-Compatible` response header

Without support for Internet Explorer we no longer need this header.

4 years agoRemove DatabaseTableUtil
Tim Düsterhus [Fri, 23 Oct 2020 07:35:19 +0000 (09:35 +0200)]
Remove DatabaseTableUtil

The only method in there was required for a 5.2.x bugfix update. It should be
possible to safely remove this for 5.4.

4 years agoMerge pull request #3625 from WoltLab/guzzle-sink
Joshua Rüsweg [Thu, 22 Oct 2020 14:49:46 +0000 (16:49 +0200)]
Merge pull request #3625 from WoltLab/guzzle-sink

Remove the explicit passing of a Guzzle sink

4 years agoPrevent potential `null` argument to bin2hex in SessionHandler
Tim Düsterhus [Thu, 22 Oct 2020 11:52:33 +0000 (13:52 +0200)]
Prevent potential `null` argument to bin2hex in SessionHandler

4 years agoMerge branch 'master' into session-meta
Tim Düsterhus [Thu, 22 Oct 2020 09:59:41 +0000 (11:59 +0200)]
Merge branch 'master' into session-meta

For the cleaned package.xml

4 years agoRemove update files for 5.2 -> 5.3
Tim Düsterhus [Thu, 22 Oct 2020 09:52:42 +0000 (11:52 +0200)]
Remove update files for 5.2 -> 5.3

4 years agoConsistently use fully qualified function names
Tim Düsterhus [Thu, 22 Oct 2020 08:22:56 +0000 (10:22 +0200)]
Consistently use fully qualified function names

4 years agoRemove PHP 7.0 compatibility code for Reflection
Tim Düsterhus [Thu, 22 Oct 2020 08:02:16 +0000 (10:02 +0200)]
Remove PHP 7.0 compatibility code for Reflection

see #3617
see 26ead9f58b1554956e8fb46133e20a5f3fdf5d25

4 years agoRemove the explicit passing of a Guzzle sink
Tim Düsterhus [Thu, 22 Oct 2020 07:59:57 +0000 (09:59 +0200)]
Remove the explicit passing of a Guzzle sink

4 years agoMerge branch '5.3'
Alexander Ebert [Wed, 21 Oct 2020 16:20:39 +0000 (18:20 +0200)]
Merge branch '5.3'

4 years agoMerge branch '5.2' into 5.3
Alexander Ebert [Wed, 21 Oct 2020 16:20:23 +0000 (18:20 +0200)]
Merge branch '5.2' into 5.3

4 years agoMerge branch '3.1' into 5.2
Alexander Ebert [Wed, 21 Oct 2020 16:20:06 +0000 (18:20 +0200)]
Merge branch '3.1' into 5.2

4 years agoIgnore top-level node_modules/
Tim Düsterhus [Fri, 16 Oct 2020 11:57:29 +0000 (13:57 +0200)]
Ignore top-level node_modules/

4 years agoUpdating minified JavaScript files
WoltLab [Wed, 21 Oct 2020 15:07:48 +0000 (15:07 +0000)]
Updating minified JavaScript files

4 years agoMerge branch 'master' into session-meta
Tim Düsterhus [Wed, 21 Oct 2020 13:58:51 +0000 (15:58 +0200)]
Merge branch 'master' into session-meta

For the updated CodeSniffer.

4 years agoLimit branches for templates workflow
Tim Düsterhus [Wed, 21 Oct 2020 13:43:44 +0000 (15:43 +0200)]
Limit branches for templates workflow

4 years agoMerge branch '5.3' into master
Tim Düsterhus [Wed, 21 Oct 2020 13:43:21 +0000 (15:43 +0200)]
Merge branch '5.3' into master

4 years agoMerge branch '5.2' into 5.3
Tim Düsterhus [Wed, 21 Oct 2020 13:42:15 +0000 (15:42 +0200)]
Merge branch '5.2' into 5.3

4 years agoLimit workflows to release branches
Tim Düsterhus [Wed, 21 Oct 2020 13:39:04 +0000 (15:39 +0200)]
Limit workflows to release branches

Features branches will be tested using a PR.

4 years agoMerge pull request #3622 from WoltLab/workflow-style
Tim Düsterhus [Wed, 21 Oct 2020 13:37:16 +0000 (15:37 +0200)]
Merge pull request #3622 from WoltLab/workflow-style

Add codestyle workflow

4 years agoAdd codestyle workflow
Tim Düsterhus [Wed, 21 Oct 2020 13:03:35 +0000 (15:03 +0200)]
Add codestyle workflow

4 years agoAdd .phpcs.xml
Tim Düsterhus [Wed, 21 Oct 2020 13:18:26 +0000 (15:18 +0200)]
Add .phpcs.xml

4 years agoMerge pull request #3617 from WoltLab/formbuilder-php8
Tim Düsterhus [Wed, 21 Oct 2020 13:13:28 +0000 (15:13 +0200)]
Merge pull request #3617 from WoltLab/formbuilder-php8

Fix PHP 8 support in form builder

4 years agoUse stock OpeningFunctionBraceKernighanRitchie sniff
Tim Düsterhus [Wed, 21 Oct 2020 13:00:21 +0000 (15:00 +0200)]
Use stock OpeningFunctionBraceKernighanRitchie sniff

4 years agoUpdate CodeSniffer ruleset
Tim Düsterhus [Wed, 21 Oct 2020 12:50:06 +0000 (14:50 +0200)]
Update CodeSniffer ruleset

4 years agoMerge branch '5.3' into master
Tim Düsterhus [Wed, 21 Oct 2020 12:47:07 +0000 (14:47 +0200)]
Merge branch '5.3' into master

4 years agoMerge branch '5.2' into 5.3
Tim Düsterhus [Wed, 21 Oct 2020 12:46:52 +0000 (14:46 +0200)]
Merge branch '5.2' into 5.3

4 years agoTighten up the code style a bit
Tim Düsterhus [Wed, 21 Oct 2020 12:46:13 +0000 (14:46 +0200)]
Tighten up the code style a bit

4 years agoRemove `final` from `UserEditor::getPasswordHash()`
Tim Düsterhus [Wed, 21 Oct 2020 11:49:30 +0000 (13:49 +0200)]
Remove `final` from `UserEditor::getPasswordHash()`

In PHP 8:

> Private methods cannot be final as they are never overridden by other classes