1.. include:: ../../Includes.txt
2
3===================================================
4Feature: #88110 - Felogin extbase password recovery
5===================================================
6
7See :issue:`88110`
8
9Description
10===========
11
12As part of the felogin extbase plugin, a password recovery form has been added.
13
14FE users are able to request a password change via email. A mail with a forgot hash will be send to the requesting user.
15If that hash is found valid a reset password form is shown. If all validators are met the users password will be updated.
16
17There is a way to define and override default validators. Configured as default are two validators: NotEmptyValidator and StringLengthValidator.
18
19They can be overridden by overwriting :ts:`plugin.tx_felogin_login.settings.passwordValidators`.
20Default is as follows:
21
22.. code-block:: typoscript
23
24   passwordValidators {
25      10 = TYPO3\CMS\Extbase\Validation\Validator\NotEmptyValidator
26      20 {
27         className = TYPO3\CMS\Extbase\Validation\Validator\StringLengthValidator
28         options {
29            minimum = {$styles.content.loginform.newPasswordMinLength}
30         }
31      }
32   }
33
34A custom configuration could look like this:
35
36.. code-block:: typoscript
37
38   passwordValidators {
39      10 = TYPO3\CMS\Extbase\Validation\Validator\AlphanumericValidator
40      20 {
41         className = TYPO3\CMS\Extbase\Validation\Validator\StringLengthValidator
42         options {
43            minimum = {$styles.content.loginform.newPasswordMinLength}
44            maximum = 32
45         }
46      }
47      30 = \Vendor\MyExt\Validation\Validator\MyCustomPasswordPolicyValidator
48   }
49
50Felogin uses FluidMail. The email_templateName variable in TypoScript is mandatory. Depending on the configuration of
51$GLOBALS['TYPO3_CONF_VARS']['MAIL']['format'] the template has to exist as an HTML file, txt file or both. The template
52files have to be placed in the same folder.
53The template paths can be configured via TypoScript. These paths can either be added to the paths configured in
54$GLOBALS['TYPO3_CONF_VARS']['MAIL'] or replace them.
55
56The template paths configuration can be extended as follows:
57
58.. code-block:: typoscript
59
60   plugin.tx_felogin_login {
61     settings {
62       email {
63         templateName = MyRecoveryEmailTemplateName
64
65         layoutRootPaths {
66            30 = EXT:myext/Resources/Private/Layouts/Email/
67         }
68         templateRootPaths {
69           30 = EXT:myext/Resources/Private/Templates/Email/
70         }
71         partialRootPaths {
72           30 = EXT:myext/Resources/Private/Partials/Email/
73         }
74       }
75     }
76   }
77
78To overwrite the template path configuration provided by felogin, it has to be as follows:
79
80.. code-block:: typoscript
81
82   plugin.tx_felogin_login {
83     settings {
84       email{
85         templateRootPaths {
86           20 = EXT:myext/Resources/Private/Templates/Email/
87         }
88       }
89     }
90   }
91
92
93Impact
94======
95
96No direct impact. Only used, if feature toggle "felogin.extbase" is explicitly turned on.
97
98.. index:: Database, FlexForm, Fluid, Frontend, TypoScript, ext:felogin
99