/** * @Route("/admin/user/invite") * @Method("POST") */ public function inviteUserAction(Request $request) { $this->denyAccessUnlessGranted('ROLE_ADMIN', null, 'Unable to access this page!'); $response = new Response(); $data = $request->request->all(); $em = $this->getDoctrine()->getManager(); $checkForExisting = $em->getRepository('AppBundle:Invitation')->findOneByEmail($data['email']); if ($checkForExisting !== null) { throw new \Exception('invitation.exists'); } $user = $this->get('fos_user.user_manager')->findUserBy(['email' => $data['email']]); if ($user !== null) { throw new \Exception('user.exists'); } $form = $this->createForm(InvitationType::class, null, []); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $invitation = new Invitation(); $invitation->setEmail($data['email']); $invitation->send(); $em->persist($invitation); $em->flush(); $response->setStatusCode(204); return $response; } return $form; }