Packages/TYPO3.CMS.git
3 months ago[TASK] Require symfony components with 5.3.0 or higher
Benni Mack [Mon, 14 Jun 2021 15:32:47 +0000 (17:32 +0200)]
[TASK] Require symfony components with 5.3.0 or higher

TYPO3 v11 will require symfony 5.3.0 (and hopefully
further versions once they will be released).

Used composer command:

> composer req -W "symfony/config:^5.3.0" \
"symfony/console:^5.3.0" \
"symfony/dependency-injection:^5.3.0" \
"symfony/expression-language:^5.3.0" \
"symfony/finder:^5.3.0" \
"symfony/http-foundation:^5.3.0" \
"symfony/mailer:^5.3.0" \
"symfony/mime:^5.3.0" \
"symfony/property-access:^5.3.0" \
"symfony/property-info:^5.3.0" \
"symfony/routing:^5.3.0" \
"symfony/var-dumper:^5.3.0" \
"symfony/yaml:^5.3.0"

Resolves: #94340
Releases: master
Change-Id: I3777975d144b3424910043f2445d576f885f0e41
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69490
Tested-by: core-ci <typo3@b13.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Benni Mack <benni@typo3.org>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Benni Mack <benni@typo3.org>
3 months ago[TASK] Deprecate parameter type resolving via doc blocks
Alexander Schnitzler [Tue, 15 Jan 2019 17:07:56 +0000 (18:07 +0100)]
[TASK] Deprecate parameter type resolving via doc blocks

When a ClassSchema is created for a class, all methods inside said
class are analyzed along with their parameters. Ever since extbase
existed, the parameter type has been read from the doc block.

```
/**
 * @param \Foo\Bar\Baz $baz
 */
public function injectBaz($baz);
```

Since the whole reflection api and PHP itself have been improved
in the recent past, parameter types can be detected without looking
at doc blocks. It is recommended to use native type hints as follows:

```
public function injectBaz(\Foo\Bar\Baz $baz);
```

The doc block is neiter needed nor supported in the near future.
Of course, developers may add a doc block but TYPO3 will no longer
evaluate that as of version 12.0.

Releases: master
Resolves: #94115
Change-Id: Ifc68c0cb8a42b8ab589043afbaebf5dd5763eee5
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/59450
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Benni Mack <benni@typo3.org>
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Benni Mack <benni@typo3.org>
3 months ago[DOCS] Fix PHP code example in changelog
Oliver Bartsch [Mon, 14 Jun 2021 15:53:18 +0000 (17:53 +0200)]
[DOCS] Fix PHP code example in changelog

Resolves: #94342
Releases: master, 10.4
Change-Id: Ia3d10d9b934788228ceb7c6ec0d3e1a67474b9f5
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69492
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: core-ci <typo3@b13.com>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[FEATURE] PHP 8.0 support
Christian Kuhn [Mon, 14 Jun 2021 13:09:59 +0000 (15:09 +0200)]
[FEATURE] PHP 8.0 support

After a long way of fixing our code base to have
all our tests (unit, functional, acceptance tests)
green, TYPO3 now officially runs with PHP 8.0.

TYPO3 v11 LTS thus will support PHP 7.4 and PHP 8.0
(and hopefully PHP 8.1 once the dependencies support PHP 8.1).

There might be a few PHP notices throughout TYPO3 Frontend
and Backend, but all base functionality is now available
for PHP 8.0 as well.

Resolves: #93631
Related: #94057
Releases: master
Change-Id: I5798e6f49ee637b794df096fd44b8157d96b74bc
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69489
Tested-by: Benni Mack <benni@typo3.org>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Benni Mack <benni@typo3.org>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[BUGFIX] Use correct slide direction in MultiStepWizard
Oliver Bartsch [Mon, 14 Jun 2021 11:56:43 +0000 (13:56 +0200)]
[BUGFIX] Use correct slide direction in MultiStepWizard

Bootstrap beta3 introduced a regression, which reversed
the slide direction. This therefore broke our implementation,
since we are using an event listener, evaluating the direction.

Because we were not aware of this being "just" a regression
instead of an intended API change, we switched the direction
in our event listener in #94037, too.

In the final 5.0 release, we updated to in #94089, the regression
has been fixed, breaking our event listener once again.

This is fixed by restoring the initial and correct direction check.

Related bootstrap PRs:

- https://github.com/twbs/bootstrap/pull/32913
- https://github.com/twbs/bootstrap/pull/33499

Resolves: #94338
Releases: master
Change-Id: I0bc4dc2dfd37935fc43e04f311bd850916c31004
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69486
Tested-by: Andreas Fernandez <a.fernandez@scripting-base.de>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Nikita Hovratov <nikita.h@live.de>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Andreas Fernandez <a.fernandez@scripting-base.de>
Reviewed-by: Nikita Hovratov <nikita.h@live.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[TASK] Raise typo3/testing-framework:^6.8.4
Christian Kuhn [Mon, 14 Jun 2021 11:44:19 +0000 (13:44 +0200)]
[TASK] Raise typo3/testing-framework:^6.8.4

Acceptance tests now properly configure graphics
magick, so image generation works for them. This
triggeres different and more relevant code paths.

composer req --dev typo3/testing-framework:^6.8.4
composer req --dev typo3/testing-framework:^6.8.4 -d typo3/sysext/core --no-update

Change-Id: I65dd2061c13479fb031373973860d3204dfe4bbf
Resolves: #94339
Releases: master, 10.4
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69484
Tested-by: core-ci <typo3@b13.com>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[BUGFIX] Remaining PHP 8.0 fixes for acceptance tests
Christian Kuhn [Sat, 12 Jun 2021 22:16:42 +0000 (00:16 +0200)]
[BUGFIX] Remaining PHP 8.0 fixes for acceptance tests

This fixes a bunch of PHP 8.0 warnings found by acceptance
testing. image processing and ext:scheduler are affected
for the main part.
This makes the ac test suite green with PHP 8.0. The
gitlab activation and another testing-framework raise
will follow with dedicated patches.
The patch brings an additional acceptance test for
install tool 'Environment->Image Processing' since
this worked well to nail lots of issues with
GifBuilder and friends.

Change-Id: Id22c7636da76778b75f087d20d7b7260cd2637ee
Resolves: #94333
Related: #94057
Releases: master
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69476
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Benni Mack <benni@typo3.org>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Benni Mack <benni@typo3.org>
3 months ago[TASK] Deprecate HTTP headers manipulating methods in HttpUtility
Oliver Bartsch [Fri, 11 Jun 2021 20:42:23 +0000 (22:42 +0200)]
[TASK] Deprecate HTTP headers manipulating methods in HttpUtility

Following methods in HttpUtility are deprecated, since
they call `die()` / `exit()` and furthermore directly
manipulate the HTTP header via `header()`.

- `redirect()`
- `setResponseCode()`
- `setResponseCodeAndExit()`

Resolves: #94316
Releases: master
Change-Id: Ica1970baf43c7cccb70b3564b229c882c1fe493c
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69464
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Benni Mack <benni@typo3.org>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Benni Mack <benni@typo3.org>
3 months ago[BUGFIX] Fix typing issues in various backend controllers
Benni Mack [Tue, 22 Dec 2020 15:12:34 +0000 (16:12 +0100)]
[BUGFIX] Fix typing issues in various backend controllers

This change aims to reduce all left-over strict type changes,
and backwards-incompatible changes in our own code base
making sure that TYPO3 can run smoothly with PHP 8.

Resolves: #94335
Releases: master
Change-Id: I9d1c8966a56a80bb68216ae535547e0bf55e50c9
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/67243
Tested-by: core-ci <typo3@b13.com>
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[BUGFIX] Adapt to error_reporting level with PHP 8 STFU operator
Christian Kuhn [Sat, 12 Jun 2021 20:06:26 +0000 (22:06 +0200)]
[BUGFIX] Adapt to error_reporting level with PHP 8 STFU operator

The @ error control operator suppresses all errors raised by
the expression, right? Well ...

If an error handler has been registered, and an error is
raised by an @-prepended expression, the error handler
is still called with this error.

The TYPO3 core error handler thus detects if the error comes
from an @-prepended expression to not log / throw. In PHP < 8.0,
this can be achieved by checking error_reporting() === 0. With
PHP >= 8.0, the @ error control operator has been changed
to not suppress fatal PHP errors anymore, which in turn
changed the error_reporting() level to 4437 for an error
raised "inside" an @-prepended expression.

Adapt core to deal with the PHP 8 variant, too.

See also:
https://www.php.net/manual/en/language.operators.errorcontrol.php#125938

Resolves: #94329
Related: #94057
Related: #94269
Releases: master
Change-Id: Ie926685349beae3bdc9edbb288bc674d3115a64c
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69475
Tested-by: core-ci <typo3@b13.com>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Benni Mack <benni@typo3.org>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Benni Mack <benni@typo3.org>
3 months ago[TASK] Raise typo3/testing-framework:^6.8.3
Christian Kuhn [Sun, 13 Jun 2021 01:50:19 +0000 (03:50 +0200)]
[TASK] Raise typo3/testing-framework:^6.8.3

Brings a composer conflict setting to prevent incompatible
doctrine/dbal versions, and an acceptance test related fix.

composer req --dev typo3/testing-framework:^6.8.3
composer req --dev typo3/testing-framework:^6.8.3 -d typo3/sysext/core --no-update

Resolves: #94332
Releases: master, 10.4
Change-Id: Ib1192c5135c02d485c8f28b54755c22a1a50c10f
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69481
Tested-by: core-ci <typo3@b13.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[TASK] Raise typo3/cms-styleguide:~11.3.0
Christian Kuhn [Sun, 13 Jun 2021 00:37:05 +0000 (02:37 +0200)]
[TASK] Raise typo3/cms-styleguide:~11.3.0

Brings a PHP 8.0 related fix, backend module bug fixes
and features representing more v11 related markup.

composer req --dev typo3/cms-styleguide:~11.3.0
composer req --dev typo3/cms-styleguide:~11.3.0 -d typo3/sysext/core --no-update

Change-Id: I716237ad6256db87f6b6e20081a67fa674c203d5
Resolves: #94331
Releases: master
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69479
Tested-by: core-ci <typo3@b13.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[BUGFIX] Correct ac test file namespace
Christian Kuhn [Sat, 12 Jun 2021 22:39:28 +0000 (00:39 +0200)]
[BUGFIX] Correct ac test file namespace

