GitHub/WoltLab/WCF.git
20 months agoMerge branch '5.5'
Tim Düsterhus [Tue, 17 Jan 2023 09:25:15 +0000 (10:25 +0100)]
Merge branch '5.5'

20 months agoRelease 5.5.8 dev 1 5.5.8_dev_1
Alexander Ebert [Mon, 16 Jan 2023 16:59:50 +0000 (17:59 +0100)]
Release 5.5.8 dev 1

20 months agoMerge branch '5.5'
Tim Düsterhus [Mon, 16 Jan 2023 16:24:41 +0000 (17:24 +0100)]
Merge branch '5.5'

20 months agoUpdating minified JavaScript files
WoltLab [Mon, 16 Jan 2023 16:20:19 +0000 (16:20 +0000)]
Updating minified JavaScript files

20 months agoUse `ResizeObserverEntry.contentRect` in legacy browsers
Alexander Ebert [Mon, 16 Jan 2023 16:05:50 +0000 (17:05 +0100)]
Use `ResizeObserverEntry.contentRect` in legacy browsers

Fixes #5187

20 months agoAdd `messageTableOfContents` and `quoteMetaCode` to the shared templates
Alexander Ebert [Mon, 16 Jan 2023 15:54:38 +0000 (16:54 +0100)]
Add `messageTableOfContents` and `quoteMetaCode` to the shared templates

See https://www.woltlab.com/community/thread/298400-artikelvorschau-bringt-eine-reihe-von-fehlermeldungen/
See https://www.woltlab.com/community/thread/298137-alle-anzeigen-aktualisieren-unable-to-find-template-quotemetacode/

20 months agoSuppress empty style descriptions
Alexander Ebert [Mon, 16 Jan 2023 15:36:33 +0000 (16:36 +0100)]
Suppress empty style descriptions

See https://www.woltlab.com/community/thread/298369-stil-beschreibung-fehlt-sprachvariable-wird-angezeigt/

20 months agoSuppress user activity events when articles have been disabled
Alexander Ebert [Mon, 16 Jan 2023 15:14:55 +0000 (16:14 +0100)]
Suppress user activity events when articles have been disabled

See https://www.woltlab.com/community/thread/298375-letzte-aktivit%C3%A4ten-nach-modul-deaktivierung/

20 months agoMerge branch '5.4' into 5.5
Tim Düsterhus [Mon, 16 Jan 2023 13:52:27 +0000 (14:52 +0100)]
Merge branch '5.4' into 5.5

20 months agoMerge branch '5.3' into 5.4
Tim Düsterhus [Mon, 16 Jan 2023 13:51:47 +0000 (14:51 +0100)]
Merge branch '5.3' into 5.4

20 months agoMerge pull request #5225 from WoltLab/supportexpiry-53
Tim Düsterhus [Mon, 16 Jan 2023 13:49:57 +0000 (14:49 +0100)]
Merge pull request #5225 from WoltLab/supportexpiry-53

Notify users of the expiring support (5.3)

20 months agoNotify users of the expiring support (5.3)
Tim Düsterhus [Tue, 2 Nov 2021 11:11:50 +0000 (12:11 +0100)]
Notify users of the expiring support (5.3)

see #4574

20 months agoMerge pull request #5224 from WoltLab/quoted-printable-encoder
Tim Düsterhus [Mon, 16 Jan 2023 10:40:04 +0000 (11:40 +0100)]
Merge pull request #5224 from WoltLab/quoted-printable-encoder

Generate cleaner output in EmailGrammar::encodeQuotedPrintableHeader()

20 months agoGenerate cleaner output in EmailGrammar::encodeQuotedPrintableHeader()
Tim Düsterhus [Fri, 13 Jan 2023 15:43:31 +0000 (16:43 +0100)]
Generate cleaner output in EmailGrammar::encodeQuotedPrintableHeader()

This updates the quoted-printable header encoder to not unnecessarily apply
quoted-printable encoding:

Previously if the full input would not fit into the maximum length of 70
characters, encoding would be enforced to keep things simple on the encoder
side, but resulting in overly bloated headers. This is especially visible with
the 'Subject' header of notification mails.

Now the quoted-printable encoding will only be applied if there actually are
any special characters. If the full input exceeds the maximum length without
containing special characters, it will be correctly broken at the natural space
boundaries.

