public function onRegistrationSuccess(FormEvent $event)
 {
     /** @var User $user */
     $user = $event->getForm()->getData();
     $apiToken = substr($this->tokenGenerator->generateToken(), 0, 20);
     $user->setApiToken($apiToken);
 }
 public function sendWelcomeEmail(User $user)
 {
     $token = $this->tokenGenerator->generateToken();
     $link = $this->router->generate('fos_user_registration_register', array('token' => $token), true);
     $this->mailer->sendMail($this->translator->trans('jwkh.publishers.email.welcome.subject', array(), null, $user->getPublisher()->getCongregation()->getDefaultLocale()), '*****@*****.**', $user->getEmail(), $this->translator->trans('jwkh.publishers.email.welcome.body', array('%link%' => $link), null, $user->getPublisher()->getCongregation()->getDefaultLocale()));
     $user->setConfirmationToken($token);
     $this->userManager->updateUser($user);
 }
Beispiel #3
0
 public function add($user)
 {
     $tg = new TokenGenerator();
     $token = new Token();
     $token->setData($tg->generateToken());
     $token->setUser($user);
     $token->setDate(new \Datetime('now'));
     $this->pflush($token);
     return $token;
 }
 public function registerAction(Request $request)
 {
     $allowanceSetting = $this->getDoctrine()->getRepository('OjsAdminBundle:SystemSetting')->findOneBy(['name' => 'user_registration']);
     if ($allowanceSetting) {
         if (!$allowanceSetting->getValue()) {
             return $this->render('OjsSiteBundle:Site:not_available.html.twig', ['title' => 'title.register', 'message' => 'message.registration_not_available']);
         }
     }
     /** @var $formFactory \FOS\UserBundle\Form\Factory\FactoryInterface */
     $formFactory = $this->get('fos_user.registration.form.factory');
     /** @var $userManager \FOS\UserBundle\Model\UserManagerInterface */
     $userManager = $this->get('ojs_user.manager');
     /** @var $dispatcher \Symfony\Component\EventDispatcher\EventDispatcherInterface */
     $dispatcher = $this->get('event_dispatcher');
     /** @var User $user */
     $user = $userManager->createUser();
     $user->setEnabled(true);
     //Add default data for oauth login
     $session = $this->get('session');
     $event = new GetResponseUserEvent($user, $request);
     $dispatcher->dispatch(FOSUserEvents::REGISTRATION_INITIALIZE, $event);
     if (null !== $event->getResponse()) {
         return $event->getResponse();
     }
     $form = $formFactory->createForm();
     $form->setData($user);
     $form->handleRequest($request);
     if ($form->isValid()) {
         $event = new FormEvent($form, $request);
         $dispatcher->dispatch(FOSUserEvents::REGISTRATION_SUCCESS, $event);
         $user->generateApiKey();
         $userManager->updateUser($user);
         $tokenGenerator = new TokenGenerator();
         $user->setConfirmationToken($tokenGenerator->generateToken());
         if (null === ($response = $event->getResponse())) {
             $url = $this->generateUrl('login');
             $response = new RedirectResponse($url);
         }
         $dispatcher->dispatch(FOSUserEvents::REGISTRATION_COMPLETED, new FilterUserResponseEvent($user, $request, $response));
         $session->getFlashBag()->add('success', 'registration.activation');
         $session->save();
         $event = new UserEvent($user);
         $dispatcher = $this->get('event_dispatcher');
         $dispatcher->dispatch('user.register.complete', $event);
         return $response;
     }
     return $this->render('OjsUserBundle:Registration:register.html.twig', array('form' => $form->createView()));
 }
 /**
  * Imports the given user
  * @param int $id Old ID
  * @param bool|true $flush Should be true if the entity should get flushed
  * @return null|User Newly imported user
  * @throws \Doctrine\DBAL\DBALException
  */
 public function importUser($id, $flush = true)
 {
     $this->consoleOutput->writeln("Reading user #" . $id . "... ", true);
     $sql = "SELECT * FROM users WHERE users.user_id = :id " . ImportHelper::spamUsersFilterSql();
     $statement = $this->dbalConnection->prepare($sql);
     $statement->bindValue('id', $id);
     $statement->execute();
     $faker = Factory::create();
     $pkpUser = $statement->fetch();
     $user = null;
     if ($pkpUser) {
         if (!empty($pkpUser['username'])) {
             $user = $this->em->getRepository('OjsUserBundle:User')->findOneBy(['username' => $pkpUser['username']]);
             if (!$user) {
                 $user = $this->em->getRepository('OjsUserBundle:User')->findOneBy(['email' => $pkpUser['email']]);
             }
         }
         if (is_null($user)) {
             $user = new User();
             !empty($pkpUser['username']) ? $user->setUsername($pkpUser['username']) : $user->setUsername($faker->userName);
             !empty($pkpUser['email']) ? $user->setEmail($pkpUser['email']) : $user->setEmail($faker->companyEmail);
             !empty($pkpUser['disabled']) ? $user->setEnabled(!$pkpUser['disabled']) : $user->setEnabled(1);
             // Set a random password
             $password = mb_substr($this->tokenGenerator->generateToken(), 0, 8);
             $user->setPlainPassword($password);
             // Fields which can't be blank
             !empty($pkpUser['first_name']) ? $user->setFirstName($pkpUser['first_name']) : $user->setFirstName('Anonymous');
             !empty($pkpUser['last_name']) ? $user->setLastName($pkpUser['last_name']) : $user->setLastName('Anonymous');
             // Optional fields
             !empty($pkpUser['billing_address']) && $user->setBillingAddress($pkpUser['billing_address']);
             !empty($pkpUser['mailing_address']) && $user->setAddress($pkpUser['mailing_address']);
             !empty($pkpUser['gender']) && $user->setGender($pkpUser['gender']);
             !empty($pkpUser['phone']) && $user->setPhone($pkpUser['phone']);
             !empty($pkpUser['fax']) && $user->setFax($pkpUser['fax']);
             !empty($pkpUser['url']) && $user->setUrl($pkpUser['url']);
             $this->em->persist($user);
             if ($flush) {
                 $this->em->flush();
             }
         }
         return $user;
     }
     return null;
 }
