src/Controller/RegistrationController.php line 55

Open in your IDE?
  1. <?php
  2. // src/Controller/RegistrationController.php
  3. // src/Controller/RegistrationController.php
  4. namespace App\Controller;
  5. use App\Entity\User;
  6. use App\Form\RegistrationFormType;
  7. use Doctrine\ORM\EntityManagerInterface;
  8. use KnpU\OAuth2ClientBundle\Client\ClientRegistry// Richtiges Import
  9. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\HttpFoundation\Response;
  12. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  13. use Symfony\Component\Routing\Annotation\Route;
  14. class RegistrationController extends AbstractController
  15. {
  16.     #[Route('/register'name'app_register')]
  17.     public function register(Request $requestUserPasswordHasherInterface $passwordHasherEntityManagerInterface $entityManager): Response
  18.     {
  19.         // Wenn der Benutzer bereits eingeloggt ist
  20.         if ($this->getUser()) {
  21.             // Flash-Nachricht setzen
  22.             $this->addFlash('error''Du bist bereits registriert und angemeldet.');
  23.             // Weiterleitung zu 'user_interface'
  24.             return $this->redirectToRoute('user_interface');
  25.         }
  26.         $user = new User();
  27.         
  28.         // Setze einen Standardwert für den Namen
  29.         $user->setName('');
  30.         $user->setPaymentMethod('');
  31.         $form $this->createForm(RegistrationFormType::class, $user);
  32.         $form->handleRequest($request);
  33.         if ($form->isSubmitted() && $form->isValid()) {
  34.             // Passwort hashen
  35.             $user->setPassword(
  36.                 $passwordHasher->hashPassword(
  37.                     $user,
  38.                     $form->get('plainPassword')->getData()
  39.                 )
  40.             );  
  41.             $entityManager->persist($user);
  42.             $entityManager->flush();
  43.             // Weiterleitung zur Login-Seite
  44.             return $this->redirectToRoute('app_login');
  45.         }
  46.         return $this->render('user/register.html.twig', [
  47.             'registrationForm' => $form->createView(),
  48.         ]);
  49.     }
  50.     #[Route('/connect/google'name'connect_google_start')]
  51.     public function connectGoogle(ClientRegistry $clientRegistry): Response
  52.     {
  53.         // Verbindung zu Google aufbauen
  54.         return $clientRegistry
  55.             ->getClient('google'// Der Name des Clients aus der Konfiguration
  56.             ->redirect(['email''profile']); // Die gewünschten Berechtigungen
  57.     }
  58.     #[Route('/connect/google/check'name'connect_google_check')]
  59.     public function connectGoogleCheck(Request $request): Response
  60.     {
  61.         // Diese Methode wird vom Bundle nach der Rückkehr von Google aufgerufen
  62.         return $this->redirectToRoute('user_interface');
  63.     }
  64. }