Resolves #4970

20 months agoMerge branch '5.5'
Tim Düsterhus [Mon, 16 Jan 2023 10:00:48 +0000 (11:00 +0100)]
Merge branch '5.5'

20 months agoProperly take languageID into account in LanguageEditor::deleteFromXML()
Tim Düsterhus [Mon, 16 Jan 2023 09:50:32 +0000 (10:50 +0100)]
Properly take languageID into account in LanguageEditor::deleteFromXML()

see https://www.woltlab.com/community/thread/298522-sprachvariable-case-aktualisieren/

20 months agoAdd proper types to EmailGrammar
Tim Düsterhus [Fri, 13 Jan 2023 15:13:47 +0000 (16:13 +0100)]
Add proper types to EmailGrammar

20 months agoMerge branch '5.5'
Tim Düsterhus [Thu, 12 Jan 2023 13:20:38 +0000 (14:20 +0100)]
Merge branch '5.5'

20 months agoFix TypeScript code style
Tim Düsterhus [Thu, 12 Jan 2023 13:10:32 +0000 (14:10 +0100)]
Fix TypeScript code style

20 months agoDetect reused dialogIds in Form/Builder/Dialog.ts
Tim Düsterhus [Thu, 12 Jan 2023 13:11:33 +0000 (14:11 +0100)]
Detect reused dialogIds in Form/Builder/Dialog.ts

see https://www.woltlab.com/community/thread/298580-uncaught-error-form-has-not-been-requested-yet/

20 months agoUse `wheneverFirstSeen()` to initialize drop-down menus
Alexander Ebert [Thu, 12 Jan 2023 12:11:46 +0000 (13:11 +0100)]
Use `wheneverFirstSeen()` to initialize drop-down menus

20 months agoAdd the `html-parsed-element` library
Alexander Ebert [Wed, 11 Jan 2023 18:28:37 +0000 (19:28 +0100)]
Add the `html-parsed-element` library

20 months agoMerge pull request #5223 from WoltLab/ajax-allow-cache
Tim Düsterhus [Wed, 11 Jan 2023 16:23:48 +0000 (17:23 +0100)]
Merge pull request #5223 from WoltLab/ajax-allow-cache

Add `allowCaching()` option to BackendRequest

20 months agoImprove the types in the error handler
Alexander Ebert [Wed, 11 Jan 2023 15:27:21 +0000 (16:27 +0100)]
Improve the types in the error handler

20 months agoAdd the helper method `handleValidationErrors()` for `dboAction`
Alexander Ebert [Wed, 11 Jan 2023 14:55:37 +0000 (15:55 +0100)]
Add the helper method `handleValidationErrors()` for `dboAction`

20 months agoMigrate `DboAction` to use private properties
Alexander Ebert [Wed, 11 Jan 2023 14:01:27 +0000 (15:01 +0100)]
Migrate `DboAction` to use private properties

20 months agoHide `allowCaching()` from non-GET requests
Tim Düsterhus [Wed, 11 Jan 2023 15:54:05 +0000 (16:54 +0100)]
Hide `allowCaching()` from non-GET requests

20 months agoAdd `allowCaching()` option to BackendRequest
Tim Düsterhus [Wed, 11 Jan 2023 15:20:21 +0000 (16:20 +0100)]
Add `allowCaching()` option to BackendRequest

Some requests might return an intentionally cacheable response with proper
`cache-control` headers, allow AJAX requests to make use of this when desired.

20 months agoMerge branch '5.5'
Tim Düsterhus [Wed, 11 Jan 2023 14:57:15 +0000 (15:57 +0100)]
Merge branch '5.5'

20 months agoFix incorrect use of `this` references in Dom/Util
Tim Düsterhus [Wed, 11 Jan 2023 14:55:01 +0000 (15:55 +0100)]
Fix incorrect use of `this` references in Dom/Util

This breaks if single functions are imported.

20 months agoMerge branch '5.5'
Tim Düsterhus [Wed, 11 Jan 2023 13:23:20 +0000 (14:23 +0100)]
Merge branch '5.5'

20 months agoAdd `rel="nofollow"` to missed login link
Tim Düsterhus [Wed, 11 Jan 2023 13:22:30 +0000 (14:22 +0100)]
Add `rel="nofollow"` to missed login link

This was noticed while resolving the merge conflicts when merging from 5.5 to
master.

