wireweb/src/Controller/IndexController.php

75 lines
2.3 KiB
PHP

<?php
// src/Controller/LuckyController.php
namespace App\Controller;
use App\Entity\WireguardRequest;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Request;
class IndexController extends AbstractController
{
#[Route('/success', name: 'app_default_form_success')]
public function form_success() {
return $this->render('success.html.twig', []);
}
#[Route('/fail', name: 'app_default_form_fail')]
public function form_fail() {
return $this->render('fail.html.twig', []);
}
#[Route('/', name: 'app_default_form')]
public function form(Request $request): Response
{
$wireguardRequest = new WireguardRequest();
$wireguardRequest->setAuthToken(sha1(random_bytes(255)));
$form = $this->createFormBuilder($wireguardRequest)
->add('email', EmailType::class)
//->add('publicKey', TextType::class)
->add('submit', SubmitType::class)
->getForm();
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
// $form->getData() holds the submitted values
// but, the original `$task` variable has also been updated
$wireguardRequest->setEmail($form->get('email')->getData());
if(str_ends_with($wireguardRequest->getEmail(), '@chaospott.de')) {
$model = new \App\Model\RequestsSqlite();
$model->addRequest($wireguardRequest);
// send E-Mail
return $this->redirectToRoute('app_default_form_success');
} else {
return $this->redirectToRoute('app_default_form_fail');
}
// ... perform some action, such as saving the task to the database
//return $this->redirectToRoute('task_success');
}
return $this->render('wireguardRequest.html.twig', [
'form' => $form,
]);
}
}