Packages/TYPO3.CMS.git
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>
4 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>
4 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>
4 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>
4 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>
4 months ago[FEATURE] Add field information for pages backend layout
Oliver Bartsch [Thu, 27 May 2021 13:47:08 +0000 (15:47 +0200)]
[FEATURE] Add field information for pages backend layout

This patch adds a new field information which displays the
actually used backend layout for the current page,
in case the `backend_layout` field is empty and
a parent page defines `backend_layout_next_level`.

This will help editors to determine the
actually used backend layout. This was previously
often difficult. Especially in case multiple backend
layouts used the same columns config, but
differed in their frontend representation.

Resolves: #94210
Releases: master
Change-Id: I8ebe2182f8e943a76def233d3fe5f64f94ea79c8
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69298
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.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>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
4 months ago[BUGFIX] Do not reset validation state when validating sections
Andreas Fernandez [Wed, 26 May 2021 09:52:31 +0000 (11:52 +0200)]
[BUGFIX] Do not reset validation state when validating sections

Calling `FormEngineValidation.validate()` on a passed section resets the
overall validation state which may cause to mark fields as valid albeit
they aren't.

To solve this issue, the validation state is reset only in case no
specific section was given.

Resolves: #94110
Releases: master, 10.4
Change-Id: I7ed236c1e20fa2f1cdba07c58b64d943cf40700b
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69265
Tested-by: core-ci <typo3@b13.com>
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Benni Mack <benni@typo3.org>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Benni Mack <benni@typo3.org>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
4 months ago[TASK] Remove dependency of extension manager to install tool
Helmut Hummel [Thu, 27 May 2021 15:52:04 +0000 (17:52 +0200)]
[TASK] Remove dependency of extension manager to install tool

During refactoring of LateBootService (in install tool)
to BootService (in core) a usage of LateBootService in
extension manager was forgotten and is cleaned up now.

Releases: master
Resolves: #94213
Change-Id: I8c5013b0f51fd8a250a8a7b6b4eb9822ee536d9c
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69301
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
4 months ago[TASK] Avoid ObjectManager->get() in ext:irre_tutorial
Christian Kuhn [Thu, 27 May 2021 14:34:41 +0000 (16:34 +0200)]
[TASK] Avoid ObjectManager->get() in ext:irre_tutorial

The method containing the call is unused and can be dropped.

Change-Id: Ia4e233bd1d15b2bb2deb6f03a29e5ae873bb829b
Resolves: #94211
Related: #90803
Releases: master
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69299
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>
4 months ago[BUGFIX] Re-calculate z-index of modal and its backdrop
Andreas Fernandez [Tue, 18 May 2021 21:17:34 +0000 (23:17 +0200)]
[BUGFIX] Re-calculate z-index of modal and its backdrop

Bootstraps modals are not designed to have multiple instances opened at
once, which was workarounded in TYPO3 a while ago. If a modal overlays
another modal AND is smaller, its backdrop does not overlay the "lower"
modal due to hardcoded z-index values.

With this patch the z-index of both, the modal and its backdrop are
re-calculated depending on the amount of open modals. We use "1000" as
an overall base to circumvent a stuttering UI as Bootstrap uses a z-index
of "1040" for backdrops on initial rendering.
However, this will clash again when at least four modals are open, which
is fine and should never happen - if it does, it at least reveals a
bad UX.

Resolves: #94155
Releases: master
Change-Id: Ia15d0cdba903d9ec6a9ebe8518b07daf5e52e59f
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69181
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>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
4 months ago[TASK] Ensure all Extbase plugins can be cacheable and non-cacheable
Benni Mack [Wed, 12 May 2021 20:49:37 +0000 (22:49 +0200)]
[TASK] Ensure all Extbase plugins can be cacheable and non-cacheable

This change moves the detection of USER/USER_INT from
the FrontendRequestHandler to Extbase Bootstrap->run(),
allowing custom extbase request handlers to now be
converted to USER_INT to run uncached.

This further separates the TSFE/cObj logic from Extbase
into the main entrypoint (Bootstrap), making Extbase less
aware of cObjects and their internal cacheable logic.