see fa0b20e855dbf01ebf3e4ac54c12a0507dcb993f

20 months agoMerge branch '5.5'
Tim Düsterhus [Wed, 11 Jan 2023 13:21:56 +0000 (14:21 +0100)]
Merge branch '5.5'

20 months agoMerge pull request #5221 from WoltLab/login-no-follow
Tim Düsterhus [Wed, 11 Jan 2023 13:16:05 +0000 (14:16 +0100)]
Merge pull request #5221 from WoltLab/login-no-follow

Mark login links as `rel="nofollow"`

20 months agoAdd proper types to PackageUpdateDispatcher
Tim Düsterhus [Wed, 11 Jan 2023 13:07:08 +0000 (14:07 +0100)]
Add proper types to PackageUpdateDispatcher

20 months agoChange `protected` to `private` in PackageUpdateDispatcher
Tim Düsterhus [Wed, 11 Jan 2023 13:03:43 +0000 (14:03 +0100)]
Change `protected` to `private` in PackageUpdateDispatcher

This class is `final` now, so `protected` is equivalent to `private`.

20 months agoRemove useless reference parameter in PackageUpdateDispatcher::savePackageUpdates()
Tim Düsterhus [Wed, 11 Jan 2023 13:02:18 +0000 (14:02 +0100)]
Remove useless reference parameter in PackageUpdateDispatcher::savePackageUpdates()

This breaks PHP’s CoW and might increase memory usage unnecessarily.

20 months agoMark PackageUpdateDispatcher as final
Tim Düsterhus [Wed, 11 Jan 2023 13:01:36 +0000 (14:01 +0100)]
Mark PackageUpdateDispatcher as final

20 months agoUse `intdiv()` in SessionHandler::getCookieTimestep()
Tim Düsterhus [Wed, 11 Jan 2023 12:41:12 +0000 (13:41 +0100)]
Use `intdiv()` in SessionHandler::getCookieTimestep()

We're performing bit fiddling on the resulting value, directly dealing with
integers is a little cleaner.

20 months agoRemove questionable `@` in login.tpl
Tim Düsterhus [Wed, 11 Jan 2023 12:37:35 +0000 (13:37 +0100)]
Remove questionable `@` in login.tpl

20 months agoMark login links as `rel="nofollow"`
Tim Düsterhus [Wed, 11 Jan 2023 12:35:03 +0000 (13:35 +0100)]
Mark login links as `rel="nofollow"`

Resolves #5218

20 months agoMerge pull request #5219 from WoltLab/search-require-q
Tim Düsterhus [Wed, 11 Jan 2023 11:31:26 +0000 (12:31 +0100)]
Merge pull request #5219 from WoltLab/search-require-q

Require a non-empty "search query"

20 months agoMerge pull request #5220 from WoltLab/install-script-name
Tim Düsterhus [Wed, 11 Jan 2023 11:27:16 +0000 (12:27 +0100)]
Merge pull request #5220 from WoltLab/install-script-name

Use standard naming scheme for install scripts

20 months agoRemove dead code in ACP’s index.tpl
Tim Düsterhus [Wed, 11 Jan 2023 11:17:19 +0000 (12:17 +0100)]
Remove dead code in ACP’s index.tpl

see a1f0967e8552fc73ce038fccf8e1bf618262a2e7

20 months agoFix PHP codestyle
Tim Düsterhus [Wed, 11 Jan 2023 11:13:33 +0000 (12:13 +0100)]
Fix PHP codestyle

20 months agoSimplify registration of WCF autoload directory
Tim Düsterhus [Wed, 11 Jan 2023 11:07:24 +0000 (12:07 +0100)]
Simplify registration of WCF autoload directory

20 months agoUse standard naming scheme for install scripts
Tim Düsterhus [Wed, 11 Jan 2023 10:37:40 +0000 (11:37 +0100)]
Use standard naming scheme for install scripts

20 months agoRequire a non-empty "search query"
Tim Düsterhus [Wed, 11 Jan 2023 10:15:53 +0000 (11:15 +0100)]
Require a non-empty "search query"

Resolves #5217

20 months agoMerge pull request #5215 from WoltLab/geocoding-store
Marcel Werk [Tue, 10 Jan 2023 15:59:10 +0000 (16:59 +0100)]
Merge pull request #5215 from WoltLab/geocoding-store