It's TYPO3\CMS\Core\Tests\Acceptance\Backend\Site\SiteModuleCest
not TYPO3\CMS\Core\Tests\Acceptance\Backend\Redirect\SiteModuleCest

Resolves: #94330
Releases: master, 10.4
Change-Id: I0661feec976aeeddce179d9177e36e729fc0b72d
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69477
Tested-by: core-ci <typo3@b13.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[TASK] Remove extbase Request controllerSubpackageKey
Christian Kuhn [Sat, 12 Jun 2021 13:10:18 +0000 (15:10 +0200)]
[TASK] Remove extbase Request controllerSubpackageKey

setControllerSubpackageKey(), getControllerSubpackageKey()
and property controllerSubpackageKey of extbase Request
are essentially an artifact from flow and unused in
v11 core. The information is only carried around at
one place but never actively used. This @internal
handling is dropped with the patch.

Change-Id: I546645b58cab351bac408e5772400f9cfe5d7b03
Resolves: #94326
Related: #86521
Releases: master
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69469
Tested-by: core-ci <typo3@b13.com>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Benni Mack <benni@typo3.org>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Benni Mack <benni@typo3.org>
3 months ago[TASK] Remove extbase Request isCached() and setIsCached()
Christian Kuhn [Sat, 12 Jun 2021 00:52:00 +0000 (02:52 +0200)]
[TASK] Remove extbase Request isCached() and setIsCached()

To further prepare towards a PSR-7 Request in extbase
we have to get rid of as many setters as we possibly can.

Both methods isCached() and setIsCached() were marked
@internal in v10 and related to extbase internal handling.

Internal usages have been dropped when extbase introduced
PSR-7 Responses with #92502, the methods can be dropped now.

Change-Id: I1b72cef669e4bc6bd75cac855bfb18fa47663b63
Resolves: #94319
Related: #94228
Related: #94231
Related: #94223
Related: #92502
Releases: master
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69466
Tested-by: core-ci <typo3@b13.com>
Tested-by: Benni Mack <benni@typo3.org>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de>
Reviewed-by: Benni Mack <benni@typo3.org>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
3 months ago[TASK] Avoid ObjectManager around ext:form FormDefinition
Christian Kuhn [Fri, 11 Jun 2021 14:41:06 +0000 (16:41 +0200)]
[TASK] Avoid ObjectManager around ext:form FormDefinition

One of the main classes.
symfony DI does not support having a combination of
constructor arguments plus autowired dependencies. This
needs to be resolved for systems around FormDefinition:

* FormDefinition itself looses its inject* method for
  ObjectManager. It's a class not meant to be sub classed
  by 3rd party extensions. The constructor arguments can
  be kept, FormDefinition is now instantiated using
  makeInstance().
* Domain/Model/FormElements/Page and classes extending this
  class and registering them using implementationClassName
  for a form must not rely on inject* and initializeObject
  methods since they need manual constructor arguments.
  A b/w compat layer detects this and falls back to
  ObjectManager, even though Page is marked as NOT to be
  extended by developers.
* FormRuntime looses its inject* and initializeObject
  methods and is instantiated using makeInstance() keeping
  existing constructor arguments. The class is hardcoded and
  API does not consider overwriting, so no fallback layer.
* Finishers are a bit more tricky: They are often extended
  in projects, reliable b/w compat is needed. They have one
  constructor argument and rely on injection. It's useful
  to keep the injection, so the constructor argument is
  dropped and substituted with a setter called after
  initializations. A compat layer detects not adapted
  classes and falls back to ObjectManager.

Resolves: #94317
Related: #90803
Releases: master
Change-Id: If157457a6bab568e1f8c32a6f09e60dba0b595f4
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69462
Tested-by: core-ci <typo3@b13.com>
Tested-by: Benni Mack <benni@typo3.org>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Benni Mack <benni@typo3.org>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
3 months ago[TASK] Drop two unused variables and a surplus argument
Christian Kuhn [Fri, 11 Jun 2021 22:51:51 +0000 (00:51 +0200)]
[TASK] Drop two unused variables and a surplus argument

Resolves: #94318
Releases: master
Change-Id: I89b74b105c59c9a873b57a6ff3c0a149f888ef94
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69465
Tested-by: core-ci <typo3@b13.com>
Tested-by: Benni Mack <benni@typo3.org>
Tested-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Benni Mack <benni@typo3.org>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
3 months ago[TASK] Remove unused internal methods from ExtensionManagementUtility
Oliver Bartsch [Fri, 11 Jun 2021 15:10:01 +0000 (17:10 +0200)]
[TASK] Remove unused internal methods from ExtensionManagementUtility

The internal methods `generateItemList()` and `explodeItemList()`
from `ExtensionManagementUtility` are unused since v7 and therefore
now removed.

Resolves: #94314
Releases: master
Change-Id: I6db5cf6e198f7d69ecb58c5ca8dec1e24c9c55a4
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69463
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Benni Mack <benni@typo3.org>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Benni Mack <benni@typo3.org>
3 months ago[TASK] Deprecate AbstractService
Christian Kuhn [Fri, 11 Jun 2021 12:52:39 +0000 (14:52 +0200)]
[TASK] Deprecate AbstractService

Class TYPO3\CMS\Core\Service\AbstractService as part of
an ancient 'services' API has been rendered unused in
core with #88646. To further streamline the authentication
API and related helper methods, this class is marked
deprecated now.

This shouldn't have much impact for extensions in the
wild, since the API never found many usages apart from
core authentication related concerns.

Resolves: #94313
Related: #88646
Releases: master
Change-Id: I79e303937320f28667814644964acc4aeebd091e
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69461
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Andreas Fernandez <a.fernandez@scripting-base.de>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Andreas Fernandez <a.fernandez@scripting-base.de>
3 months ago[TASK] Remove unused loginSecurityLevel options
Oliver Bartsch [Fri, 11 Jun 2021 12:04:08 +0000 (14:04 +0200)]
[TASK] Remove unused loginSecurityLevel options

Since removing the last remains of EXT:rsaauth in #94279
the `FE/loginSecurityLevel` and `BE/loginSecurityLevel`
options became obsolete and are therefore now removed.

Resolves: #94312
Related: #66997
Related: #87470
Related: #94279
Releases: master
Change-Id: I03231f4ab798165e4820d67dea2cf44e32b8c4fa
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69460
Tested-by: Markus Klein <markus.klein@typo3.org>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Andreas Fernandez <a.fernandez@scripting-base.de>
Reviewed-by: Markus Klein <markus.klein@typo3.org>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Andreas Fernandez <a.fernandez@scripting-base.de>
3 months ago[TASK] Deprecate GeneralUtility::rmFromList
Oliver Bartsch [Fri, 11 Jun 2021 09:54:11 +0000 (11:54 +0200)]
[TASK] Deprecate GeneralUtility::rmFromList

GeneralUtility::rmFromList is unused since v10. If at
all, this method would better belong to StringUtility.

Therefore, it's now deprecated in GeneralUtility, but
could be reimplemented in a more performant way in
StringUtility, when needed again.

Resolves: #94311
Releases: master
Change-Id: I2ea5ec57143d70fa2a0de2d2c34230764d3ce204
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69459
Tested-by: core-ci <typo3@b13.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Andreas Fernandez <a.fernandez@scripting-base.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Andreas Fernandez <a.fernandez@scripting-base.de>
3 months ago[TASK] Deprecate GeneralUtility::stdAuthCode
Oliver Bartsch [Fri, 11 Jun 2021 09:12:05 +0000 (11:12 +0200)]
[TASK] Deprecate GeneralUtility::stdAuthCode

GeneralUtility::stdAuthCode is unused since at least
v9. As more appropriate methods for generating hashes,
e.g. GeneralUtility::hmac() exists nowadays, the method
is deprecated.

Resolves: #94309
Releases: master
Change-Id: I3d3678cd8c8c76462cc74b28f629b6679a4aea93
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69458
Tested-by: core-ci <typo3@b13.com>
Tested-by: Andreas Fernandez <a.fernandez@scripting-base.de>
Tested-by: Torben Hansen <derhansen@gmail.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Andreas Fernandez <a.fernandez@scripting-base.de>
Reviewed-by: Torben Hansen <derhansen@gmail.com>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[BUGFIX] Fix return annotation of AbstractDomainObject->getUid()
Andreas Fernandez [Fri, 11 Jun 2021 08:45:58 +0000 (10:45 +0200)]
[BUGFIX] Fix return annotation of AbstractDomainObject->getUid()

The method `TYPO3\CMS\Extbase\DomainObject\AbstractDomainObject->getUid()`
is declared to return either an int or null, but the annotation mentions
int only, which may cause issues with static code analysis tools.

Therefore, the annotation is adjusted to reflect both return types.

Resolves: #94305
Releases: master, 10.4
Change-Id: I71e8c407085708c473754a398ae2ecf08126274c
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69457
Tested-by: core-ci <typo3@b13.com>
Tested-by: Torben Hansen <derhansen@gmail.com>
Tested-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de>
Reviewed-by: Torben Hansen <derhansen@gmail.com>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
3 months ago[BUGFIX] Replace all-embracing form in recordlist
Oliver Bartsch [Thu, 10 Jun 2021 15:51:47 +0000 (17:51 +0200)]
[BUGFIX] Replace all-embracing form in recordlist

All tables were previously wrapped by one form in
the recordlist. Since #94218 this leads to problems
because all tables now define another form for the
"Show columns" selector. Nested forms are invalid
markup. Therefore, effectively only the first table
was wrapped by the general form. The remaining
tables were not longer wrapped into a form, leading
to problems when using the clipboard actions.

This is now fixed by replacing the all-embracing
form with dedicated forms for each displayed table.

Besides fixing the mentioned problems, this change
results in further improvements:

* The forms are now dedicated to their table
* The "Show columns" selector does not longer
need to define a form itself
* When updating the "Show columns" selection
or when executing a clipboard action, the recordlist
jumps to the correct table after reload, using an
anchor tag
* The clipboard related JavaScript can be simplified
in an follow-up patch