Resolves: #94132
Releases: master
Change-Id: I76e4268df65897fc3b10e6c1828d34f465e435c6
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69136
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: core-ci <typo3@b13.com>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
4 months ago[TASK] Move BackendLayoutWizardElement into correct namespace
Oliver Bartsch [Thu, 27 May 2021 15:35:31 +0000 (17:35 +0200)]
[TASK] Move BackendLayoutWizardElement into correct namespace

Resolves: #94212
Releases: master
Change-Id: I785cc3d5a286274ad4b09d1de3fe55adced878c5
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69300
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>
4 months ago[TASK] Resolve still more PHP 8 issues
Larry Garfield [Fri, 21 May 2021 17:12:52 +0000 (12:12 -0500)]
[TASK] Resolve still more PHP 8 issues

Resolves: #94057
Releases: master
Change-Id: I238a98d5161417465c02ae8683aef83f55a05ecc
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69255
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>
4 months ago[BUGFIX] EXT:scheduler align input field and button height
Jochen Roth [Thu, 27 May 2021 07:15:25 +0000 (09:15 +0200)]
[BUGFIX] EXT:scheduler align input field and button height

This aligns the height of the input field and
the associated datepicker button in the edit
task form of EXT:scheduler.

Resolves: #94205
Releases: master
Change-Id: I19f1d8fb6d5901b94a5d2a01bf532ac6ec7d22e6
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69295
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>
4 months ago[BUGFIX] Fix success message of password reset command
Oliver Bartsch [Wed, 26 May 2021 16:39:12 +0000 (18:39 +0200)]
[BUGFIX] Fix success message of password reset command

To prevent information disclosure, the password reset
process does not reveal if an email was sent or not. The
corresponding methods just return void.

However, the ResetPasswordCommand always displayed
a success message, which claims an email was sent,
even though this was not the case. An example would be
a password reset request which affects an admin user,
while "passwordResetForAdmins" is disabled.

In such cases, the message is highly misleading.

To fix this, the message now only informs about the
successfully initiated password reset process and not
whether an email was sent or not. This is now consistent
with the message in the backend user module.

Resolves: #94200
Releases: master, 10.4
Change-Id: I99d33d0a55be48c7f5ee51e24fea3f85baf36b26
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69270
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>
4 months ago[TASK] Avoid ObjectManager->get() in EXT:frontend
Oliver Bartsch [Wed, 26 May 2021 21:49:15 +0000 (23:49 +0200)]
[TASK] Avoid ObjectManager->get() in EXT:frontend

Resolves: #94204
Related: #90803
Releases: master
Change-Id: I3da93d84ddc9caa9922ac65c6f7a99acdede6606
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69294
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: Oliver Klee <typo3-coding@oliverklee.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
4 months ago[BUGFIX] Pass PSR-7 Request to RequestBuilder->build()
Oliver Bartsch [Wed, 26 May 2021 21:16:03 +0000 (23:16 +0200)]
[BUGFIX] Pass PSR-7 Request to RequestBuilder->build()

Since #93853, RequestBuilder->build() expects
a PSR-7 Request to be passed.

Because the FLUIDTEMPLATE content object was
not adjusted accordingly, an exception is triggered
as soon as extbase variables are defined for the
content object.

This is fixed by passing the current PSR-7 Request
to the method. The PSR-7 Request is available in any
content object since #92984.

Resolves: #94203
Related: #93853
Releases: master
Change-Id: Ife3b9a076757e4af8b384e49ab00c945411d47c6
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69293
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>
4 months ago[FEATURE] Add download and filename options to FileDumpController
Christian Eßl [Thu, 8 Oct 2020 14:12:03 +0000 (16:12 +0200)]
[FEATURE] Add download and filename options to FileDumpController

The FileDumpController is extended for two new options:

- `dl`: Force download of the file
- `fn`: Use of an alternative filename

To ease the use for extension authors, also a new
view helper is introduced, which allows to create
a link to a file (FAL), while using the new options.

This effectively allows to easily create (download)
links for non-public files within fluid.

Resolves: #92518
Resolves: #67111
Releases: master
Change-Id: Ic771c90e07b382e95f31945f58052739ae853d17
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/66084
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: Richard Haeser <richard@richardhaeser.com>
Reviewed-by: Benni Mack <benni@typo3.org>
4 months ago[BUGFIX] Fix data attribute for modal content
Oliver Bartsch [Wed, 26 May 2021 13:47:34 +0000 (15:47 +0200)]
[BUGFIX] Fix data attribute for modal content