Add geocoding option to automatically store position in hidden fields

20 months agoStore coordinates in a single field and add an option for a prefix
Marcel Werk [Tue, 10 Jan 2023 15:48:06 +0000 (16:48 +0100)]
Store coordinates in a single field and add an option for a prefix

20 months agoUpdate wcf.acp.devtools.project.packageVersion.description
Tim Düsterhus [Tue, 10 Jan 2023 14:19:01 +0000 (15:19 +0100)]
Update wcf.acp.devtools.project.packageVersion.description

see 9fcc61e65add1d3490a7ec341c738d966563d7ee

20 months agoAdd option to automatically store position in hidden fields
Marcel Werk [Tue, 10 Jan 2023 12:50:05 +0000 (13:50 +0100)]
Add option to automatically store position in hidden fields

20 months agoImprove variable name in UserStorageHandler::loadStorage()
Tim Düsterhus [Tue, 10 Jan 2023 11:54:24 +0000 (12:54 +0100)]
Improve variable name in UserStorageHandler::loadStorage()

20 months agoUse `->prepare()` in UserStorageHandler
Tim Düsterhus [Tue, 10 Jan 2023 11:52:33 +0000 (12:52 +0100)]
Use `->prepare()` in UserStorageHandler

20 months agoFix types in EventHandler
Tim Düsterhus [Tue, 10 Jan 2023 11:34:15 +0000 (12:34 +0100)]
Fix types in EventHandler

20 months agoCreate initial bootstrap.php in WCFSetup
Tim Düsterhus [Tue, 10 Jan 2023 10:14:15 +0000 (11:14 +0100)]
Create initial bootstrap.php in WCFSetup

Fixes #5213

20 months agoReference WCF_DIR in WCFSetup::unzipFiles()
Tim Düsterhus [Tue, 10 Jan 2023 10:08:01 +0000 (11:08 +0100)]
Reference WCF_DIR in WCFSetup::unzipFiles()

Both values are identical, but WCF_DIR is clearer.

20 months agoPrevent icon related CSS to be implicitly overriden
Alexander Ebert [Mon, 9 Jan 2023 16:48:42 +0000 (17:48 +0100)]
Prevent icon related CSS to be implicitly overriden

These properties have a direct impact on the icon rendering any may not be changed implicitly.

Using a stylesheet inside the shadow DOM is not sufficient, because certain styles (most notably those related to fonts) can pierce the shadow DOM by spec.

20 months agoMake FontAwesome aliases known to PHP
Tim Düsterhus [Mon, 9 Jan 2023 15:41:53 +0000 (16:41 +0100)]
Make FontAwesome aliases known to PHP

20 months agoUpdate composer dependencies
Tim Düsterhus [Mon, 9 Jan 2023 12:58:00 +0000 (13:58 +0100)]
Update composer dependencies

20 months agoMerge pull request #5212 from WoltLab/fa-icon
Tim Düsterhus [Mon, 9 Jan 2023 12:31:40 +0000 (13:31 +0100)]
Merge pull request #5212 from WoltLab/fa-icon

Improve validation in FontAwesomeIcon

20 months agoMerge pull request #5211 from IceQ1337/update-spiders
Tim Düsterhus [Mon, 9 Jan 2023 11:24:07 +0000 (12:24 +0100)]
Merge pull request #5211 from IceQ1337/update-spiders

Web Spider Additions

20 months agoSplit `iconData` string into at most two components in FontAwesomeIcon
Tim Düsterhus [Mon, 9 Jan 2023 11:14:55 +0000 (12:14 +0100)]
Split `iconData` string into at most two components in FontAwesomeIcon

This catches invalids formats with additional semicolons.

20 months agoMove validation of name into `FontAwesomeIcon::__construct()`
Tim Düsterhus [Mon, 9 Jan 2023 11:13:25 +0000 (12:13 +0100)]
Move validation of name into `FontAwesomeIcon::__construct()`

20 months agoDelegate to `::fromValues()` in `FontAwesomeIcon::fromString()`
Tim Düsterhus [Mon, 9 Jan 2023 11:12:28 +0000 (12:12 +0100)]
Delegate to `::fromValues()` in `FontAwesomeIcon::fromString()`

see #5209

