Tim Düsterhus [Fri, 20 May 2022 12:38:37 +0000 (14:38 +0200)]
Do not take `routeData` by reference in RequestHandler::handleDefaultController()
By returning the updated data the data flow becomes clearer.
Tim Düsterhus [Fri, 20 May 2022 12:36:06 +0000 (14:36 +0200)]
Remove dead branch in RequestHandler::redirect()
The `redirect()` method is only called in a single location where `$controller`
will also be set to a string.
Tim Düsterhus [Fri, 20 May 2022 12:35:04 +0000 (14:35 +0200)]
Mark RequestHandler as final
Tim Düsterhus [Fri, 20 May 2022 12:30:56 +0000 (14:30 +0200)]
Move local `$controller` variable into a more appropriate "scope" in RequestHandler::buildRequest()
The variable is only referenced in the `else`, move it there to make the data
flow clearer.
Tim Düsterhus [Fri, 20 May 2022 12:15:58 +0000 (14:15 +0200)]
Remove the `pageType` from `\wcf\system\request\Request`
This value is currently unused, incorrectly documented (`page` was a valid
value since the addition of CMS pages), of questionable value and will break
with the addition of PSR-15 controllers.
Tim Düsterhus [Fri, 20 May 2022 11:06:10 +0000 (13:06 +0200)]
Merge pull request #4820 from WoltLab/psr-7-pipeline
Add PSR-7 / PSR-15 Pipeline
Tim Düsterhus [Fri, 20 May 2022 10:43:28 +0000 (12:43 +0200)]
Merge pull request #4821 from WoltLab/wcfsetup-clean-all-tmps
Clean all directories that match the tmp naming pattern at the end of WCFSetup
Tim Düsterhus [Fri, 20 May 2022 09:30:12 +0000 (11:30 +0200)]
Clean all directories that match the tmp naming pattern at the end of WCFSetup
Since
e41dfd007b12baed65ab7679fb679e53bcd2adf5 the temporary directory for
WCFSetup resides in the webroot instead of some system internal temporary
directory. As such temporary files might remain in the webroot and likely will
never be cleaned if the install.php is accessed multiple times before the setup
is completed.
Fix this by deleting all directories that match the pattern for the name of the
temporary directory once the setup is completed successfully.
Tim Düsterhus [Fri, 20 May 2022 08:12:09 +0000 (10:12 +0200)]
Add `CheckForEnterpriseNonOwnerAccess` middleware
Tim Düsterhus [Fri, 20 May 2022 08:01:12 +0000 (10:01 +0200)]
Add `CheckForExpiredAppEvaluation` middleware
Tim Düsterhus [Fri, 20 May 2022 07:49:02 +0000 (09:49 +0200)]
Add `CheckForOfflineMode` middleware
Tim Düsterhus [Thu, 19 May 2022 14:35:45 +0000 (16:35 +0200)]
Add `AddAcpSecurityHeaders` middleware
Tim Düsterhus [Thu, 19 May 2022 14:33:50 +0000 (16:33 +0200)]
Make EnforceFrameOptions compatible with legacy and PSR-15 controllers
Tim Düsterhus [Thu, 19 May 2022 14:11:57 +0000 (16:11 +0200)]
Inline RequestHandler::sendPsr7Response()
Tim Düsterhus [Thu, 19 May 2022 14:11:14 +0000 (16:11 +0200)]
Add `EnforceFrameOptions` middleware
Tim Düsterhus [Thu, 19 May 2022 14:09:25 +0000 (16:09 +0200)]
Move the cache-control adjustments from RequestHandler into a middleware
Tim Düsterhus [Thu, 19 May 2022 14:06:25 +0000 (16:06 +0200)]
Send the requests through the middleware Pipeline in RequestHandler
Tim Düsterhus [Thu, 19 May 2022 14:01:42 +0000 (16:01 +0200)]
Add \wcf\http\Pipeline and \wcf\http\RequestHandlerMiddleware
Tim Düsterhus [Thu, 19 May 2022 13:15:16 +0000 (15:15 +0200)]
Support `RequestHandlerInterface`-based controllers in `wcf\system\request\Request`
Tim Düsterhus [Thu, 19 May 2022 13:13:48 +0000 (15:13 +0200)]
Implement `Psr\Http\Message\ServerRequestInterface` in `wcf\system\request\Request`
Tim Düsterhus [Thu, 19 May 2022 13:10:21 +0000 (15:10 +0200)]
Mark `\wcf\system\request\Request` as final
Tim Düsterhus [Thu, 19 May 2022 12:23:05 +0000 (14:23 +0200)]
Add `psr/http-server-middleware` composer dependency
Tim Düsterhus [Thu, 19 May 2022 12:53:17 +0000 (14:53 +0200)]
Remove obsolete check for `ResponseInterface` in RequestHandler::handle()
Tim Düsterhus [Thu, 19 May 2022 12:52:04 +0000 (14:52 +0200)]
Return LegacyPlaceholderResponse from `Request::execute()`
Tim Düsterhus [Thu, 19 May 2022 12:50:40 +0000 (14:50 +0200)]
Handle LegacyPlaceholderResponse in RequestHandler
Tim Düsterhus [Thu, 19 May 2022 12:49:33 +0000 (14:49 +0200)]
Add `\wcf\http\LegacyPlaceholderResponse`
Tim Düsterhus [Thu, 19 May 2022 12:22:39 +0000 (14:22 +0200)]
Explicitly require `psr/http-message` composer dependency
Tim Düsterhus [Thu, 19 May 2022 12:22:06 +0000 (14:22 +0200)]
Explicitly require `psr/http-server-handler` composer dependency
Tim Düsterhus [Thu, 19 May 2022 13:04:02 +0000 (15:04 +0200)]
Add missing comma to headIncludeJavaScript.tpl
see
a5c441a61209584360c5917871536500ef7a12bd
Tim Düsterhus [Thu, 19 May 2022 12:54:57 +0000 (14:54 +0200)]
Merge branch '5.5'
Tim Düsterhus [Thu, 19 May 2022 11:55:50 +0000 (13:55 +0200)]
Fix filename of the update scripts for 5.6
Tim Düsterhus [Thu, 19 May 2022 08:36:22 +0000 (10:36 +0200)]
Add `x-frame-options` response header to PSR-7 responses in RequestHandler
Tim Düsterhus [Thu, 19 May 2022 08:33:50 +0000 (10:33 +0200)]
Remove obsolete checks for `!PACKAGE_ID` / `NO_IMPORTS`
see #4818
Tim Düsterhus [Thu, 19 May 2022 07:09:45 +0000 (09:09 +0200)]
Merge pull request #4818 from WoltLab/wcfsetup-psr-7
Migrate WCFSetup to PSR-7
Alexander Ebert [Wed, 18 May 2022 16:38:36 +0000 (18:38 +0200)]
Work-around when closing a closing dialog
See https://www.woltlab.com/community/thread/295669-uidialog-cannot-read-properties-of-undefined-reading-closable/
Alexander Ebert [Wed, 18 May 2022 16:21:59 +0000 (18:21 +0200)]
Image viewer broke during orientation change
See https://www.woltlab.com/community/thread/295628-mobil-bildanzeige-skaliert-beim-drehen/
Marcel Werk [Wed, 18 May 2022 16:15:21 +0000 (18:15 +0200)]
Missing language variable
Tim Düsterhus [Wed, 18 May 2022 14:57:54 +0000 (16:57 +0200)]
Inline WCFSetup::installFiles()
`->unzipFiles()` basically consisted only of the call to `::installFiles()`,
simplify the control flow by putting those three lines of code inline to make
`->unzipFiles()` self-contained.
Tim Düsterhus [Wed, 18 May 2022 14:50:32 +0000 (16:50 +0200)]
Migrate WCFSetup to PSR-7
Tim Düsterhus [Wed, 18 May 2022 14:49:42 +0000 (16:49 +0200)]
Mark WCFSetup as final
Tim Düsterhus [Wed, 18 May 2022 15:52:03 +0000 (17:52 +0200)]
Merge pull request #4816 from WoltLab/template-engine-psr-7
Add TemplateEngine::fetchStream() to efficiently render a template as a PSR-7 StreamInterface
Marcel Werk [Wed, 18 May 2022 15:46:22 +0000 (17:46 +0200)]
Fixed code style
Alexander Ebert [Wed, 18 May 2022 15:39:43 +0000 (17:39 +0200)]
Inconsistent sort order of the mobile ACP header
See https://www.woltlab.com/community/thread/295662-mobiles-men%C3%BC-im-acp/
Tim Düsterhus [Wed, 18 May 2022 14:16:15 +0000 (16:16 +0200)]
Add TemplateEngine::fetchStream() to efficiently render a template as a PSR-7 StreamInterface
Tim Düsterhus [Wed, 18 May 2022 14:13:42 +0000 (16:13 +0200)]
Merge pull request #4815 from WoltLab/wcfsetup-relative-wcf-dir
Remove the need for SetupTemplateCompiler
Tim Düsterhus [Wed, 18 May 2022 13:22:50 +0000 (15:22 +0200)]
Restrict access to `?action=WCFSetup` after successful installation
This action only exists to complete WCFSetup. It should be guarded by a check
an unfinished installation (`!PACKAGE_ID`) to prevent accesses in live
installation.
Marcel Werk [Wed, 18 May 2022 11:30:24 +0000 (13:30 +0200)]
Improved overflow behaviour of the contentInteractionButtons buttons on mobile
Tim Düsterhus [Wed, 18 May 2022 13:11:49 +0000 (15:11 +0200)]
Move the output generation in WCFSetup::installPackages() to a more appropriate location
Tim Düsterhus [Wed, 18 May 2022 13:09:30 +0000 (15:09 +0200)]
Remove SetupTemplateCompiler
The implementation only differed from the TemplateCompiler /
TemplateScriptingCompiler by not rejecting the use of RELATIVE_WCF_DIR. As that
usage was removed in the previous commit the SetupTemplateCompiler is obsolete.
Tim Düsterhus [Wed, 18 May 2022 13:07:32 +0000 (15:07 +0200)]
Do not reference `RELATIVE_WCF_DIR` in stepInstallPackages.tpl
Tim Düsterhus [Wed, 18 May 2022 11:00:28 +0000 (13:00 +0200)]
Merge remote-tracking branch 'origin/5.5' into 5.5
Tim Düsterhus [Wed, 18 May 2022 11:00:17 +0000 (13:00 +0200)]
Merge branch '5.4' into 5.5
Tim Düsterhus [Wed, 18 May 2022 10:48:56 +0000 (12:48 +0200)]
Merge pull request #4814 from WoltLab/wcfsetup-tmp
Clean up the handling of temporary files during WCFSetup
Marcel Werk [Wed, 18 May 2022 10:45:06 +0000 (12:45 +0200)]
Improved behaviour for contentHeaderNavigation buttons
ref https://www.woltlab.com/community/thread/295238-%C3%A4nderung-der-reihenfolge-von-antworten-pagination-abonnieren-in-der-mobilen-ansi/?postID=
1894039#post1894039
Tim Düsterhus [Tue, 17 May 2022 15:23:55 +0000 (17:23 +0200)]
Always use install.php's __DIR__ as the temporary directory
The previous implementation of `BasicFileUtil::getTempFolder()` was unstable,
as it automatically detected `tmp/` directories in the document root. If
WoltLab Suite Core is installed into the document root, then the extraction of
the files will implicitly create a `tmp/` directory and thus change the temp
folder for the remaining installation.
Tim Düsterhus [Tue, 17 May 2022 15:15:09 +0000 (17:15 +0200)]
Increase the randomness in `TMP_FILE_PREFIX` in install.php
Tim Düsterhus [Wed, 18 May 2022 08:40:30 +0000 (10:40 +0200)]
Remove all extracted temporary files in WCFSetup::installPackages()
Tim Düsterhus [Wed, 18 May 2022 08:38:32 +0000 (10:38 +0200)]
Move the package archives into WCF_DIR/tmp in WCFSetup::installPackages()
This allows for a complete cleanup of the temporary directory.
Tim Düsterhus [Wed, 18 May 2022 08:33:11 +0000 (10:33 +0200)]
Remove error handling for broken archives from WCFSetup
Any errors are generally not recoverable at this point, making the error
handling useless.
Tim Düsterhus [Wed, 18 May 2022 08:10:30 +0000 (10:10 +0200)]
Simplify calculation of `$processNo` in WCFSetup::installPackages()
Similarly to the previous commit we know for sure that no process numbers are
taken yet, so we can hardcode this to 1.
Tim Düsterhus [Wed, 18 May 2022 08:08:26 +0000 (10:08 +0200)]
Remove useless check whether com.woltlab.wcf is already installed in WCFSetup::installPackages()
The database structure was just created in WCFSetup, we know for sure that the
wcf1_package table is empty.
Tim Düsterhus [Wed, 18 May 2022 08:04:56 +0000 (10:04 +0200)]
Remove unneeded decompression of packages in WCFSetup::installPackages()
As indicated in the previous commit, the fact that this decompression did not
happen for Strato implies that it is not actually necessary in practice.
Tim Düsterhus [Wed, 18 May 2022 07:59:08 +0000 (09:59 +0200)]
Remove Strato workaround from WCFSetup
This workaround exists since the very first commit and it's not clear why that
was needed back then. It likely was related to the temporary directory not
being writable or files not being deletable in some cases, but with the change
of WCFSetup's temporary directory anything less than full writing permissions
to the directory mean that WoltLab Suite won't actually run after installation
anyway, making this workaround obsolete.
Also the fact that decompression of the archive does not happen in all cases
implies that the decompression is not actually necessary at this stage, making
that the next candidate for removal.
Tim Düsterhus [Wed, 18 May 2022 09:32:06 +0000 (11:32 +0200)]
Tim Düsterhus [Wed, 18 May 2022 09:30:54 +0000 (11:30 +0200)]
Revert "Remove unneeded `window.onload` callbacks in WCFSetup JavaScript"
This change had the undesired effect that the footer did not show. Instead the
more appropriate `DOMContentLoaded` event should be used.
This reverts commit
99e56d2929be14b1f5141e6a5136ff7c7de6f39d.
Tim Düsterhus [Wed, 18 May 2022 09:17:27 +0000 (11:17 +0200)]
Merge pull request #4813 from WoltLab/wcfsetup-javascript
Simplify JavaScript handling in WCFSetup
Alexander Ebert [Wed, 18 May 2022 09:14:49 +0000 (11:14 +0200)]
Merge pull request #4812 from WoltLab/admin-panel-user-header
Simplified the admin panel‘s user header
Tim Düsterhus [Wed, 18 May 2022 09:06:57 +0000 (11:06 +0200)]
Remove unneeded `window.onload` callbacks in WCFSetup JavaScript
Tim Düsterhus [Wed, 18 May 2022 09:04:49 +0000 (11:04 +0200)]
Disable JavaScript relocation in WCFSetup
There is no benefit to this in WCFSetup, it just increases complexity.
Tim Düsterhus [Wed, 18 May 2022 09:07:42 +0000 (11:07 +0200)]
Merge branch '5.5'
Tim Düsterhus [Wed, 18 May 2022 07:28:58 +0000 (09:28 +0200)]
Fix code style in WCFACP
Apparently PSR-12 allows either brace placement, with PHP-CS-Fixer preferring
the brace on the same line and Intelephense preferring it on the next line. If
a multi-line interface definition would be used here, then the brace must be on
a dedicated line, making Intelephense slightly more right on this one.
However as WCFACP is expected to be touched seldomly, thus seldomly running the
Intelephense formatter, the pragmatic solution is to satisfy PHP-CS-Fixer.
see FriendsOfPHP/PHP-CS-Fixer#6396 for a related issue
Alexander Ebert [Tue, 17 May 2022 15:45:05 +0000 (17:45 +0200)]
Simplified the link to access the frontend
Alexander Ebert [Tue, 17 May 2022 15:43:48 +0000 (17:43 +0200)]
Remove user links expect for the logout
This is still not ideal, the header might need a slight redesign to better represent the logged-in user and the logout button.
Tim Düsterhus [Tue, 17 May 2022 14:59:10 +0000 (16:59 +0200)]
Fix typo in WCFSetup
Tim Düsterhus [Tue, 17 May 2022 14:51:47 +0000 (16:51 +0200)]
Merge pull request #4811 from WoltLab/wcfsetup-finalize
Clean up finalization of WCFSetup
Tim Düsterhus [Tue, 17 May 2022 14:27:07 +0000 (16:27 +0200)]
Remove unneeded `file_exists` check for install files
With the absolute path within the constants we know for sure that these files
must exist.
Tim Düsterhus [Tue, 17 May 2022 14:26:38 +0000 (16:26 +0200)]
Use appropriate constants to identify to-be-deleted install files
Tim Düsterhus [Tue, 17 May 2022 14:23:23 +0000 (16:23 +0200)]
Do not suppress errors during removal of setup files in WCFSetup::installPackages()
It is unsafe if these files remain. Also it is very likely that the system not
actually capable of reliably running WoltLab Suite if something as simple as
deleting a file fails.
Tim Düsterhus [Tue, 17 May 2022 14:21:59 +0000 (16:21 +0200)]
Remove `*Deleted' template variable assignment in WCFSetup::installPackages()
These are not actually referenced in the template.
Tim Düsterhus [Tue, 17 May 2022 13:42:22 +0000 (15:42 +0200)]
Merge pull request #4810 from WoltLab/gzip-file-dynamic-dispatch
Remove dynamic dispatch of common cases from GZipFile
Tim Düsterhus [Tue, 17 May 2022 13:41:00 +0000 (15:41 +0200)]
Remove the `lang` prefilter from WCFSetup's template engine
WCFSetup is not performance critical and the less logic that runs the better.
Tim Düsterhus [Tue, 17 May 2022 13:27:55 +0000 (15:27 +0200)]
Remove list of to-be-installed packages from WCFSetup
This is an incredible performance bottleneck, because it reparses all the
archives in every request.
Tim Düsterhus [Tue, 17 May 2022 13:10:31 +0000 (15:10 +0200)]
Remove GZipFile::$gzopen64
This property is no longer accessible since GZipFile is `final`.
Tim Düsterhus [Tue, 17 May 2022 13:09:12 +0000 (15:09 +0200)]
Mark GZipFile as `final`
There is no good reason to inherit from this class and the performance
optimization for the commonly used method calls might break derived classes
that rely on `->__call()` calling something else.
Tim Düsterhus [Tue, 17 May 2022 13:05:56 +0000 (15:05 +0200)]
Remove the need for dynamic dispatch for common GZipFile methods
`->read()`, `->tell()` and `->seek()` are frequently used methods when parsing
Tar archives. We know for sure that these will be mapped to the corresponding
`gz*` function. Define them statically to avoid the need for repeated
`function_exists()` checks in `__call()`.
Tim Düsterhus [Tue, 17 May 2022 12:47:31 +0000 (14:47 +0200)]
Replace calls to `ord()` in checksum calculation of Tar::readHeader() with a table lookup
This makes Tar header processing much faster, due to the reduced number of function
calls (> 3.1 million calls to `ord()` in a WCFSetup with WoltLab Suite Forum
included).
see
ec4be13babcd7e1579c08f1805412fcc9f3d65c5
Tim Düsterhus [Tue, 17 May 2022 12:33:09 +0000 (14:33 +0200)]
Reduce the number of function calls in Tar::readHeader()
Alexander Ebert [Tue, 17 May 2022 10:48:11 +0000 (12:48 +0200)]
Merge pull request #4785 from WoltLab/remove-multi-domain
Remove multi-domain support
Tim Düsterhus [Tue, 17 May 2022 09:08:10 +0000 (11:08 +0200)]
Merge branch '5.5'
Tim Düsterhus [Tue, 17 May 2022 09:07:15 +0000 (11:07 +0200)]
Merge branch '5.5'
Marcel Werk [Tue, 17 May 2022 08:59:25 +0000 (10:59 +0200)]
Unified phrases for deprecated options
Marcel Werk [Fri, 13 May 2022 11:19:15 +0000 (13:19 +0200)]
Deprecated AMP support
PR #4803 accidentally had the wrong target branch.
(cherry picked from commit
8c97dca561b32b3c02f3cb30b32574a8f83b8bd5)
Tim Düsterhus [Tue, 17 May 2022 07:26:28 +0000 (09:26 +0200)]
Fix code style
Tim Düsterhus [Tue, 17 May 2022 07:03:36 +0000 (09:03 +0200)]
Revert "Use checkstyle output for php-cs-fixer"
This change was meant to improve the output, by properly annotating the files,
but instead it makes the output absolutely useless, as it does not include line
numbers.
This reverts commit
65a9247ac9566923cf89e4055c001833622996a6.
Alexander Ebert [Mon, 16 May 2022 20:53:26 +0000 (22:53 +0200)]
Simplified checks against the domain name
Alexander Ebert [Mon, 16 May 2022 20:36:09 +0000 (22:36 +0200)]
Redesigned the rescue mode, enforce shared domain
Marcel Werk [Mon, 16 May 2022 19:47:11 +0000 (21:47 +0200)]
Added documentation of minvalue / maxvalue
Marcel Werk [Mon, 16 May 2022 14:54:01 +0000 (16:54 +0200)]
Email address was not visible in listing of group members
Tim Düsterhus [Mon, 16 May 2022 11:57:35 +0000 (13:57 +0200)]
Remove obsolete check for `->getAttributes()` method on ReflectionFunction/ReflectionMethod
Tim Düsterhus [Mon, 16 May 2022 09:46:17 +0000 (11:46 +0200)]
Deprecate the obsolete WCF::useDesktopNotifications()