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); }
/** * 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; }
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())); }
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()); }