Resolves: #94302
Related: #94218
Releases: master
Change-Id: Ib57abfe7bc9a2c9b6b3919a9ec78c25a87b8f08a
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69453
Tested-by: core-ci <typo3@b13.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Andreas Fernandez <a.fernandez@scripting-base.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Andreas Fernandez <a.fernandez@scripting-base.de>
3 months ago[TASK] Cleanup namespace definitions in EXT:impexp templates
Oliver Bartsch [Thu, 10 Jun 2021 19:37:00 +0000 (21:37 +0200)]
[TASK] Cleanup namespace definitions in EXT:impexp templates

This removes an invalid attribute from EXT:impexp
default layout and furthermore removes unnecessary
fluid namespace declarations, since they are defined
globally.

Resolves: #94306
Releases: master
Change-Id: I0ec7181ccc5fb08708257499c969c1d27e783338
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69456
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
3 months ago[TASK] Avoid ObjectManager for ext:form ProcessingRule
Christian Kuhn [Thu, 10 Jun 2021 18:31:36 +0000 (20:31 +0200)]
[TASK] Avoid ObjectManager for ext:form ProcessingRule

Inject a singleton service, makeInstance() prototypes.

Resolves: #94304
Related: #90803
Releases: master
Change-Id: I0645c06a5f5ae2b10f5e14aee08ed01f16720bac
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69455
Tested-by: core-ci <typo3@b13.com>
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[TASK] Avoid ObjectManager in ext:form TranslationService
Christian Kuhn [Thu, 10 Jun 2021 16:17:53 +0000 (18:17 +0200)]
[TASK] Avoid ObjectManager in ext:form TranslationService

Extbase ConfigurationManager is already configured to
be injectable. Use this in TranslationService.

Resolves: #94303
Related: #90803
Releases: master
Change-Id: I6fa2a2e05a2c7b348b411142e8a44c2dad20c3f7
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69454
Tested-by: core-ci <typo3@b13.com>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[BUGFIX] Do not render clipboard actions for page translations
Oliver Bartsch [Thu, 10 Jun 2021 11:08:35 +0000 (13:08 +0200)]
[BUGFIX] Do not render clipboard actions for page translations

Recordlist features the clipboard functionality. When activated,
multiple clipboard actions, such as "copy" or "edit marked", are
displayed in each tables' header.

Since translated records can never be selected, this led to
exceptions and JavaScript errors when using such action
on the "Page Translations" table.

This is now fixed by not rendering those actions for this
special table.

Resolves: #94296
Releases: master, 10.4
Change-Id: I47459cf1d82d90f634a4f8902ea04c958cbd1bdc
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69427
Tested-by: core-ci <typo3@b13.com>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
3 months ago[TASK] Remove possibility to use ext:rsaauth
Torben Hansen [Fri, 4 Jun 2021 12:54:48 +0000 (14:54 +0200)]
[TASK] Remove possibility to use ext:rsaauth

Usage of FriendsOfTYPO3/rsaauth is pretty low and there
is no reason to support the extension any more in TYPO3 11.

This patch removes all ext:rsaauth related code.

Resolves: #94279
Releases: master
Change-Id: I8e318bcc3c04fcc66a033507d0dddb931529c17d
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69397
Tested-by: Andreas Fernandez <a.fernandez@scripting-base.de>
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Andreas Fernandez <a.fernandez@scripting-base.de>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[BUGFIX] Restore clipboard initialization behaviour in recordlist
Oliver Bartsch [Thu, 10 Jun 2021 15:02:50 +0000 (17:02 +0200)]
[BUGFIX] Restore clipboard initialization behaviour in recordlist

This fixes a regression introduced in #94057,
which effectively removed the possibility to
toggle the clipboard in the recordlist.

Resolves: #94301
Related: #94057
Releases: master
Change-Id: I6d6ffe9a33bd96f8a41c3f23f3367cf750d29472
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69452
Tested-by: core-ci <typo3@b13.com>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[TASK] Add link to "Show all versions" view for installed extensions
Oliver Bartsch [Thu, 10 Jun 2021 12:20:08 +0000 (14:20 +0200)]
[TASK] Add link to "Show all versions" view for installed extensions

Besides all available versions of a TER extension,
the "Show all versions" view in EXT:extensionmanager
also displays general information such as the category
or the dependencies, making it more or less an extension
detail view.

Since those information are also relevant for already
installed extensions, it's now possible to access this
view in the "Installed extensions" list, using a new
link on the extensions' version string.

Resolves: #94298
Releases: master
Change-Id: Iab131e5494f143315abd607de1a79f5f0571a2dc
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69429
Tested-by: core-ci <typo3@b13.com>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[TASK] Avoid ObjectManager->get() for ext:form FormPersistenceManagerInterface
Christian Kuhn [Thu, 10 Jun 2021 13:28:42 +0000 (15:28 +0200)]
[TASK] Avoid ObjectManager->get() for ext:form FormPersistenceManagerInterface

Register an implementation and adapt consumers.

Resolves: #94300
Related: #90803
Releases: master
Change-Id: I43117cf3094e0784d05c97d7f28f3365d12bd1f9
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69431
Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[TASK] Remove forgotten upgrade wizard in ext:form
Christian Kuhn [Thu, 10 Jun 2021 12:48:44 +0000 (14:48 +0200)]
[TASK] Remove forgotten upgrade wizard in ext:form

An install tool upgrade wizard slated for removal has been
forgotten during v11.0 cleanup: FormFileExtensionUpdate has
been added for upgrade to v9 (and even backported to v8),
has then been kept for update to v10 and can be removed now.

Resolves: #94299
Releases: master
Change-Id: I882e7ef3926895bcc1e455bc2c0cda287c822680
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69430
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[TASK] Avoid ObjectManager->get() for ext:form TypoScriptService
Christian Kuhn [Thu, 10 Jun 2021 11:09:47 +0000 (13:09 +0200)]
[TASK] Avoid ObjectManager->get() for ext:form TypoScriptService

Make ext:form TypoScriptService injectable and adapt
consumers. Fixes a broken $this->objectManager call
from #94093 in ConfigurationManager.

Resolves: #94297
Related: #90803
Related: #94093
Releases: master
Change-Id: Ideaa5b0828d3148ba9cbd7287ab50ed51079ce21
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69428
Tested-by: core-ci <typo3@b13.com>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
3 months ago[BUGFIX] Remove an obsolete Services.yaml definition
Christian Kuhn [Thu, 10 Jun 2021 10:35:45 +0000 (12:35 +0200)]
[BUGFIX] Remove an obsolete Services.yaml definition

The namespace of core TypoScriptService is
TYPO3\CMS\Core\TypoScript, not TYPO3\CMS\Core\Service.

The entry is thus obsolete and can be dropped. The
service with correct name is already handled by ext:core
ServiceProvider.php.

Change-Id: Ia4a3ef02dd3490547a9379ad57930afdd974a2de
Resolves: #94295
Related: #94093
Releases: master
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69426
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Georg Ringer <georg.ringer@gmail.com>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Georg Ringer <georg.ringer@gmail.com>
3 months ago[BUGFIX] Always return unique field list
Oliver Bartsch [Wed, 9 Jun 2021 22:34:59 +0000 (00:34 +0200)]
[BUGFIX] Always return unique field list

The method DatabaseRecordList::makeFieldList()
creates a list of fields to select for a table. Since
selector.

This method however automatically adds some
management fields, such as `crdate`. As those
fields may also be included in TCA `columns`,
e.g. for sys_redirects since #94143, they may
be added multiple times, which leads to different
errors.

This is now fixed by applying array_unique to the
final field list.

Resolves: #94294
Releases: master
Change-Id: I6e5cefaa4fb5d5a3dff9581105d19618143c1e79
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69424
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Daniel Goerz <daniel.goerz@posteo.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Daniel Goerz <daniel.goerz@posteo.de>
3 months ago[BUGFIX] Keep preview info on forwarding in EditDocumentController
Oliver Bartsch [Tue, 8 Jun 2021 13:18:35 +0000 (15:18 +0200)]
[BUGFIX] Keep preview info on forwarding in EditDocumentController

The "View" respectively "Save & View" functionality of
EditDocumentController is as following:

1. Clicking the corresponding button saves the form and
a JavaScript event handler opens a new blank window

2. After the data was persisted, the form reloads and
the preview code (using the ImmediateAction component)
is written to the module body. This update the previously
opened window with the correct preview URL.

However, since #94114, a redirect is performed as soon
as the data has been persisted. This is done to ensure
persisting is only done for POST requests. Since the
information whether the form was stored using the "View"
respectively "Save & View" is not forwarded in the redirect,
the new window remains blank.

This is now fixed by adding the corresponding information
to the redirect URL. Also a now unnecessary code block in
processRequest() is removed.

Resolves: #94287
Releases: master
Change-Id: I4f9be3fb286a6cdfe6e1d3e071eb0c6df0801f5e
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69415
Tested-by: core-ci <typo3@b13.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Richard Haeser <richard@richardhaeser.com>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Richard Haeser <richard@richardhaeser.com>
3 months ago[BUGFIX] Fix still more undefined variables
Larry Garfield [Thu, 3 Jun 2021 21:16:47 +0000 (16:16 -0500)]
[BUGFIX] Fix still more undefined variables

Manual testing found a bunch more cases of undefined variables that
need to be addressed.

Resolves: #94057
Releases: master
Change-Id: I0f602d2de5fcfdc8b41545eafacc5ff79bbfdf86
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69393
Tested-by: Markus Klein <markus.klein@typo3.org>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Richard Haeser <richard@richardhaeser.com>
Reviewed-by: Markus Klein <markus.klein@typo3.org>
Reviewed-by: Richard Haeser <richard@richardhaeser.com>
3 months ago[TASK] Remove "sha1" from sys_file searchFields
Guido Schmechel [Fri, 4 Jun 2021 19:03:37 +0000 (21:03 +0200)]
[TASK] Remove "sha1" from sys_file searchFields

To avoid confusion for the editor, the "sha1" field
is now removed from the searchFields of sys_file.

Those who wish to continue searching this field can
adapt the corresponding TCA via TCA overrides.

