feat: ensure teamer accepts terms when confirming driver's license
This commit is contained in:
@@ -6,6 +6,7 @@ use App\Model\DriverLicenseDeclarationDto;
|
||||
use App\Model\UploadSessionDto;
|
||||
use App\Service\Upload\UploadHandler;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\Form\FormInterface;
|
||||
@@ -16,13 +17,18 @@ class DriverLicenseDeclarationType extends AbstractType
|
||||
{
|
||||
public function buildForm(FormBuilderInterface $builder, array $options): void
|
||||
{
|
||||
$builder->add('hasDriverLicense', ChoiceType::class, [
|
||||
'label' => 'Besitzt du einen gültigen Führerschein?',
|
||||
'choices' => [
|
||||
'Ja' => true,
|
||||
'Nein' => false,
|
||||
],
|
||||
]);
|
||||
$builder
|
||||
->add('hasDriverLicense', ChoiceType::class, [
|
||||
'label' => 'Besitzt du einen gültigen Führerschein?',
|
||||
'choices' => [
|
||||
'Ja' => true,
|
||||
'Nein' => false,
|
||||
],
|
||||
])
|
||||
->add('confirmTermsOfUse', CheckboxType::class, [
|
||||
'label' => 'Ich bestätige, die KfZ-Nutzungsbedingungen gelesen zu haben und stimme ihnen zu.',
|
||||
])
|
||||
;
|
||||
}
|
||||
|
||||
public function buildView(FormView $view, FormInterface $form, array $options): void
|
||||
|
||||
@@ -3,11 +3,26 @@
|
||||
namespace App\Model;
|
||||
|
||||
use Symfony\Component\Validator\Constraints as Assert;
|
||||
use Symfony\Component\Validator\Context\ExecutionContextInterface;
|
||||
|
||||
class DriverLicenseDeclarationDto
|
||||
{
|
||||
#[Assert\NotNull(message: 'Bitte gib an, ob du einen Führerschein hast.')]
|
||||
private ?bool $hasDriverLicense = null;
|
||||
private ?bool $hasDriverLicense;
|
||||
|
||||
private ?bool $confirmTermsOfUse = false;
|
||||
|
||||
#[Assert\Callback]
|
||||
public function validateTermsOfUse(ExecutionContextInterface $executionContext): void
|
||||
{
|
||||
if (true === $this->hasDriverLicense() && true !== $this->getConfirmTermsOfUse()) {
|
||||
$executionContext
|
||||
->buildViolation('Bitte bestätige die KfZ-Nutzungsbedingungen.')
|
||||
->atPath('confirmTermsOfUse')
|
||||
->addViolation()
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
public function __construct(?bool $hasDriverLicense = null)
|
||||
{
|
||||
@@ -25,4 +40,17 @@ class DriverLicenseDeclarationDto
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getConfirmTermsOfUse(): ?bool
|
||||
{
|
||||
return $this->confirmTermsOfUse;
|
||||
}
|
||||
|
||||
public function setConfirmTermsOfUse(?bool $confirmTermsOfUse): static
|
||||
{
|
||||
$this->confirmTermsOfUse = $confirmTermsOfUse;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user