20 months agoRun `composer bump`
Tim Düsterhus [Fri, 6 Jan 2023 11:54:47 +0000 (12:54 +0100)]
Run `composer bump`

20 months agoUpdate composer dependencies
Tim Düsterhus [Fri, 6 Jan 2023 11:54:25 +0000 (12:54 +0100)]
Update composer dependencies

20 months agoRemove Abot from spiderList.xml
IceQ1337 [Fri, 6 Jan 2023 19:24:22 +0000 (20:24 +0100)]
Remove Abot from spiderList.xml

By default, https://github.com/sjdirect/abot (and https://github.com/sjdirect/abotx) does not use "abot" in the user-agent. Ultimately this is only defined by the user of this program. There is no (or no longer) any information about other bots going by this name.

20 months agoAdd Neevabot to spiderList.xml
IceQ1337 [Fri, 6 Jan 2023 18:48:09 +0000 (19:48 +0100)]
Add Neevabot to spiderList.xml

20 months agoAdd CensysInspect to spiderList.xml
IceQ1337 [Fri, 6 Jan 2023 18:44:23 +0000 (19:44 +0100)]
Add CensysInspect to spiderList.xml

20 months agoMerge pull request #4972 from WoltLab/map-web-component
Marcel Werk [Fri, 6 Jan 2023 15:16:18 +0000 (16:16 +0100)]
Merge pull request #4972 from WoltLab/map-web-component

Web component for google maps

20 months agoMerge pull request #5208 from WoltLab/loading-indicator
Alexander Ebert [Fri, 6 Jan 2023 11:46:07 +0000 (12:46 +0100)]
Merge pull request #5208 from WoltLab/loading-indicator

Add the `<woltlab-core-loading-indicator>` component

20 months agoUse `<woltlab-core-loading-indicator>` in `User/Menu/View`
Alexander Ebert [Thu, 5 Jan 2023 18:17:14 +0000 (19:17 +0100)]
Use `<woltlab-core-loading-indicator>` in `User/Menu/View`

20 months agoUse `<woltlab-core-loading-indicator>` in `Ajax/Status`
Alexander Ebert [Thu, 5 Jan 2023 18:10:51 +0000 (19:10 +0100)]
Use `<woltlab-core-loading-indicator>` in `Ajax/Status`

20 months agoAdd the `<woltlab-core-loading-indicator>` component
Alexander Ebert [Thu, 5 Jan 2023 18:04:08 +0000 (19:04 +0100)]
Add the `<woltlab-core-loading-indicator>` component

20 months agoMerge pull request #5204 from WoltLab/script-pip-no-delete
Tim Düsterhus [Thu, 5 Jan 2023 12:33:00 +0000 (13:33 +0100)]
Merge pull request #5204 from WoltLab/script-pip-no-delete

Remove deletion of script PIP files after execution

20 months agoRemove deletion of script PIP files after execution
Tim Düsterhus [Thu, 5 Jan 2023 10:56:55 +0000 (11:56 +0100)]
Remove deletion of script PIP files after execution

This does not bring any benefit and rather causes unexpected behavior:

- Devtools cannot be used to repeatedly execute the database PIP, without also
  executing the file PIP.
- Updates might reintroduce deleted files, especially `install_foo.php`
  scripts, inversely any newly installed package will have the update scripts
  lying around, making the state of the installation effectively undefined.

With the `fileDelete` PIP there is a reliable solution to delete files and
without the automated deletion of script PIPs the state of two installations
with identical package versions should also be identical in the best case.

20 months agoMerge pull request #5192 from WoltLab/fa-6.2.1
Tim Düsterhus [Wed, 4 Jan 2023 12:30:07 +0000 (13:30 +0100)]
Merge pull request #5192 from WoltLab/fa-6.2.1

Update to FontAwesome 6.2.1

20 months agoMerge pull request #5201 from WoltLab/favicon
Tim Düsterhus [Wed, 4 Jan 2023 11:47:02 +0000 (12:47 +0100)]
Merge pull request #5201 from WoltLab/favicon

Modernize Favicon handling

20 months agoFix favicon `sizes` in template
Tim Düsterhus [Wed, 4 Jan 2023 11:34:41 +0000 (12:34 +0100)]
Fix favicon `sizes` in template

20 months agoChange the implicit default value for an omitted title to `undefined`
Alexander Ebert [Wed, 4 Jan 2023 11:15:45 +0000 (12:15 +0100)]
Change the implicit default value for an omitted title to `undefined`

