public function setUserAgreed(UserInterface $user) { if ($this->hasAgreedToLatestTerms($user)) { return; } $latest = $this->termsRepo->findLatestTerms(); $agreement = new Agreement(); $agreement->setUser($user)->setTermsOfService($latest); $this->em->persist($agreement); $this->em->flush(); }
/** * @Route("/terms/agree", name="tos_agree") * @Template() */ public function askAction(Request $request) { $termsRepo = $this->getDoctrine()->getRepository('LoginCidadaoTOSBundle:TermsOfService'); $latest = $termsRepo->findLatestTerms(); if (!$latest instanceof TOSInterface || $this->agreedToTermsOfService()) { return $this->continueNavigation($request); } $agreement = new Agreement(); $agreement->setTermsOfService($latest)->setUser($this->getUser()); $form = $this->getAgreementForm($agreement); $form->handleRequest($request); if ($form->isValid()) { $em = $this->getDoctrine()->getManager(); $em->persist($agreement); $em->flush(); return $this->continueNavigation($request); } return compact('latest', 'form'); }