[TASK] Fix functional tests in WorkspaceServiceTest

Refactor WorkspaceServiceTest to reflect recent changes
in functional testing.
Enable test so they will be run in Travis.
Still 2 tests are skipped and need further review,
but it can be done in the separate change.

Resolves: #51164
Releases: 6.2
Change-Id: I074629d877b6a4d336bd21aacd20268bf4746811
Reviewed-on: https://review.typo3.org/23185
Reviewed-by: Stefan Neufeind
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[TASK] Shorten database names in functional tests

The functional tests frameworks create a new database per test.
The database name is generated by the original database
name plus a string and a hash.

If the database name length exceeds the maximum length of 64
characters an exception is now thrown.

The generated database name is also been shortened a bit.

Resolves: #51383
Releases: 6.2
Change-Id: I5817e440a3dcba7e53e2a27dca4f7bfc679334f5
Reviewed-on: https://review.typo3.org/23356
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[FEATURE] Install tool database port detection

The patch adds better auto detection of port settings to
install tool step action "database connect". If everything
works out, the database connect step is not rendered anymore
during upgrading which is the case without the patch.

- Split port off from IP only if IPv4 is used
- Get default or configured port for connection test
- Store port, host and socket on success and redirect to self

Change-Id: Ia5b53fc7eff60c5b2613ecee35cd5ee699e141ca
Resolves: #49186
Releases: 6.2
Reviewed-on: https://review.typo3.org/23332
Reviewed-by: Kai Ole Hartwig
Tested-by: Kai Ole Hartwig
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[TASK] Refactor misleading method name

Purpose of the initialize() method in the AbstractAction class is the
initialization of a handle. It is not intended to be used for generally
initializing classes derived from AbstractAction.

By refactoring the method name, the method's purpose will be indicated
more clearer.

Change-Id: I1603090e4dfccb5b57da4fa9c3792ec73647c524
Resolves: #51396
Releases: 6.2
Reviewed-on: https://review.typo3.org/23364
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[FEATURE] Install Tool: Check for broken ext indicates loading

"Check for broken extensions" in important actions of the install
tool checks for broken extenions over an Ajax-Request.

Currently, the user clicks the button to check for broken extensions
and doesn't get any feedback whether there is something going on or not.
This patch implements a loading-message with a Spinner that is displayed
as soon as the button to check for broken extensions is clicked.
Furthermore the button is hidden as long as the request is beign executed
and displayed again if there is anything more to check (e.g. broken
extensions are found).

Resolves: #51379
Release: 6.2
Change-Id: I13e5024a1e2666e54e782ff1bab9418ba8b180f6
Reviewed-on: https://review.typo3.org/23365
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Christoph Buchli
Tested-by: Christoph Buchli
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[TASK] Cleanup FactoryConfiguration for saltedpasswords

This patch rewrites the configuration of ext:saltedpasswords into
a readable array which gets serialized afterwards. The check for
enabling salted passwords in the backend is obsolete and removed.
The values of the "checkConfiguration" user functions superfluous
and removed as well.

Resolves: #51354
Releases: 6.2
Change-Id: I539070d1642660ad0a5641d8971bdabc7cf92223
Reviewed-on: https://review.typo3.org/23366
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Next/last button not linked on last page

The button icon viewhelper now supports an empty uri parameter. The
link on the next / last button of the backend paginate widget in case
you are on the very last page can be removed.

Change-Id: I238c77efa8a9d4ff4a1864f6df876a695dc690e5
Resolves: #51395
Releases: 6.2
Reviewed-on: https://review.typo3.org/23363
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[BUGFIX] Install Tool: Correct Browser-Title if locked

If the Install Tool is locked, the login-screen states whether the
cause to this is if the ENABLE_INSTALL_TOOL file doesn't exist (and
therefore it's locked) or if no password is set.

Currently, the Browser-Title states "No install tool password set"
even if it's set but the ENABLE_INSTALL_TOOL file doesn't exist.
This Patch sets the correct title in the browser-window:
"The Install Tool is locked".

Resolves: #51408
Release: 6.2
Change-Id: Ia9d25a884667404408a2ef6a375d95f7509d8d9d
Reviewed-on: https://review.typo3.org/23373
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[TASK] Move default salt methods to factory function

To use saltedpasswords in the install tool it is necessary to move the
default salt methods registration from ext_localconf.php to the salt
factory. This patch adds an initialize function to set the default salt
methods.

Resolves: #51404
Releases: 6.2
Change-Id: Iaa4547255c8d6e3b0b0fd75c0aaadfa54109ba27
Reviewed-on: https://review.typo3.org/23369
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[TASK] Make the extension titles link to the configuration

In the extension manager make the extension titles link to the
configuration again. This will provide an additional clickable area and
it allows the integrators to continue using the known behavior.

Resolves: #50234
Releases: 6.2, 6.1, 6.0
Change-Id: I120e8fb47628fe118291cbdd57951a0238ebcd71
Reviewed-on: https://review.typo3.org/22663
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
Reviewed-by: Nicole Cordes
Tested-by: Nicole Cordes
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[TASK] Remove misleading icon from buttons in install tool

Nearly all buttons in the install tool currently show a green checkmark
icon. This is misleading, as in most cases nothing has been checked.
The button simply leads to the next step or executes the desired action.

With removing the icon, it will be more clearer that clicking a button
will just perform the intended action, without any check being
performed beforehand that this action will actually succeed.

Change-Id: If00d4ccde24a201f552ead6b9d8991c8e58b473f
Resolves: #51407
Releases: 6.2
Reviewed-on: https://review.typo3.org/23368
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
[TASK] Update SwiftMailer to 5.0.1

Feature wise equal to 4.3.1, but now with MIT license.

Resolves: #51406
Releases: 6.2

Change-Id: Ie0cd306b544c2f56853ca7e16ba6cdd5cdf84a6e
Reviewed-on: https://review.typo3.org/23370
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Jigal van Hemert
Tested-by: Jigal van Hemert
[BUGFIX] Fix incorrect call to substr_count

The call to substr_count was incorrect.

Change-Id: I9f452d22f03a99fbf0b862021b100dcf6d53d792
Resolves: #51409
Releases: 6.2
Reviewed-on: https://review.typo3.org/23374
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
Reviewed-by: Stefan Neufeind
Tested-by: Stefan Neufeind
[BUGFIX] utf8/multibyte character breaks menu filelist

Resolves: #51190
Releases: 6.2, 6.1
Change-Id: I105e23b12659495b4058edbc8091eee4374d58b9
Reviewed-on: https://review.typo3.org/23278
Reviewed-by: Philipp Gampe
Tested-by: Philipp Gampe
Reviewed-by: Oliver Klee
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[TASK] ext:saltedpasswords: Remove isUsageEnabled for backend

Remove all calls on SaltedPasswordsUtility::isUsageEnabled('BE')
as backend is enabled by default. Besides remove all
ExtensionManagementUtility::isLoaded('saltedpasswords') as
extension is loaded by default.

Change-Id: Ie2332fc3c6c454888afc8c9956b9869309623584
Resolves: #51356
Releases: 6.2
Reviewed-on: https://review.typo3.org/23375
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
[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