Resolves: #94273
Releases: master, 10.4
Change-Id: I8b2676c868e97e67b5fa453fa53658fcadae9ce8
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69399
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[TASK] Sort extension list by update state
Oliver Bartsch [Fri, 4 Jun 2021 20:02:00 +0000 (22:02 +0200)]
[TASK] Sort extension list by update state

Extension updates are important, since they may
contain security fixes. Therefore, in non-composer
based installations, the extension listing in the
EXT:extensionmanager "Installed extensions" view
is now always sorted by the extensions' update state,
as soon as one extension can be updated.

For composer based projects, the behaviour does not
change, since updating extensions is usually done
via CLI and chaning the sorting can still be done
manually in the module.

Resolves: #70157
Releases: master
Change-Id: I25a28f3b1483ed736872e90e46939f30bca47f7f
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69400
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
3 months ago[BUGFIX] Check if shortcuts' target table still exists
Oliver Bartsch [Tue, 8 Jun 2021 23:08:17 +0000 (01:08 +0200)]
[BUGFIX] Check if shortcuts' target table still exists

The shortcut links in the toolbar contain an icon,
which gets calculated based on the backend module
and the record type, the shortcut was created for.

Since IconFactory->getIconForRecord() is used to
fetch the correct record type icon, the database
row has to be provided. This was previously done
by simply querying the table with an uid constraint.
In case the table, the shortcut was initially created
for, does not longer exist, e.g. since a third-party
extension was removed, this led to an exception.

The database row is therefore now fetched using
BackendUtility::getRecordWSOL(), which checks
if the table is (still) configured in TCA, since this is
anyways a prerequisite for using getIconForRecord()
and for working with shortcuts - Especially when
`record_edit` is the target module.

As a positive side effect of this change, a possible
workspace version is now also taken into account,
when generating the record icon.

Resolves: #94286
Releases: master, 10.4
Change-Id: I1d6e1327f10ad06863ef7f5bb1e3706a3f10bcfe
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69416
Tested-by: core-ci <typo3@b13.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
3 months ago[TASK] Document behaviour of inline parent info in itemsProcFunc
Oliver Bartsch [Wed, 9 Jun 2021 16:13:27 +0000 (18:13 +0200)]
[TASK] Document behaviour of inline parent info in itemsProcFunc

Since #93508 additional information about the
inline parent are available in the $parameters
array of an itemsProcFunc.

Those information are only available in FormEngine
context and not in the DataHandler. This is now
properly documented in the corresponding class.

Resolves: #94290
Related: #93508
Releases: master, 10.4
Change-Id: Id20390b113f1cd9261a2b33413031233524f6623
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69417
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
3 months ago[BUGFIX] Add uid field to fieldDefinitions in EXT:seo
Oliver Bartsch [Wed, 9 Jun 2021 16:52:26 +0000 (18:52 +0200)]
[BUGFIX] Add uid field to fieldDefinitions in EXT:seo

EXT:seo defines two additional types for "Page Overview"
in the info module.

Since the special uid field, which has a special treatment
in PageInformationController, was previously missing, no
view and no edit options were displayed.

Besides the already existing special treatments, in master,
the field is also used to determine the row tag to be used
(either `<th>`or `<td>`). Therefore, the two EXT:seo types
previously always used `<th>`, which leads to all cells were
bold (in at least the chrome browser, due to user agent styles).

This is now fixed by adding the special uid field to the
mod.web_info.fieldDefinitions declaration in EXT:seo.

Resolves: #94291
Releases: master, 10.4
Change-Id: I5c20528008160a2c5d853b6d70cc84e3cf3ad89a
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69418
Tested-by: core-ci <typo3@b13.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
3 months ago[TASK] Log symfony deprecation messages
Benjamin Franzke [Wed, 2 Jun 2021 09:37:56 +0000 (11:37 +0200)]
[TASK] Log symfony deprecation messages

Symfony deprecation messages are prefixed by an @-sign in order to
only be thrown if an explicit error handler for E_USER_DEPRECATED
is registered.

Other than for regular silenced errors, we want these deprecation
messages to be logged in any case, and therefore ignore
the @-sign for E_USER_DEPRECATED errors now.

Releases: master
Resolves: #94269
Change-Id: I2d1fb443ef0bf5d01361f1980ab74b94a116fb1d
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69366
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
3 months ago[BUGFIX] Prevent Uncaught TypeError in Recordlist JavaScript
Oliver Bartsch [Wed, 9 Jun 2021 19:42:34 +0000 (21:42 +0200)]
[BUGFIX] Prevent Uncaught TypeError in Recordlist JavaScript

Since translated records do not contain a checkbox
for the clipboard functionality, we have to check the
element before accessing the "checked" property.

Note: There is still a problem in master, which will
be tackled in a separate patch.

Resolves: #94293
Releases: master, 10.4
Change-Id: I795b99f7112e8ae5d8eef79b6161b19b5bb77e0e
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69420
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
3 months ago[FEATURE] Show Layouts in Info Module
Simon Gilli [Mon, 18 Nov 2019 10:55:28 +0000 (11:55 +0100)]
[FEATURE] Show Layouts in Info Module

This patch introduces a new type for the Pagetree overview
in the info module. It displays the relevant layout fields,
e.g. backend layout and frontent layout, next to an additional
field which contains the actually used backend layout, inherited
from a parent page.

This follows #94210, which already introduced a field information
for the pages.backend_layout field.

This effectively allows an editor to have a detailed overview of
the configured and - more importantly - actually used backend
layouts for a page or even a complete page tree.

Resolves: #89700
Releases: master
Change-Id: I4851cd8133d4dbac9ccc1e0d04b534077729c6cb
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/62338
Tested-by: core-ci <typo3@b13.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Richard Haeser <richard@richardhaeser.com>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Richard Haeser <richard@richardhaeser.com>
3 months ago[TASK] Avoid ObjectManager in ext:fluid RenderingContext
Christian Kuhn [Tue, 8 Jun 2021 10:00:00 +0000 (12:00 +0200)]
[TASK] Avoid ObjectManager in ext:fluid RenderingContext

RenderingContext is a good case for a class that creates
"arbitrary" objects: The PreProcessor class names are
retrieved from global configuration in order to be
instantiated.

This initialization is moved into a (install tool mode
compatible) factory in order to transform ObjectManager
into a fallback layer for PreProcessors that are
not defined in the newer PSR container.
Therefore $container->has() is used prior to $container->get(),
in order to fallback to ObjectManager for objects that can't be
retrieved – due to missing configuration – via ContainerInterface yet.

Resolves: #94285
Related: #90803
Releases: master
Change-Id: I3fd1751b8580de7c8307e9b84da38e1551c2c622
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69412
Tested-by: core-ci <typo3@b13.com>
Tested-by: Benjamin Franzke <bfr@qbus.de>
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Benjamin Franzke <bfr@qbus.de>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[TASK] Avoid assigning unexpected node types in GeneratorClassesResolver
Oliver Hader [Mon, 7 Jun 2021 08:08:56 +0000 (10:08 +0200)]
[TASK] Avoid assigning unexpected node types in GeneratorClassesResolver

`GeneratorClassesResolver` used for the extension scanner preprocesses
`GeneralUtility::makeInstance` calls, transforms class-string values to
their corresponding class-constants and provides a low-level class
instantiation using `new`.

When modifying PHP parser nodes, only expected types shall be used,
which is `ClassConstFetch` instead of `FullyQualified`.

Resolves: #94283
Releases: master
Change-Id: I3a802212dc067c5ced0e03aa2cce6519d5ed1dbd
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69403
Tested-by: core-ci <typo3@b13.com>
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[BUGFIX] Fix typed property access in ModuleTemplate
Oliver Bartsch [Fri, 4 Jun 2021 09:31:31 +0000 (11:31 +0200)]
[BUGFIX] Fix typed property access in ModuleTemplate

When dumping the ModuleTemplate with DebuggerUtility
a property access exception is thrown, since the
FlashMessageQueue is neither initialized nor declared
as nullable.

This is fixed by initializing the FlashMessageQueue
in the constructor now. This instance can however
still be overwritten by the corresponding setter method.

Resolves: #94276
Releases: master
Change-Id: I64bd52e05cd41112a4edb7cc9629db52a093764b
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69395
Tested-by: core-ci <typo3@b13.com>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[FEATURE] Simplify sharing of backend urls
Oliver Bartsch [Mon, 31 May 2021 15:57:43 +0000 (17:57 +0200)]
[FEATURE] Simplify sharing of backend urls

Atfer a lot of preperation in #93048 and #93988,
it's finally possible to share URLs to TYPO3 backend
modules. Even special modules such as FormEngine.

To ease the use for editors, the ShortcutButton
is extended for a new option. If enabled, which
is the default behaviour, the shortcut button
in the module header is replaced. The new button
allows to open a dropdown with the additional
possibility to copy the URL of the current
page to the operating systems' clipboard. Next
to the already exisiting "Add shortcut" option.

Since those URLs should not contain the user
specific token, the UriBuilder features a new
constant "SHAREABLE_URL". If set as $referenceType
in one of the supporting methods, e.g. buildUriFromRoute(),
an absoulte URL without the token is returned.

To copy the URL to the operating systems' clipboard,
a new web component "CopyToClipboard" is introduced.
This component is added without any dependency to
the URL sharing functionality and can therefore be
freely used for other backend components as well.

For the new button, the font awesome "share-alt"
icon is registered in the IconRegistry.

Resolves: #93921
Releases: master
Change-Id: Id1dcfe1f2af764fbe000659ddb49a7369322d5b6
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69338
Tested-by: core-ci <typo3@b13.com>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Benni Mack <benni@typo3.org>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Benni Mack <benni@typo3.org>
3 months ago[FEATURE] Add getModuleTemplate to PageLayoutController
Oliver Bartsch [Fri, 4 Jun 2021 11:36:56 +0000 (13:36 +0200)]
[FEATURE] Add getModuleTemplate to PageLayoutController

This allows to access the ModuleTemplate instance
in PageLayoutController related hooks and therefore
enables extension authors to be more flexible when
manipulating the page module view.

