[TASK] Display count of failed error checks in install tool menu

With displaying the count of failed error checks in the navigation menu
(like the count of unread messages in an email inbox) a user will more
likely enter the "System environment" section of the install tool and
take care about the found errors and warnings.

Change-Id: I3d9b628b428da13992c3dc1e7e5ab6beaeda5ce1
Resolves: #51410
Releases: 6.2
Reviewed-on: https://review.typo3.org/23380
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[FEATURE] Create BE-user in installation wizard with a salted password

In the installation wizard (123 steps) the admin user is created with a
md5 hashed password. For security reason this should be changed to a
salted password. As this function is used in #31407 as well it was
refactored to the AbstractAction class.

Resolves: #50612
Releases: 6.2
Change-Id: Ide966eb1c1e05d2190f0d22446bc2b3e92643451
Reviewed-on: https://review.typo3.org/22738
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Stefan Neufeind
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Only log file/directory actions which were done

Some file/directory actions were logged as they were
successfully performed, even when they failed.

Resolves: #51328
Releases: 6.2, 6.1, 6.0

Change-Id: Iab03e668d3f7d0e8feec09851ea50a59ab4b71a0
Reviewed-on: https://review.typo3.org/23303
Reviewed-by: Steffen Müller
Tested-by: Steffen Müller
Reviewed-by: Georg Ringer
Tested-by: Georg Ringer
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[FEATURE] Use salted Install Tool password

To enhanced the security this patch changes the Install Tool password
from md5 hash to a salted hashed password. Therefore the default
password in the FactoryConfiguration.php is changed. Old md5 hashes get
converted automatically during the boot process of the Install Tool. The
output of the calculated hash is reintroduced when an error occured.
The report modules were adjusted to be able to check salted hashed
passwords.

Resolves: #50613
Releases: 6.2
Change-Id: If02a43780c9c819ebd6da7cbf0acad305f805330
Reviewed-on: https://review.typo3.org/22739
Reviewed-by: Kai Ole Hartwig
Tested-by: Kai Ole Hartwig
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[TASK] Cleanup saltedpasswords extension configuration

Remove the note "Install tool has hardcoded md5 hashing,
enabling this setting will prevent use of a install-tool-created
BE user." for backend.BE.forceSalted

Resolves: #51355
Releases: 6.2
Change-Id: Ic6dd03d37f5c4fe1027dece048693c74ab4dc98e
Reviewed-on: https://review.typo3.org/23395
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Kai Ole Hartwig
Tested-by: Kai Ole Hartwig
Reviewed-by: Stefan Neufeind
Tested-by: Stefan Neufeind
[TASK] Functional tests: error if DB permissions are missing

The functional test framework needs create and drop
table database permissions.

Added a check that outputs an error message if the DB user
is not able to connect to the database or if the user
has not the required permissions to create a database.

Resolves: #51381
Releases: 6.2
Change-Id: I94c4eeb4356fdba06026ec727283807112c53926
Reviewed-on: https://review.typo3.org/23388
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[FEATURE] Introduce handling of missing files

To keep track of missing files we introduce a missing
flag is sys_files.
When indexer detects file is missing the flag is set
and reset when file is present again.

In backend a message is shown when a reference to a
missing file is used.

Resolves: #50827
Change-Id: Iaaf9455698507c5cd574f6928fa5a563a49ad121
Reviewed-on: https://review.typo3.org/22913
Reviewed-by: Steffen Ritter
Reviewed-by: Kai Ole Hartwig
Tested-by: Kai Ole Hartwig
Reviewed-by: Mattias Nilsson
Tested-by: Mattias Nilsson
Tested-by: Steffen Ritter
[FEATURE] Allow signalSlots to modify arguments

To allow signalSlots to modify the given arguments,
even if not an object (which could be modified by
reference anyway), the signalSlot should be able
to return the arguments.

This will make the signal slot handling diverge
from Flow and violates or at least bends the
signal slot pattern.

To make this clear, we should rename the
signal slot dispatcher in an upcoming change.

Resolves: #51138
Releases: 6.2
Change-Id: I36928adceed672580c76a68891dfb825e43a5a9e
Reviewed-on: https://review.typo3.org/23146
Reviewed-by: Stefan Neufeind
Reviewed-by: Helmut Hummel
Tested-by: Helmut Hummel
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
[FEATURE] Enable automatic t3d import for extensions

As preparation for the new distribution (introduction package ...)
handling extensions should be able to provide initial t3d imports.
These are then imported on the root level upon installing the extension.

The t3d file has to be called data.t3d and located in
<extension>/Initialisation/data.t3d.

The data is imported only once (even if you reinstall the extension),
execution state is saved via the core registry.

Resolves: #51437
Releases: 6.2
Change-Id: Ibfe631d173b962781018c6c9e929f4f020e48aa5
Reviewed-on: https://review.typo3.org/23397
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[TASK] dbal: Remove obsolete CSS HTML template

The HTML template was used in the old install tool, is
unused now and can be removed.

Change-Id: I046c772acd2a9db166036216b3d8ed78ffe813e4
Resolves: #51469
Releases: 6.2
Reviewed-on: https://review.typo3.org/23428
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[TASK] Re-enable disabled saltedpasswords task if not finished

