get('session')->get('user')) { $this->get('session')->set( 'redirect_to', $this->generateUrl('enigma', ['enigma' => null !== $enigma ? $enigma : null]) ); return $this->redirectToRoute('enigma_login'); } return []; } /** * @Route("/enigma/login", name="enigma_login") * @Template() */ public function loginAction(Request $request) { $redirectTo = $this->get('session')->get('redirect_to'); $redirect = $redirectTo ? $this->redirect($redirectTo) : $this->redirectToRoute('enigma'); if ($this->get('session')->get('user')) { return $redirect; } $form = $this->createFormBuilder() ->add('username', TextType::class, ['required' => true]) ->add('password', PasswordType::class, ['required' => true]) ->add('Se connecter', SubmitType::class) ->getForm(); if ($request->isMethod('post')) { $form->handleRequest($request); if ($form->isValid()) { $user = $this->getDoctrine() ->getRepository('MmiEnigmaBundle:Team') ->findOneBy([ 'username' => $form->getData()['username'], 'password' => $form->getData()['password'], ]); if ($user === null) { $invalid = true; } else { $this->get('session')->set('user', $user); return $redirect; } } } return [ 'form' => $form->createView(), 'invalid' => !empty($invalid), ]; } }