Resolves: #92358
Releases: master
Change-Id: I6f3d370d0c8d730dfcdf631d8516a8691360167b
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69396
Tested-by: core-ci <typo3@b13.com>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Daniel Goerz <daniel.goerz@posteo.de>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Daniel Goerz <daniel.goerz@posteo.de>
3 months ago[DOCS] Add note about TSconfig behaviour in EXT:linkvalidator
Oliver Bartsch [Mon, 7 Jun 2021 13:29:57 +0000 (15:29 +0200)]
[DOCS] Add note about TSconfig behaviour in EXT:linkvalidator

The EXT:linkvalidator documentation is extended to
include a note about the behaviour and usage of page
TSconfig when recursively checking for broken links.

Resolves: #84887
Releases: master, 10.4, 9.5
Change-Id: I183bc3fdf734db1a871a509fafd6b82d75ea16aa
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69407
Tested-by: core-ci <typo3@b13.com>
Tested-by: Sybille Peters <sypets@gmx.de>
Tested-by: Richard Haeser <richard@richardhaeser.com>
Reviewed-by: Sybille Peters <sypets@gmx.de>
Reviewed-by: Richard Haeser <richard@richardhaeser.com>
3 months ago[BUGFIX] Make translation mode buttons translatable
Oliver Bartsch [Mon, 7 Jun 2021 08:57:32 +0000 (10:57 +0200)]
[BUGFIX] Make translation mode buttons translatable

The translation mode buttons in the localization
wizard are now translatable as the rest of the
wizard.

Resolves: #94277
Releases: master, 10.4
Change-Id: Ie2bbaebbcf5c701a8e3446a3406dece565c2013b
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69405
Reviewed-by: Daniel Goerz <daniel.goerz@posteo.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Oliver Bartsch <bo@cedev.de>
3 months ago[BUGFIX] Respect multibyte characters in indexed_search search words
Andreas Fernandez [Fri, 14 May 2021 14:22:31 +0000 (16:22 +0200)]
[BUGFIX] Respect multibyte characters in indexed_search search words

Resolves: #94130
Releases: master, 10.4
Change-Id: I4a0ebef62b3bf80c10b4552ced2d94a584b600b5
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69151
Tested-by: core-ci <typo3@b13.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Georg Ringer <georg.ringer@gmail.com>
Reviewed-by: Guido Schmechel <guido.schmechel@brandung.de>
Reviewed-by: Mathias Brodala <mbrodala@pagemachine.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Georg Ringer <georg.ringer@gmail.com>
3 months ago[TASK] Deprecate Application->run callback
Benni Mack [Tue, 25 May 2021 10:16:00 +0000 (12:16 +0200)]
[TASK] Deprecate Application->run callback

The run() method for all Applications contained
a callback which was added in TYPO3 v7, before
proper solutions for subrequests and a more
streamlined boot process, was in place.

The additional code can now be handled via
PSR-15 middlewares. Therefore, the callback
argument in Application->run() is now marked
as deprecated.

Resolves: #94272
Releases: master
Change-Id: I9fe00e7b3663553dadc1b48b89c3083537206c5e
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69258
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Benjamin Franzke <bfr@qbus.de>
Tested-by: core-ci <typo3@b13.com>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Benjamin Franzke <bfr@qbus.de>
3 months ago[TASK] Deprecate GeneralUtility::compileSelectedGetVarsFromArray
Oliver Bartsch [Tue, 1 Jun 2021 22:01:24 +0000 (00:01 +0200)]
[TASK] Deprecate GeneralUtility::compileSelectedGetVarsFromArray

To reduce usages of GeneralUtility::_GP(),
GeneralUtility::compileSelectedGetVarsFromArray()
is deprecated. Its only usage in the core is
adjusted by accessing the PSR-7 Request
instead.

Side note: Actually also the method name is
misleading. Since _GP() is used internally,
also POST data are checked.

Resolves: #94252
Releases: master
Change-Id: Ia3d569dbc9bdb21770e6d5981752f40b2fe59d0c
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69362
Tested-by: core-ci <typo3@b13.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Richard Haeser <richard@richardhaeser.com>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Richard Haeser <richard@richardhaeser.com>
3 months ago[TASK] Remove outdated comments in ShortcutButtonViewHelper
Oliver Bartsch [Wed, 2 Jun 2021 08:37:06 +0000 (10:37 +0200)]
[TASK] Remove outdated comments in ShortcutButtonViewHelper

While reworking the Shortcut API in #93093, some
arguments in the ShortcutButtonViewHelper have
been deprecated.

However, in #94209 the whole view helper has been
deprecated, which makes the mentioned comments
obsolete. Therefore, and because they might just
confuse developers on upgrading, they are removed.

Resolves: #94268
Releases: master
Change-Id: I5da2dd4193c016e12bcda06f63abcd5b11b53d0a
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69365
Tested-by: core-ci <typo3@b13.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Daniel Goerz <daniel.goerz@posteo.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Daniel Goerz <daniel.goerz@posteo.de>
3 months ago[DOCS] Add Settings.cfg to lowlevel extension
Sybille Peters [Sun, 30 May 2021 19:10:20 +0000 (21:10 +0200)]
[DOCS] Add Settings.cfg to lowlevel extension

Documentation can be generated from the existing README.rst.
A Settings.cfg is necessary so that the title is set.

Online rendering of EXT:lowlevel documentation is now possible.

Resolves: #94238
Releases: master, 10.4
Change-Id: I1f20e7c95b6fa337805b14677640d23262709d34
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69330
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Daniel Goerz <daniel.goerz@posteo.de>
Tested-by: Lina Wolf <112@linawolf.de>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Daniel Goerz <daniel.goerz@posteo.de>
Reviewed-by: Lina Wolf <112@linawolf.de>
3 months ago[TASK] Enable TypesAssignedToPropertiesRule in phpstan
Daniel Goerz [Sun, 30 May 2021 09:43:07 +0000 (11:43 +0200)]
[TASK] Enable TypesAssignedToPropertiesRule in phpstan

composer req friendsoftypo3/phpstan-typo3 ^0.8.1 --dev

This patch is the next step towards full level 3
compatibility of the TYPO3 core.

Releases: master
Resolves: #94127
Change-Id: I5092ce3a9248a7e5ecba3f42183765c1b1d5b1cc
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69327
Tested-by: core-ci <typo3@b13.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Daniel Goerz <daniel.goerz@posteo.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Daniel Goerz <daniel.goerz@posteo.de>
3 months ago[BUGFIX] Re-allow pages with a trailing slash
Benni Mack [Mon, 10 May 2021 11:03:07 +0000 (13:03 +0200)]
[BUGFIX] Re-allow pages with a trailing slash

This change enables the usage of pages containing a
trailing slash in their "slug" like "/my-page/subpage/"
to be working, and modifies tests to cover this use-case.

The main routing first fetches all records including the trailing slash
(= also fetches pages with a trailing slash in their slug).

The symfony routing then checks for e.g. "/my-page/" at the very end, but will fail
if the page was named "/my-page", and then re-runs the symfony routing
to find the "/my-page" request (same behavior as before).

This change therefore solves two issues:
1. Pages with a slug with a trailing slash are properly resolved
2. Pages with a slug with trailing slash can be also called via "/my-page" and (new)
  pages without a trailing slash can be called WITH the trailing slash (as before)
  keeping maximum backwards-compatibility with RealURL logic.

Resolves: #89091
Releases: master, 10.4
Change-Id: I5b82389f9769284d09d98b9335e11ed60c701896
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/64655
Tested-by: core-ci <typo3@b13.com>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
3 months ago[BUGFIX] No greedy Symfony DI in ext:install
Christian Kuhn [Tue, 1 Jun 2021 17:31:13 +0000 (19:31 +0200)]
[BUGFIX] No greedy Symfony DI in ext:install

We recently added a Services.yaml to ext:install.
This isn't an incredible great idea since the
install tool is designed to work with uncached DI
via ServiceProviders in general.

The config made Symfony scan all classes, but
we need Symfony DI for the backend adapter class only.
The patch reduces Symfony DI registration down to this class.

Resolves: #94250
Related: #94209
Releases: master
Change-Id: I5345e369a1080ddcab5da27ec1ef1c75e48f72d5
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69361
Tested-by: Benjamin Franzke <bfr@qbus.de>
Tested-by: crell <larry@garfieldtech.com>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Daniel Goerz <daniel.goerz@posteo.de>
Reviewed-by: Benjamin Franzke <bfr@qbus.de>
Reviewed-by: crell <larry@garfieldtech.com>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Daniel Goerz <daniel.goerz@posteo.de>
3 months ago[BUGFIX] Remove duplicated caret and re-add padding
Jochen Roth [Wed, 26 May 2021 11:22:55 +0000 (13:22 +0200)]
[BUGFIX] Remove duplicated caret and re-add padding

* Removes duplicated dropdown caret and use bootstraps
  css caret (gridelement inside/after and finisher)
* Fix preview mode dropdown in workspaces

Resolves: #94198
Releases: master
Change-Id: I7785f3ce21a6ee9773ebcd192b7a6abaded57273
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69266
Tested-by: core-ci <typo3@b13.com>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[BUGFIX] Let site configuration recognize configured languages
André Buchmann [Tue, 1 Jun 2021 14:00:57 +0000 (16:00 +0200)]
[BUGFIX] Let site configuration recognize configured languages

Set inlineTopMostParentUid fallback to "null" as "0" is a valid
sys_language. "0" gives false positives in the check which languages
are already defined.

Resolves: #94248
Related: #94057
Releases: master
Change-Id: I7975c0fa91940c502faec25cdbe0b30426300ee5
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69355
Tested-by: core-ci <typo3@b13.com>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Daniel Goerz <daniel.goerz@posteo.de>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Daniel Goerz <daniel.goerz@posteo.de>
3 months ago[TASK] Remove a library dependent view helper test
Christian Kuhn [Tue, 1 Jun 2021 15:49:27 +0000 (17:49 +0200)]
[TASK] Remove a library dependent view helper test

The removed unit test mocks the system under test
and checks for specific method calls. The test
relies on AbstractTagBasedViewHelper from
TYPO3Fluid\Fluid which added a feature in 2.7.0.
This fails in core v9 and v10 which allow 2.6
and 2.7. This whitebox test is kinda useless
anyway, so we drop it.