If you start a disabled saltedpasswords task it begins to look over all
users again. If it didn't process all users the current position is saved
but there is no message to the backend user that the processing is not
finished. Therefore the task should re-enable itself to be able to
process remaining users.

Resolves: #51465
Releases: 6.2
Change-Id: Ia0abf76af2ba91b68d05f0837dda950660f52c1c
Reviewed-on: https://review.typo3.org/23425
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Exclude empty passwords from password hashing check

The test for insecure passwords handles empty passwords as insecure and
recommends to use the saltedpasswords scheduler task to convert all
insecure passwords. But the scheduler task doesn't convert empty
passwords, so a never ending story exists. Therefore this patch exludes
empty passwords being handled as insecure.

Resolves: #36244
Releases: 6.2, 6.1, 6.0, 4.7, 4.5
Change-Id: I6bdd5c8807a07841850c1e4c22afe57eec28b335
Reviewed-on: https://review.typo3.org/23421
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[TASK] Cleanup BackendUtitlity::displayWarningMessages

As the report tool checks system environment with the use of the hook
witin that function, we can deprecate the function in the BackendUtility
and move the hook to the appropriate extension "aboutmodules".

Resolves: #51434
Releases: 6.2
Change-Id: If39a82680a8797782bcbf620d7a3e59193468a9c
Reviewed-on: https://review.typo3.org/23400
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[FEATURE] Enable automatic file import for extensions

As preparation for the new distribution (introduction package ...)
handling extensions should be able to provide initial file imports.
These are then imported to fileadmin/<extensionname>
upon installing the extension.

The files have to be located in <extension>/Initialisation/Files/*.

The files are imported only once (even if you reinstall the extension),
execution state is saved via the core registry.

Resolves: #51466
Releases: 6.2
Change-Id: Icbf63227aa8bbb9fcfb0335bfa5ae92b549a94ba
Reviewed-on: https://review.typo3.org/23427
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[BUGFIX] Add missing API method FileInterface::getNameWithoutExtension

This method was supposed to be in the interface, but due to a syntax
error in the closing comment tag, it was not (and was not detected as a
PHP syntax error).

This finally adds this method and implements it also in the class
FileReference which hadn't had this method before but also implements
this interface.

Resolves: #51509
Releases: 6.2, 6.1, 6.0
Change-Id: I8ee1ecc155e9cfaeec7ac0ac7086f75df13f4c34
Reviewed-on: https://review.typo3.org/23453
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
[BUGFIX] Cast autoload and classAliasMap to Array

If you create an empty ext_autoload.php or an empty classAliasMap.php
file or fail to return an array, NULL is merged with the existing
array which results in NULL for the array $classRegistry or
$aliasToClassNameMapping
This patch casts the required Array(which is possibly NULL) to an
Array to prevent array_merge with NULL values.

Fixes: #51474
Releases: 6.2, 6.1, 6.0
Change-Id: I1887da3a942b17e441338a95cb7da49a17535907
Reviewed-on: https://review.typo3.org/23441
Reviewed-by: Kai Ole Hartwig
Tested-by: Kai Ole Hartwig
Reviewed-by: Christoph Dörfel
Tested-by: Christoph Dörfel
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[BUGFIX] Duplicate TCA in sys_category

In table sys_category the TCA for field "t3ver_label" appears twice,
the first time with the expected definition, the second time with a
slightly different one, never seen in the Core. Since the second
definition overrides the first, it should be removed.

Resolves: #51513
Releases: 6.2
Change-Id: I4d7d642dadb884199b6f2a0aa3bcc1c93993c309
Reviewed-on: https://review.typo3.org/23452
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[FEATURE] Keep "new content element" icon visible if the column is empty

Resolves: #51480
Releases: 6.2
Change-Id: Ieaff9ddaf43e339979ecb5fff48678d28b9b0e61
Reviewed-on: https://review.typo3.org/23438
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
[CLEANUP] Adjust usage of ContentObjectRenderer->getTreeList()

In ContentObjectRenderer->getQuery() the pid where clause is build
using getTreeList() to fetch recursive pids. But for the inclusion
of the uppermost pid, string concatenation is used.
The method getTreeList() offers the option to include the uppermost
pid into the returned result by passing it as a negative value. Method
getQuery() should use this opportunity instead of doing its own magic.

Additionally some cleanup is done for getTreeList, optimizing the
returned string, and unittests were added.

Resolves: #51067
Resolves: #51503
Releases: 6.2
Change-Id: Ie72103ca66d847cb0eb0f3ef5e33a1896d86de5b
Reviewed-on: https://review.typo3.org/23092
Reviewed-by: Kai Ole Hartwig
Tested-by: Kai Ole Hartwig
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[BUGFIX] Add missing categories menu utility

When the feature introducing categories-based page menu was
introduced, a utility class was eventually forgotten. This
patch restores it.

Resolves #51524
Releases: 6.2

Change-Id: I447b22a80252eb8c7ede80daa11cfc7db5144479
Reviewed-on: https://review.typo3.org/23466
Reviewed-by: Francois Suter
Tested-by: Francois Suter