/** * Create user event record in database * * @param $event */ public function createUserEvent($event) { $userEvent = new UserEvent(); $userEvent->setIdUser($this->user); $userEvent->setIdEvent($event); $userEvent->setPaid(0); $userEvent->setAcceptedUser(0); $userEvent->setAcceptedHost(0); $this->em->persist($userEvent); $this->em->flush(); }
/** * Join event with secret code * * @Route("/{id}/join/{secretCode}", name="secret_join_event") * @Method("GET") */ public function secretJoinAction($id, $secretCode, Request $request) { $securityAuthorizationChecker = $this->container->get('security.authorization_checker'); $securityTokenStorage = $this->get('security.token_storage'); if ($securityAuthorizationChecker->isGranted('IS_AUTHENTICATED_REMEMBERED')) { $user = $securityTokenStorage->getToken()->getUser(); $em = $this->getDoctrine()->getManager(); $eventRepository = $em->getRepository('cooFoodEventBundle:Event'); $event = $eventRepository->findOneByid($id); $eventApproveFlag = $event->getReqApprove(); $userEventRepository = $em->getRepository('cooFoodEventBundle:UserEvent'); $invitedUserRepository = $em->getRepository('cooFoodEventBundle:InvitedUser'); $invitedUser = $invitedUserRepository->findOneBysecretCode($secretCode); if ($invitedUser && $invitedUser->getEmail() === $user->getEmail()) { $userEvent = $userEventRepository->findBy(array('idEvent' => $id, 'idUser' => $user->getId())); if (!$userEvent) { $entity = new UserEvent(); $entity->setIdUser($user); $entity->setIdEvent($event); $entity->setPaid(0); $entity->setAcceptedUser($eventApproveFlag); $entity->setAcceptedHost($eventApproveFlag); $em->persist($entity); $em->remove($invitedUser); $em->flush(); } $request->getSession()->getFlashBag()->add('success', 'Sveikiname prisijungus prie renginio!'); return $this->redirectToRoute('event_show', ['id' => $id]); } else { $request->getSession()->getFlashBag()->add('error', 'Svetimas kvietimas į renginį negalioja!'); return $this->redirect('/'); } } else { $request->getSession()->getFlashBag()->add('error', 'Prisijunkite/užsiregistruokite prie sistemos, o tada panaudokite kvietimo nuorodą'); return $this->redirect('/login'); } }