Resolves: #94249
Releases: master, 10.4, 9.5
Change-Id: I70804f2881a84352ca793e7d523531a583a44b34
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69358
Tested-by: core-ci <typo3@b13.com>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Daniel Goerz <daniel.goerz@posteo.de>
Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Daniel Goerz <daniel.goerz@posteo.de>
3 months ago[BUGFIX] Fix phpstan errors from TypesAssignedToPropertiesRule
Daniel Goerz [Sat, 29 May 2021 12:22:21 +0000 (14:22 +0200)]
[BUGFIX] Fix phpstan errors from TypesAssignedToPropertiesRule

* EXT:core

Resolves: #94122
Releases: master
Change-Id: I843e50719c5e5a2c3de425f49eae2f112e0df32f
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69321
Tested-by: core-ci <typo3@b13.com>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
3 months ago[BUGFIX] Fix allowed value for mail format configuration
André Buchmann [Tue, 1 Jun 2021 09:38:43 +0000 (11:38 +0200)]
[BUGFIX] Fix allowed value for mail format configuration

$GLOBALS['TYPO3_CONF_VARS']['MAIL']['format'] allows to
configure the format for the mails, sent by TYPO3. The
format "txt" does not exist and is therefore replaced
by the correct value: "plain".

Resolves: #94247
Releases: master, 10.4
Change-Id: I55535355f0f708a9e76cdbe1e0cae1583af93bda
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69354
Tested-by: core-ci <typo3@b13.com>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
3 months ago[BUGFIX] Avoid reloading backend login form for checking HTTP referrer
Oliver Hader [Mon, 31 May 2021 12:23:15 +0000 (14:23 +0200)]
[BUGFIX] Avoid reloading backend login form for checking HTTP referrer

In order to determine whether HTTP referrer headers would be submitted
to server-side backend API, a corresponding "reload" was triggered for
the backend's main login form.

Since the behavior resulted in reduced user experience, the refreshing
mechanism was replaced by an equivalent AJAX endpoint and request.

Resolves: #92293
Releases: master, 10.4, 9.5
Change-Id: I745d266a97135496276437b8eaf9dd206bc5806e
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69336
Tested-by: core-ci <typo3@b13.com>
Tested-by: Michael Telgkamp <michael.telgkamp@mindscreen.de>
Tested-by: Benjamin Franzke <bfr@qbus.de>
Reviewed-by: Michael Telgkamp <michael.telgkamp@mindscreen.de>
Reviewed-by: Benjamin Franzke <bfr@qbus.de>
3 months ago[FEATURE] Customize selectable columns in List module per table
Benni Mack [Tue, 25 May 2021 16:34:19 +0000 (18:34 +0200)]
[FEATURE] Customize selectable columns in List module per table

In prior TYPO3 versions, it was possible to customize the list of fields
to be shown in the list view. This was only possible if the clipboard
was active OR the user was in "single table view", and displayed
in a box at the bottom of the module without any context.

The new field selector is now right at the top of the database table -
and per table - thus, always active and in context with the table.

Via UserTSconfig it is possible to explicitly disable the functionality
for users/groups for all tables or just a specific table.

Example: Disable it for all tables except for sys_category:

   mod.web_list.displayColumnSelector = 0
   mod.web_list.table.sys_category.displayColumnSelector = 1

Resolves: #94218
Releases: master
Change-Id: Ia6db3a18fea5d0cf96fa32611535048f6e5c6199
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69262
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[TASK] Use CodeMirror for backend layout code preview
Jochen Roth [Fri, 28 May 2021 13:08:07 +0000 (15:08 +0200)]
[TASK] Use CodeMirror for backend layout code preview

Currently the preview of the generated code for
a backend layout uses only <code> tag.
To streamline the ui this will use the t3editor
if installed to display the generated code

Resolves: #94222
Releases: master
Change-Id: I1df1d03af120c50662ec5806c067b9af49c85dc5
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69308
Tested-by: core-ci <typo3@b13.com>
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[BUGFIX] Fix change=reload for group fields
Andreas Fernandez [Fri, 2 Apr 2021 15:08:37 +0000 (17:08 +0200)]
[BUGFIX] Fix change=reload for group fields

This patch implements the "Refresh required" dialog for group fields
configured to request a reload once their value changes.
In the same run the validation is now applied to the field holding the
actual value, which requires a minor change in the validation process.

Resolves: #93855
Releases: master
Change-Id: I1a1cd1ff65230da23c820b94b82644d860e06f39
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/68671
Tested-by: core-ci <typo3@b13.com>
Tested-by: Riny van Tiggelen <info@online-gamer.nl>
Tested-by: Richard Haeser <richard@richardhaeser.com>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Riny van Tiggelen <info@online-gamer.nl>
Reviewed-by: Richard Haeser <richard@richardhaeser.com>
3 months ago[TASK] Change password reset functionality
Oliver Bartsch [Wed, 26 May 2021 14:32:01 +0000 (16:32 +0200)]
[TASK] Change password reset functionality

In case administrators don't want their users to
initiate the reset password process, they have to
set the global configuration option "passwordReset"
to false.

This however also prevents administrators from
using the cli command or the action in the backend
user module.

Therefore, some things changed in the password
reset implementation:

- `passwordReset` now only affects the login screen
- The CLI command is always enabled (requires shell
  access since the command is not schedulable)
- Initiating password reset in the backend can be
  managed separately with a new user TSconfig option

Also the descriptions of the global configuration
options are adjusted. Actually `passwordResetForAdmins`
previously mentioned that setting this to FALSE will
only affect the login screen, which was not the case.
It always affected all places.

In the end, this enables administrators to be more
precise when configuring the password reset functionality
in their installations.

Resolves: #91496
Releases: master
Change-Id: Ic74080adffbaf55f82189dffddb93fdd601034e2
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69268
Tested-by: core-ci <typo3@b13.com>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Richard Haeser <richard@richardhaeser.com>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Richard Haeser <richard@richardhaeser.com>
3 months ago[FEATURE] Add excludePagesRecursive option to XML sitemap generation
Christoph Lehmann [Sun, 30 May 2021 15:23:42 +0000 (17:23 +0200)]
[FEATURE] Add excludePagesRecursive option to XML sitemap generation

With this option pages can be excluded recursive in the XML sitemap:

    plugin.tx_seo.config.xmlSitemap.sitemaps.pages.config {
        # comma-separated list of page uids which should be excluded recursive
        excludePagesRecursive = 10,24
    }

Resolves: #94206
Releases: master
Change-Id: Ibcf543050c7892df9f768d27e4cb425ee7005a14
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69328
Tested-by: core-ci <typo3@b13.com>
Tested-by: Riny van Tiggelen <info@online-gamer.nl>
Tested-by: Richard Haeser <richard@richardhaeser.com>
Reviewed-by: Riny van Tiggelen <info@online-gamer.nl>
Reviewed-by: Richard Haeser <richard@richardhaeser.com>
3 months ago[TASK] Raise typo3fluid/fluid ^2.7.0
Christian Kuhn [Mon, 31 May 2021 11:11:44 +0000 (13:11 +0200)]
[TASK] Raise typo3fluid/fluid ^2.7.0

A minor raise from 2.6 to 2.7 brings an aria
related feature and a cleanup we adapt in core.

composer req typo3fluid/fluid:^2.7.0

Resolves: #94242
Releases: master
Change-Id: I9b479c33aa5183ea2bad845452dfa8cba52245e6
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69334
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Claus Due <claus@phpmind.net>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[BUGFIX] Fix recipients checkboxes in "Send to stage" dialog
Oliver Bartsch [Mon, 31 May 2021 11:56:59 +0000 (13:56 +0200)]
[BUGFIX] Fix recipients checkboxes in "Send to stage" dialog

Classes and positioning of the recipients checkboxes
in the EXT:workspaces "Send to stage" dialog are
adjusted to be bootstrap 5 compatible, restoring
proper space between checkbox and label.

Resolves: #94241
Related: #93119
Releases: master
Change-Id: If38f03f8c39c830ee5a1292667e8d942b446daff
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69335
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
3 months ago[BUGFIX] Force scheme if forceAbsoluteUrl.scheme is set
Nikita Hovratov [Sat, 15 Feb 2020 11:56:34 +0000 (12:56 +0100)]
[BUGFIX] Force scheme if forceAbsoluteUrl.scheme is set

Allow overriding the scheme with forceAbsoluteUrl even if the page
is not protected.

Also the case is now covered where a scheme of a full URL with a path
should be changed. The path in now correctly prepended by a slash.

Resolves: #90228
Releases: master, 10.4
Change-Id: I37592838a2026ad0bed0386e44caa7ffac1fb65e
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/63252
Tested-by: core-ci <typo3@b13.com>
Tested-by: Benni Mack <benni@typo3.org>
Tested-by: Richard Haeser <richard@richardhaeser.com>
Reviewed-by: Benni Mack <benni@typo3.org>
Reviewed-by: Richard Haeser <richard@richardhaeser.com>
3 months ago[TASK] Add EXT:seo sitemap constants to constant editor
Oliver Bartsch [Mon, 31 May 2021 10:17:16 +0000 (12:17 +0200)]
[TASK] Add EXT:seo sitemap constants to constant editor

This adds the EXT:seo XML sitemap related constants
to the constant editor.

Resolves: #94239
Releases: master, 10.4
Change-Id: I8e8ca1d4272b7894e0539dc86953531f6b7fd1c0
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69332
Tested-by: Richard Haeser <richard@richardhaeser.com>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Richard Haeser <richard@richardhaeser.com>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[TASK] Show image of distribution even if not installed
Thomas Löffler [Mon, 10 May 2021 14:08:13 +0000 (16:08 +0200)]
[TASK] Show image of distribution even if not installed

Previously the image of a distribution extension
was only shown in the extensionmanager, in case
the distribution was already installed. In the
list view, all distributions therefore displayed
the same fallback image.

This is now fixed by adding a new field to the
extension record, which is filled via the XML
parser. As it contains the URL to the image,
it can be directly used in the corresponding
templates and therefore allows to remove the
DistributionImageViewHelper. Instead, a new
web component handles the image and ensures
a preview image is displayed, even if the
distribution image is not available.

Resolves: #83465
Releases: master
Change-Id: Id249b99833571024e39ed3f5991751e24e2e8d1d
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69099
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Thomas Löffler <loeffler@spooner-web.de>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
3 months ago[TASK] Reduce ObjectManager->get() usages in ext:form
Christian Kuhn [Sat, 29 May 2021 20:10:45 +0000 (22:10 +0200)]
[TASK] Reduce ObjectManager->get() usages in ext:form