Beispiel #6
0
 public function registerAction(Request $request)
 {
     if (!$request->attributes->get('_system_setting')->isUserRegistrationActive()) {
         return $this->render('OjsSiteBundle:Site:not_available.html.twig', ['title' => 'title.register', 'message' => 'message.registration_not_available']);
     }
     /** @var $formFactory FactoryInterface */
     $formFactory = $this->get('fos_user.registration.form.factory');
     /** @var $userManager UserManagerInterface */
     $userManager = $this->get('ojs_user.manager');
     /** @var $dispatcher EventDispatcherInterface */
     $dispatcher = $this->get('event_dispatcher');
     /** @var User $user */
     $user = $userManager->createUser();
     $user->setEnabled(true);
     $event = new GetResponseUserEvent($user, $request);
     $dispatcher->dispatch(FOSUserEvents::REGISTRATION_INITIALIZE, $event);
     if (null !== $event->getResponse()) {
         return $event->getResponse();
     }
     $form = $formFactory->createForm();
     $form->setData($user);
     $form->handleRequest($request);
     if ($form->isValid()) {
         $event = new FormEvent($form, $request);
         $dispatcher->dispatch(FOSUserEvents::REGISTRATION_SUCCESS, $event);
         $user->generateApiKey();
         $userManager->updateUser($user);
         $tokenGenerator = new TokenGenerator();
         $user->setConfirmationToken($tokenGenerator->generateToken());
         if (null === ($response = $event->getResponse())) {
             $url = $this->generateUrl('login');
             $response = new RedirectResponse($url);
         }
         $dispatcher->dispatch(FOSUserEvents::REGISTRATION_COMPLETED, new FilterUserResponseEvent($user, $request, $response));
         $this->addFlash('success', 'registration.activation');
         $event = new UserEvent($user);
         $dispatcher = $this->get('event_dispatcher');
         $dispatcher->dispatch('user.register.complete', $event);
         return $response;
     }
     return $this->render('OjsUserBundle:Registration:register.html.twig', ['form' => $form->createView()]);
 }
 /**
  * @Route("/email/resend-confirmation", name="lc_resend_confirmation_email")
  */
 public function resendConfirmationEmail()
 {
     $mailer = $this->get('fos_user.mailer');
     $translator = $this->get('translator');
     $person = $this->getUser();
     if (is_null($person->getEmailConfirmedAt())) {
         if (is_null($person->getConfirmationToken())) {
             $tokenGenerator = new TokenGenerator();
             $person->setConfirmationToken($tokenGenerator->generateToken());
             $userManager = $this->get('fos_user.user_manager');
             $userManager->updateUser($person);
         }
         $mailer->sendConfirmationEmailMessage($person);
         $this->get('session')->getFlashBag()->add('success', $translator->trans("email-confirmation.resent"));
     }
     return $this->redirect($this->generateUrl('fos_user_profile_edit'));
 }
 public function RegistrationAction($params = false, Request $request)
 {
     $routeParams = $request->get('_route_params');
     $routeName = $request->get('_route');
     $page_class = $this->get('Page');
     $page = $page_class->GetById($params['page_id']);
     $userManager = $this->container->get('fos_user.user_manager');
     $user = $userManager->createUser();
     $user->setEnabled(false);
     $form = $this->createForm(new RegisterType(), null, array('action' => $this->generateUrl('cmf_page_frontend', array('name' => $page->getUrl())), 'method' => 'POST', 'attr' => array('class' => 'test')));
     $form->setData($user);
     $form->handleRequest($request);
     if ($form->isValid()) {
         $data = $form->getData();
         $by_email = $userManager->findUserByEmail($form->get('email')->getData());
         $by_username = $userManager->findUserByUsername($form->get('username')->getData());
         if (count($by_email)) {
             $form->get('email')->addError(new FormError('Пользовтаель с такой электронной почтой уже зарегистрирован на сайте'));
         }
         if (count($by_username)) {
             $form->get('username')->addError(new FormError('Пользователь с таким именем уже зарегистрирован на сайте'));
         }
         if (count($by_email) == 0 && count($by_username) == 0) {
             $em = $this->getDoctrine()->getManager();
             //$group = $em->getRepository('NovuscomCMFUserBundle:Group')->find(1); // задаем группу
             //$user->addGroup($group);
             $gen = new TokenGenerator();
             $token = $gen->generateToken();
             $user->setConfirmationToken($token);
             $userManager->updateUser($user);
             /*
              * Регистрируем событие
              */
             $dispatcher = $this->container->get('event_dispatcher');
             $event = new CMFUserEvent($user, $params, $request);
             $dispatcher->dispatch(UserEvents::USER_REGISTER, $event);
             $this->get('session')->getFlashBag()->add('ok', 'Спасибо! Вы зарегистрированы на сайте. Теперь вам необходимо подтвердить регистрацию по электронной почте');
             return $this->redirect($this->generateUrl($routeName, array('name' => $page->getUrl())));
         }
     }
     $responseData = array('form' => $form->createView(), 'page' => $page);
     $response = $this->render('@templates/' . $params['params']['template_directory'] . '/Registration/' . $params['template_code'] . '.html.twig', $responseData);
     return $response;
 }
 private function resendEmailConfirmation(PersonInterface $person)
 {
     $mailer = $this->get('fos_user.mailer');
     if (is_null($person->getEmailConfirmedAt())) {
         if (is_null($person->getConfirmationToken())) {
             $tokenGenerator = new TokenGenerator();
             $person->setConfirmationToken($tokenGenerator->generateToken());
             $userManager = $this->get('fos_user.user_manager');
             $userManager->updateUser($person);
         }
         $mailer->sendConfirmationEmailMessage($person);
         $this->flashEmailSent();
         return $this->redirectToRoute('task_confirm_email');
     }
 }
 /**
  * @param User $user
  */
 public function refreshConfirmationToken(User $user)
 {
     $user->setConfirmationToken($this->tokenGenerator->generateToken());
 }