feat: forced teamer data verification after configured due dates

addresses #869b33c7p
This commit is contained in:
Björn Fromme
2026-03-15 12:42:28 +01:00
parent 20da6a0afc
commit 518bc7339f
19 changed files with 357 additions and 14 deletions
@@ -9,6 +9,7 @@ use App\Entity\Upload;
use App\Entity\User;
use App\Form\TeamerProfileType;
use App\Model\UploadSessionDto;
use App\RequiredTeamerCheck\PersonalDataVerificationRequiredCheck;
use App\Service\Upload\UploadHandler;
use Doctrine\ORM\EntityManagerInterface;
use Psr\Log\LoggerInterface;
@@ -27,6 +28,7 @@ class IndexController extends AbstractController
private readonly ApiClient $apiClient,
private readonly UploadHandler $uploadHandler,
private readonly LoggerInterface $logger,
private readonly PersonalDataVerificationRequiredCheck $personalDataVerificationRequiredCheck,
) {
}
@@ -53,8 +55,11 @@ class IndexController extends AbstractController
// Validate teamer data to show missing data right away
$errors = $this->validator->validate($teamer, null, ['profile_preflight']);
$verificationMode = false === $this->personalDataVerificationRequiredCheck->isSatisfied($user);
$form = $this->createForm(TeamerProfileType::class, $teamer, [
'upload_session' => $uploadSession,
'verification_mode' => $verificationMode,
]);
$form->handleRequest($request);
@@ -66,6 +71,10 @@ class IndexController extends AbstractController
} catch (ApiClientException $e) {
}
if (true === $verificationMode) {
$teamer->setDataVerifiedAt(new \DateTimeImmutable());
}
$this->entityManager->flush();
$this->addFlash('success', 'Deine Daten wurden aktualisiert');
@@ -81,6 +90,7 @@ class IndexController extends AbstractController
'form' => $form->createView(),
'teamer' => $teamer,
'errors' => $errors,
'verification_mode' => $verificationMode,
]);
}