| Code Coverage | ||||||||||
| Classes and Traits | Functions and Methods | Lines | ||||||||
| Total |  | 100.00% | 1 / 1 |  | 100.00% | 1 / 1 | CRAP |  | 100.00% | 10 / 10 | 
| FormFields |  | 100.00% | 1 / 1 |  | 100.00% | 1 / 1 | 2 |  | 100.00% | 10 / 10 | 
| repeated_password |  | 100.00% | 1 / 1 | 1 |  | 100.00% | 10 / 10 | |||
| password | n/a | 0 / 0 | 1 | n/a | 0 / 0 | |||||
| 1 | <?php | 
| 2 | |
| 3 | namespace App\Util\Form; | 
| 4 | |
| 5 | use function App\Core\I18n\_m; | 
| 6 | use App\Util\Common; | 
| 7 | use Symfony\Component\Form\Extension\Core\Type\PasswordType; | 
| 8 | use Symfony\Component\Form\Extension\Core\Type\RepeatedType; | 
| 9 | use Symfony\Component\Validator\Constraints\Length; | 
| 10 | use Symfony\Component\Validator\Constraints\NotBlank; | 
| 11 | |
| 12 | abstract class FormFields | 
| 13 | { | 
| 14 | public static function repeated_password(array $options = []): array | 
| 15 | { | 
| 16 | return ['password', RepeatedType::class, | 
| 17 | ['type' => PasswordType::class, | 
| 18 | 'first_options' => [ | 
| 19 | 'label' => _m('Password'), | 
| 20 | 'label_attr' => ['class' => 'section-form-label'], | 
| 21 | 'attr' => ['placeholder' => '********'], | 
| 22 | 'required' => $options['required'] ?? true, | 
| 23 | |
| 24 | 'constraints' => [ | 
| 25 | new NotBlank(['message' => _m('Please enter a password')]), | 
| 26 | new Length(['min' => Common::config('password', 'min_length'), 'minMessage' => _m(['Your password should be at least # characters'], ['count' => Common::config('password', 'min_length')]), | 
| 27 | 'max' => Common::config('password', 'max_length'), 'maxMessage' => _m(['Your password should be at most # characters'], ['count' => Common::config('password', 'max_length')]), ]), | 
| 28 | ], | 
| 29 | 'help' => _m('Write a password with at least {min_length} characters, and a maximum of {max_length}.', ['min_length' => Common::config('password', 'min_length'), 'max_length' => Common::config('password', 'max_length')]), | 
| 30 | ], | 
| 31 | 'second_options' => [ | 
| 32 | 'label' => _m('Repeat Password'), | 
| 33 | 'label_attr' => ['class' => 'section-form-label'], | 
| 34 | 'attr' => ['placeholder' => '********'], | 
| 35 | 'help' => _m('Confirm your password.'), | 
| 36 | ], | 
| 37 | 'mapped' => false, | 
| 38 | 'invalid_message' => _m('The password fields must match'), | 
| 39 | ], | 
| 40 | ]; | 
| 41 | } | 
| 42 | |
| 43 | /** | 
| 44 | * @codeCoverageIgnore | 
| 45 | */ | 
| 46 | public static function password(array $options = []): array | 
| 47 | { | 
| 48 | ['password', PasswordType::class, [ | 
| 49 | 'label' => _m('Password'), | 
| 50 | 'label_attr' => ['class' => 'section-form-label'], | 
| 51 | 'attr' => ['placeholder' => '********'], | 
| 52 | 'required' => $options['required'] ?? true, | 
| 53 | 'mapped' => false, | 
| 54 | 'constraints' => [ | 
| 55 | new NotBlank(['message' => _m('Please enter a password')]), | 
| 56 | new Length(['min' => Common::config('password', 'min_length'), 'minMessage' => _m(['Your password should be at least # characters'], ['count' => Common::config('password', 'min_length')]), | 
| 57 | 'max' => Common::config('password', 'max_length'), 'maxMessage' => _m(['Your password should be at most # characters'], ['count' => Common::config('password', 'max_length')]), ]), | 
| 58 | ], ], | 
| 59 | ]; | 
| 60 | } | 
| 61 | } |