public function onRegistrationSuccess(FormEvent $event)
 {
     if ($event->getRequest()->isXmlHttpRequest()) {
         /** @var $user \FOS\UserBundle\Model\UserInterface */
         $user = $event->getForm()->getData();
         $user->setEnabled(false);
         if (null === $user->getConfirmationToken()) {
             $user->setConfirmationToken($this->tokenGenerator->generateToken());
         }
         $this->mailer->sendConfirmationEmailMessage($user);
         $this->session->set('fos_user_send_confirmation_email/email', $user->getEmail());
         $data = array('success' => true);
         $event->setResponse(new \Symfony\Component\HttpFoundation\JsonResponse($data));
     } else {
         return parent::onRegistrationSuccess($event);
     }
 }
예제 #2
0
 public function onRegistrationCompleted(FilterUserResponseEvent $event)
 {
     $user = $event->getUser();
     $auth = new Authorization();
     $auth->setPerson($user);
     $auth->setClient($this->clientRepository->findOneBy(['uid' => $this->defaultClientUid]));
     $auth->setScope(explode(' ', $this->lcSupportedScopes));
     $this->em->persist($auth);
     $this->em->flush();
     $this->mailer->sendConfirmationEmailMessage($user);
     if (strlen($user->getPassword()) == 0) {
         // TODO: DEPRECATE NOTIFICATIONS
         // TODO: create an optional task offering users to set a password
         //$this->notificationsHelper->enforceEmptyPasswordNotification($user);
     }
     $this->registerRequestedScope->clearRequestedScope($event->getRequest());
 }