ext:form is full of ObjectManager usages. This first
patch tackles a series of simple cases: Mostly things
we know can be created via makeInstance() easily or
can be injected and that are easy to test since errors
would lead to immediate BE module or FE plugin fatals.

Some places benefit by switching to DI, and the
patch does this in some cases. Some other parts are
harder to switch, for instance because they'd require
a bigger test rewrite, or raise b/w compat issues.
Those places simply switch from ObjectManager->get()
to makeInstance() for now.

Change-Id: I400cf5c2e9b384d214ca0921c38c1c135df47cf7
Resolves: #94236
Related: #90803
Releases: master
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69326
Tested-by: core-ci <typo3@b13.com>
Tested-by: Simon Gilli <typo3@gilbertsoft.org>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de>
Reviewed-by: Simon Gilli <typo3@gilbertsoft.org>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
3 months ago[BUGFIX] Fix phpstan errors from TypesAssignedToPropertiesRule
Daniel Goerz [Sat, 29 May 2021 11:54:28 +0000 (13:54 +0200)]
[BUGFIX] Fix phpstan errors from TypesAssignedToPropertiesRule

* EXT:dashboard
* EXT:extbase
* EXT:extensionmanager
* EXT:filelist

Resolves: #94124
Releases: master
Change-Id: I57e3f0b390639d2160420e4dc26468c08c6341c9
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69320
Tested-by: core-ci <typo3@b13.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
3 months ago[TASK] Deprecate f:base ViewHelper
Christian Kuhn [Fri, 28 May 2021 19:37:21 +0000 (21:37 +0200)]
[TASK] Deprecate f:base ViewHelper

The BaseViewHelper which renders a base tag is kinda
useless in our scope: Fluid based rendering typically
takes care of markup within body tag, but base must
be in head.
In frontend, a base tag is thus almost always set using
TypoScript config.baseURL, ending up in PageRenderer.
The backend does stuff like this on a different level,
usually ending up in the PageRenderer as well.
Even with HTML mails, a base tag is uncommon and would
usually - at least in the frontend - again render via
PageRenderer.
The patch deprecates BaseViewHelper.

Resolves: #94227
Releases: master
Change-Id: I7029dd609ca1f0aa1057b67380c7bd3a46b7ed09
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69315
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Simon Gilli <typo3@gilbertsoft.org>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Simon Gilli <typo3@gilbertsoft.org>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[BUGFIX] Update modal instances stack when hiding a modal
Andreas Fernandez [Thu, 27 May 2021 20:58:16 +0000 (22:58 +0200)]
[BUGFIX] Update modal instances stack when hiding a modal

The modal stack handling is slightly changed to update the instance stack
when a modal was requested to get closed already and not once a modal has
been destroyed anymore.

This fixes an issue in case a closing modal triggers a new modal which
resulted in the new modal being broken.

Resolves: #94219
Releases: master, 10.4
Change-Id: Idbc16ac08e95d8b3fed896783672b58ff062cafe
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69305
Tested-by: core-ci <typo3@b13.com>
Tested-by: Richard Haeser <richard@richardhaeser.com>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Richard Haeser <richard@richardhaeser.com>
Reviewed-by: Markus Klein <markus.klein@typo3.org>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
3 months ago[TASK] Remove unused ext:beuser context menu entry code
Christian Kuhn [Sun, 30 May 2021 15:53:42 +0000 (17:53 +0200)]
[TASK] Remove unused ext:beuser context menu entry code

Did you know there's supposed to be a context menu
entry on pages in 'more' section that jumps to the edit
access view of the permission module? No? Well, it's
broken since the v8 context menu rewrite and never
rendered due to insufficient initialization.

forge doesn't have a single bug report about this, it
seems nobody ever missed that entry. This is probably
due to its limited use - the access module is used
by admins rather seldom, as soon as the basic access
rights system has been done for an instance and some
pageTS settings take care of setting proper access for
new pages, there is little need to fiddle with it
often. And if it's used, it's accessed via the main
module.

Let's drop the implementation of the context menu
entry instead of fixing it, to not bloat the 'more'
section with an entry nobody missed.

Resolves: #94237
Related: #78192
Releases: master
Change-Id: I6c87ad8b9f4f2945b29b540e800811ab607bdadd
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69329
Tested-by: core-ci <typo3@b13.com>
Tested-by: Simon Gilli <typo3@gilbertsoft.org>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Simon Gilli <typo3@gilbertsoft.org>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
3 months ago[TASK] Deprecate extbase request getRequestUri()
Christian Kuhn [Fri, 28 May 2021 20:39:31 +0000 (22:39 +0200)]
[TASK] Deprecate extbase request getRequestUri()

The next step towards a PSR-7 compatible request
object in extbase is to get rid of getRequestUri()
and setRequestUri().

The strategy is similar to getBaseUri() from issue
#94223: The Internal method setRequestUri() is dropped
and the unused getRequestUri() is deprecated.

Resolves: #94228
Related: #94223
Releases: master
Change-Id: I99f74ac989fd697404b63c90c3ee8843abb80626
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69316
Tested-by: core-ci <typo3@b13.com>
Tested-by: Daniel Goerz <daniel.goerz@posteo.de>
Tested-by: Simon Gilli <typo3@gilbertsoft.org>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Daniel Goerz <daniel.goerz@posteo.de>
Reviewed-by: Simon Gilli <typo3@gilbertsoft.org>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[TASK] Streamline method name for doc header button registration
Torben Hansen [Sat, 29 May 2021 17:33:21 +0000 (19:33 +0200)]
[TASK] Streamline method name for doc header button registration

Change method name for doc header button registration to
`registerDocHeaderButtons`, since it strictly follows the PSR-1
camelCase naming.

Resolves: #94235
Releases: master
Change-Id: Ib6bc5af33c11ec96db4aeb77364a2683f52bccf8
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69325
Tested-by: core-ci <typo3@b13.com>
Tested-by: Simon Gilli <typo3@gilbertsoft.org>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de>
Reviewed-by: Simon Gilli <typo3@gilbertsoft.org>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[TASK] Avoid ObjectManager->get() for Typo3QuerySettings
Christian Kuhn [Sat, 29 May 2021 14:38:51 +0000 (16:38 +0200)]
[TASK] Avoid ObjectManager->get() for Typo3QuerySettings

makeInstance() can be used as straight substitution
for now. Do this and clean up the test case a bit
along the way.

Resolves: #94233
Releases: master
Change-Id: I1e802d405fd161501e10beea35848eebba397d83
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69323
Tested-by: core-ci <typo3@b13.com>
Tested-by: Torben Hansen <derhansen@gmail.com>
Tested-by: Daniel Goerz <daniel.goerz@posteo.de>
Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de>
Reviewed-by: Torben Hansen <derhansen@gmail.com>
Reviewed-by: Daniel Goerz <daniel.goerz@posteo.de>
3 months ago[BUGFIX] Correct ext:beuser BackendUserRepository inheritance
Christian Kuhn [Sat, 29 May 2021 00:01:37 +0000 (02:01 +0200)]
[BUGFIX] Correct ext:beuser BackendUserRepository inheritance

ext:beuser BackendUserRepository extends ext:extbase
BackendUserGroupRepository, which is of course bogus.
It triggers an unneeded call of extbase
BackendUserGroupRepository->initializeObject(), which
explicitely sets respectStoragePage(false) on query
settings. This is redundant since [ctrl][rootLevel] = 1
of the be_user table TCA triggers the same call via
the DataMapper.

Change-Id: Id809f83fae549e859a426a615c0865d84a5c7250
Resolves: #94229
Releases: master
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69317
Tested-by: core-ci <typo3@b13.com>
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Daniel Goerz <daniel.goerz@posteo.de>
Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Daniel Goerz <daniel.goerz@posteo.de>
3 months ago[TASK] Remove extbase Request->setMethod()
Oliver Bartsch [Sat, 29 May 2021 11:28:46 +0000 (13:28 +0200)]
[TASK] Remove extbase Request->setMethod()

To further prepare towards a PSR-7 Request in extbase
we have to get rid of the setMethod() method.

Therefore, the internal method setMethod() is dropped,
while the public getMethod() is adjusted to use
the PSR-7 Request. Additionally, the now unused
InvalidRequestMethodException is deprecated.

Resolves: #94231
Related: #94231
Related: #94223
Releases: master
Change-Id: I1298cd049cf6fc1d44cf46ec3cbb3bd588b3bb7a
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69319
Tested-by: core-ci <typo3@b13.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Daniel Goerz <daniel.goerz@posteo.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Daniel Goerz <daniel.goerz@posteo.de>
3 months ago[TASK] Remove obsolete ext:beuser ext_typoscript_setup
Christian Kuhn [Sat, 29 May 2021 14:12:48 +0000 (16:12 +0200)]
[TASK] Remove obsolete ext:beuser ext_typoscript_setup

Both settings are useless:
* The storagePid = 0 setting is ignored for be_users and be_groups
  queries since the extbase DataMapper sets setRespectStoragePage(false)
  automatically because both tables have TCA ctrl rootLevel = 1.
* The check for this funny 'dummy = foo' has been removed from the
  controller years ago.

Change-Id: Ic5ee3207ae1a7bbe17de640e5dbe61a39492a844
Resolves: #94232
Releases: master
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69322
Tested-by: core-ci <typo3@b13.com>
Tested-by: Georg Ringer <georg.ringer@gmail.com>
Tested-by: Daniel Goerz <daniel.goerz@posteo.de>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Georg Ringer <georg.ringer@gmail.com>
Reviewed-by: Daniel Goerz <daniel.goerz@posteo.de>
3 months ago[TASK] Better document extbase defaultQuerySettings behavior
Christian Kuhn [Sat, 29 May 2021 16:25:07 +0000 (18:25 +0200)]
[TASK] Better document extbase defaultQuerySettings behavior

Extbase tends to become a victim of its own magic. In this
case, whenever a repository method like initializeObject()
uses setDefaultQuerySettings(), it fully overrides potentially
useful settings created by the factory.
Developers struggle here since all of a sudden things like
storagePid restrictions from configuration are no longer
applied.
We can't change this behavior easily - it would require some
awful dirty handling in QuerySettingsInterface, leading to
even more opaque complexity in this area.
The change adds comments to the property and the setter
hinting about the behavior.