With the bootstrap update in #93126 the data
attribute name to set the modal content changed
from `data-content` to `data-bs-content`.

This patch now adjust all remaining places
to display the action specific content, instead
of the default "Are you sure?", again.

Resolves: #94199
Releases: master
Change-Id: I0ca3967dcd831ad31050e170b4d91ef93932cd27
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69267
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>
4 months ago[TASK] Deprecate "relativeToCurrentScript" in FAL API
Benni Mack [Tue, 18 May 2021 10:58:47 +0000 (12:58 +0200)]
[TASK] Deprecate "relativeToCurrentScript" in FAL API

The additional argument "relativeToCurrentScript" through
out the File Abstraction Layer is a faulty conceptual
implementation from back in the days.

FAL can only build "relativeToCurrentScript" links for
local drivers (and only in some cases). In addition, we've
successfully migrated all logic in Frontend (Site Handling)
and Backend (URL Routing since TYPO3 v11) to be able to
handle absolute links, so this option should be marked as
deprecated and never be used again, as it does not properly
work if we want a true Abstraction Layer logic.

Resolves: #94193
Releases: master
Change-Id: Ib9ba752399bdc5b385804d580157d918fe90327c
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69173
Tested-by: core-ci <typo3@b13.com>
Tested-by: Benni Mack <benni@typo3.org>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Benni Mack <benni@typo3.org>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
4 months ago[TASK] Follow best practice on returning PSR-7 response
Oliver Bartsch [Fri, 21 May 2021 12:30:03 +0000 (14:30 +0200)]
[TASK] Follow best practice on returning PSR-7 response

Since #94186, extbase controller actions are
required to return a PSR-7 response interface.

To ease the use for extension authors, the
helper method `htmlResponse()` was added
to the ActionController. If no data is provided,
$this->view->render() is automatically used
as response body.

This is more or less the usual behaviour of
most extbase actions and therefore also
described in the corresponding RST.

Since core code is often used as example
for custom implementations, those places
should follow the best practices, described
in the RST.

Therefore, this patch adjust all places in core,
which call htmlResponse() and unnecessarily
pass $this->view->render() as data.

Resolves: #94186
Releases: master
Change-Id: Id6ac4f92cc9b6fdb70150a2de4ea5a6877a9a55f
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69229
Tested-by: core-ci <typo3@b13.com>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Benjamin Franzke <bfr@qbus.de>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Benjamin Franzke <bfr@qbus.de>
4 months ago[TASK] Set proper title of window in backend
Richard Haeser [Tue, 18 May 2021 09:29:36 +0000 (11:29 +0200)]
[TASK] Set proper title of window in backend

With the introduction of the new backend module web component router,
the title of the backend windows will be set to the title of the
main iframe. Most of the modules didn't provide a proper name though.

For most modules we have a proper name now which will show up in the
title of the backend window, if no title is propagated by the module,
the backend router will fallback to the default backend title.

As the format of the title is quite "personal". If you are used to have
opened more TYPO3 backend windows, you would like to see which
installation you have open. If you only work in one backend, you
might want to see on which module you are currently working. It is
possible to set the order of the title of the backend within your
user settings now. By default it will be title - siteName [version]

Resolves: #94182
Releases: master
Change-Id: I02602650370140217aa252bbd8e29ea4e05d994a
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69172
Tested-by: core-ci <typo3@b13.com>
Tested-by: Jochen <rothjochen@gmail.com>
Tested-by: Benjamin Franzke <bfr@qbus.de>
Reviewed-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Benjamin Franzke <bfr@qbus.de>
4 months ago[BUGFIX] Fix reset password for backend user
Jochen Roth [Fri, 16 Apr 2021 11:14:46 +0000 (13:14 +0200)]
[BUGFIX] Fix reset password for backend user

Remove groupData filemounts property because it causes
GeneralUtility::intExplode to crash when $this->groupData['filemounts']
is defined as a empty array.

Resolves: #93935
Releases: master
Change-Id: Ia3879898c74bd94122bae08d21eabd396ce2a46a
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/68795
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>