20 months agoUse 48×48 as the Favicon size
Tim Düsterhus [Wed, 4 Jan 2023 09:44:18 +0000 (10:44 +0100)]
Use 48×48 as the Favicon size

Apparently a multiple of 48×48px is the recommended size by Google.

20 months agoAdd headIncludeIcons.tpl
Tim Düsterhus [Wed, 4 Jan 2023 09:42:29 +0000 (10:42 +0100)]
Add headIncludeIcons.tpl

20 months agoRemove questionable disabling of HTML encoding for icon URLs
Tim Düsterhus [Tue, 3 Jan 2023 16:30:32 +0000 (17:30 +0100)]
Remove questionable disabling of HTML encoding for icon URLs

20 months agoSimplify URL generation for favicon
Tim Düsterhus [Tue, 3 Jan 2023 16:29:49 +0000 (17:29 +0100)]
Simplify URL generation for favicon

20 months agoAdd update_com.woltlab.wcf_6.0_favicon.php
Tim Düsterhus [Wed, 4 Jan 2023 08:54:16 +0000 (09:54 +0100)]
Add update_com.woltlab.wcf_6.0_favicon.php

20 months agoRemove chrisjean/php-ico composer dependency
Tim Düsterhus [Tue, 3 Jan 2023 16:35:05 +0000 (17:35 +0100)]
Remove chrisjean/php-ico composer dependency

see #4885

20 months agoRemove legacy `favicon.ico` when changing the favicon
Tim Düsterhus [Tue, 3 Jan 2023 16:33:40 +0000 (17:33 +0100)]
Remove legacy `favicon.ico` when changing the favicon

20 months agoRemove generation of favicon.ico
Tim Düsterhus [Tue, 3 Jan 2023 16:27:46 +0000 (17:27 +0100)]
Remove generation of favicon.ico

see #4885

20 months agoUse PNG favicon
Tim Düsterhus [Tue, 3 Jan 2023 16:27:28 +0000 (17:27 +0100)]
Use PNG favicon

see #4885

20 months agoMerge branch '5.5'
Tim Düsterhus [Wed, 4 Jan 2023 08:58:06 +0000 (09:58 +0100)]
Merge branch '5.5'

20 months agoUse `->prepare()` in `FloodControl`
Tim Düsterhus [Mon, 2 Jan 2023 11:33:30 +0000 (12:33 +0100)]
Use `->prepare()` in `FloodControl`

20 months agoAdd indeterminate variants of the confirmation presets
Alexander Ebert [Tue, 3 Jan 2023 15:01:36 +0000 (16:01 +0100)]
Add indeterminate variants of the confirmation presets

20 months agoRebuild the JS artifacts
Alexander Ebert [Tue, 3 Jan 2023 14:55:18 +0000 (15:55 +0100)]
Rebuild the JS artifacts

20 months agoMigrate from `Language.get()` to `getPhrase()`
Alexander Ebert [Tue, 3 Jan 2023 14:53:08 +0000 (15:53 +0100)]
Migrate from `Language.get()` to `getPhrase()`

20 months agoRebuild the compiled JS
Alexander Ebert [Tue, 3 Jan 2023 13:38:36 +0000 (14:38 +0100)]
Rebuild the compiled JS

20 months agoImprove the code clarity of the maps API
Alexander Ebert [Tue, 3 Jan 2023 13:38:16 +0000 (14:38 +0100)]
Improve the code clarity of the maps API

20 months agoMerge pull request #5199 from MysteryCode/cofidelsof
Alexander Ebert [Tue, 3 Jan 2023 11:52:37 +0000 (12:52 +0100)]
Merge pull request #5199 from MysteryCode/cofidelsof

fix creation of reason-field in `Confirmation.softDelete()`

20 months agofix creation of reason-field in `Confirmation.softDelete()`
mutec [Mon, 2 Jan 2023 21:03:39 +0000 (22:03 +0100)]
fix creation of reason-field in `Confirmation.softDelete()`

20 months agoMerge pull request #5198 from WoltLab/cli-root
Tim Düsterhus [Mon, 2 Jan 2023 10:56:14 +0000 (11:56 +0100)]
Merge pull request #5198 from WoltLab/cli-root

Refuse to execute `cli.php` as `root`