Resolves: #89295
Releases: master, 10.4
Change-Id: I3b99dfa6d5a7881caaa952672386c00ebfa0166c
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69324
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Daniel Goerz <daniel.goerz@posteo.de>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Christian Wolff <chris@wolffc.de>
Reviewed-by: Daniel Goerz <daniel.goerz@posteo.de>
3 months ago[TASK] Deprecate f:be.container ViewHelper
Christian Kuhn [Fri, 28 May 2021 17:01:00 +0000 (19:01 +0200)]
[TASK] Deprecate f:be.container ViewHelper

The fluid backend ContainerViewHelper is very similar to the
PageRenderViewHelper, with the exception that container VH
adds a default and empty ModuleTemplate leading to a default
and thus pretty useless docheader.

The main ModuleTemplate logic of backend modules should
be done within controllers and resource registration like
CSS can be done with PageRenderer VH.

The patch deprecates the ContainerViewHelper.

Resolves: #94225
Releases: master
Change-Id: I69f06313f7ba1d647b702572e58eed1394dd1f2c
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69312
Tested-by: core-ci <typo3@b13.com>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[TASK] Remove unused helper_javascript_css.html template file
Christian Kuhn [Fri, 28 May 2021 17:36:08 +0000 (19:36 +0200)]
[TASK] Remove unused helper_javascript_css.html template file

typo3/sysext/backend/Resources/Private/Templates/helper_javascript_css.html
is an unused left over since FormEngine rewrite in v7 and can be dropped.

Resolves: #94226
Releases: master
Change-Id: Ic8eccade663e380c37f9abb045f14c3a5992adb4
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69313
Tested-by: core-ci <typo3@b13.com>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Christian Wolff <chris@wolffc.de>
Tested-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Christian Wolff <chris@wolffc.de>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
3 months ago[TASK] Deprecate extbase request getBaseUri()
Christian Kuhn [Fri, 28 May 2021 16:19:59 +0000 (18:19 +0200)]
[TASK] Deprecate extbase request getBaseUri()

To further prepare extbase towards a extbase Request
object compatible with PSR-7 ServerRequestInterface, we
need some solution for those methods within existing
extbase Request that prevent immutability.

One relatively straight case are setBaseUri() and
getBaseUri(): The setter has been marked @internal in
v10 already and can be dropped, and the getter is used
just in a couple of cases.

The patch adapts usages of getBaseUri() to implement
the uri retrieval on their own based on the PSR-7
request (global access as temporary solution) and
deprecates the method. The setter is dropped.

Change-Id: Ifc224ecb8ab1a9d2b6f789fe8b92b692187614b7
Resolves: #94223
Releases: master
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69310
Tested-by: core-ci <typo3@b13.com>
Tested-by: Benni Mack <benni@typo3.org>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Benni Mack <benni@typo3.org>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
3 months ago[TASK] Remove unused blank.html template file
Christian Kuhn [Fri, 28 May 2021 16:48:34 +0000 (18:48 +0200)]
[TASK] Remove unused blank.html template file

typo3/sysext/backend/Resources/Private/Templates/blank.html is
unused since the removal of DocumentTemplate and can be dropped.

Resolves: #94224
Related: #91514
Releases: master
Change-Id: I3fd2e8f1eec25981f69fdcf26e7f8ac1932002d8
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69311
Tested-by: Benni Mack <benni@typo3.org>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Benni Mack <benni@typo3.org>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
3 months ago[BUGFIX] Prevent disabling and deleting of current user
Oliver Bartsch [Thu, 27 May 2021 20:51:48 +0000 (22:51 +0200)]
[BUGFIX] Prevent disabling and deleting of current user

Both, the recordlist as well as the backend user module
already check the currently logged in user when evaluating
the available record actions, e.g. disable or delete.

Since disabling / deleting the currently logged in user
will result in a completely broken state, which can only
be fixed with direct database access, those checks
are now also implemented in FormEngine and the
ContextMenu. Furthermore, a new DisplayCond is added
to hide the "disable" field in the current user record.

Resolves: #94216
Releases: master, 10.4
Change-Id: Iebb7c5c685dc4c4aad489b73ee59fd9ac62cab4c
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69304
Tested-by: core-ci <typo3@b13.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
3 months ago[TASK] Streamline Extbase return status code
Benni Mack [Tue, 11 May 2021 21:44:24 +0000 (23:44 +0200)]
[TASK] Streamline Extbase return status code

The Extbase action controller does not worry about clearing
cache or changing plugins from USER to USER_INT as this is
now handled within Extbase Bootstrap, reducing
logic within Extbase controllers.

Future iterations in this area then allow to
a) have Extbase in BE not depend on an active cObject anymore
b) have Extbase Bootstrap be sending headers to
   its parent object.

Resolves: #94217
Releases: master
Change-Id: Iff1608ecbc37ce7e6461f9e67c73d183354ebc4a
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69110
Tested-by: core-ci <typo3@b13.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Benni Mack <benni@typo3.org>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Benni Mack <benni@typo3.org>
3 months ago[TASK] Simplify extension manager xml parser
Christian Kuhn [Thu, 27 May 2021 22:10:54 +0000 (00:10 +0200)]
[TASK] Simplify extension manager xml parser

When dealing with TER extensions in the extension manager,
the TER provides an XML file with extension details that
are parsed and loaded into a database table.

When this has been added a long time ago, two XML parsers
have been added together with a factory to select one.

Since PHP extension 'xml' is a required TYPO3 extension
since a lot of core versions, always the first parser
did the job.

The patch removes the legacy parser and the factory,
injects the parser via DI to the consuming class, merges
the abstract parser class into the now single parser,
moves the namespace, and refactors the
class towards PHP strict typing.

This leads to a significantly simplified codebase, much
easier to maintain and adapt.

Change-Id: I5f64370f943964686717dccb4e39cda1ae9511c9
Resolves: #94220
Releases: master
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69307
Tested-by: core-ci <typo3@b13.com>
Tested-by: Benni Mack <benni@typo3.org>
Tested-by: Georg Ringer <georg.ringer@gmail.com>
Reviewed-by: Benni Mack <benni@typo3.org>
Reviewed-by: Georg Ringer <georg.ringer@gmail.com>
3 months ago[FEATURE] Add AbstractValidator::addErrorForProperty()
Volker Diels-Grabsch [Tue, 30 Mar 2021 21:13:35 +0000 (23:13 +0200)]
[FEATURE] Add AbstractValidator::addErrorForProperty()

For complex validators, it often makes sense that a custom validator
can attribute an error to a specific property or sub property, even
though it is validating a whole class.

This is already possible by accessing a validator's $this->result
directly, but that is cumbersome and in no way obvious, as this
requires deep knowledge of the Result and Error classes.

So this commit adds a convenience method addErrorForProperty() similar
to addError() that takes a property path in addition to the error
details.

Resolves: #93835
Related: #93836
Releases: master
Change-Id: I52f2b4cebaa8b4b4a91e47e983ce47533b63c6d5
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/68658
Tested-by: core-ci <typo3@b13.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
3 months ago[TASK] Always use manually set canonical URL
Albrecht Koehnlein [Wed, 26 May 2021 18:40:33 +0000 (20:40 +0200)]
[TASK] Always use manually set canonical URL

If a canonical URL is set in the page properties, this will always be used
before checking the other options for defining the canonical URL.

Resolves: #94201
Releases: master
Change-Id: I200a086952cd70d0659692f144b2fae93173a8f4
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69271
Tested-by: Richard Haeser <richard@richardhaeser.com>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Riny van Tiggelen <info@online-gamer.nl>
Reviewed-by: Richard Haeser <richard@richardhaeser.com>
Reviewed-by: Riny van Tiggelen <info@online-gamer.nl>
3 months ago[TASK] Deprecate ext:backend ModuleLayout view helpers
Christian Kuhn [Wed, 26 May 2021 15:09:58 +0000 (17:09 +0200)]
[TASK] Deprecate ext:backend ModuleLayout view helpers

A while after the PHP based ModuleTemplate API has been
introduced back in 2015, a couple of fluid view helpers
have been added to ext:backend as a second way to handle
full backend module content like the doc header.
It found an example use in ext:beuser.

Development however stopped at this point, the provided
view helpers are only a sub set of the PHP based API and
they didn't find broader use within the core - all other
backend modules stick to the ModuleTemplate based API.

On a structural level, those view helpers are questionable:
They move functionality to the view component which is
arguably more a controller task. The ext:beuser module
proofes this since it had to assign controller knowledge
like the current action and controller name to the view
in order to render the doc header module down and shortcut
buttons.

The patch drops usages of these view helpers in ext:beuser,
plus the minor usages of the outer ModuleLayout view helper
in ext:install and ext:belog, substitutes them with the
PHP ModuleTemplate API within controllers, and deprecates
the full set of ModuleLayout view helpers.

The change sharpens our separation between controller and
view: The "outer" module handling like doc header buttons
and menus are tied to controller logic and should be
located there, while the module body is rendered by a
fluid view.

As a bonus, a couple of issues within ext:beuser are
fixed along the way, since they can now be easily solved
and were rather hard to tackle with the view helper based
approach:
* The beuser module now remembers state and jumps to
  for instance the group sub module when a user selected
  this last. This is now in line with many other backend
  modules that do the same.
* Shortcuts to single user details work.
* The main doc header drop down can now contain all possible
  sub modules, including those that are available only
  indirectly, for instance the single user details view.
  This is good when calling these from shortcuts.

Change-Id: Idef3aa6975e97677c1da0cef57f70c855bd2ea9f
Resolves: #94209
Releases: master
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69269
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
3 months ago[TASK] Extend click area for toolbar links
Jochen Roth [Thu, 27 May 2021 18:11:41 +0000 (20:11 +0200)]
[TASK] Extend click area for toolbar links

In order to ease usage, icon and text are now both linked
in toolbar sections of open docs, user switch and bookmark dropdown,
in contrast to only text before.

Resolves: #94215
Releases: master
Change-Id: I494d82e2f2cd90e904241c9c5a4c24aee9664bb1
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69302
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>