public function passwortvergessenAction(Request $request) { $securityContext = $this->container->get('security.authorization_checker'); if (!$securityContext->isGranted('IS_AUTHENTICATED_REMEMBERED')) { $mail = new Users(); $form = $this->createFormBuilder($mail)->add('email', 'email')->add('save', 'submit', array('label' => 'Abschicken'))->getForm(); $form->handleRequest($request); if ($form->isValid()) { $formData = $form->getData(); $em = $this->getDoctrine()->getManager(); $user = $em->getRepository('OrthIndexBundle:Users')->findOneBy(array('email' => $formData->getEmail())); if ($user) { $datetime = new \DateTime('tomorrow'); $datetime->format('Y-m-d H:i:s'); $token = new Tokens(); $token->setToken(md5(uniqid())); $token->setExpDate($datetime); $token->setUser($user); $em->persist($token); $em->flush(); $message = \Swift_Message::newInstance()->setSubject('Passwort zurücksetzen')->setFrom('*****@*****.**')->setTo($formData->getEmail())->setContentType("text/html")->setBody($this->renderView('OrthIndexBundle:Mail:passwortreset.html.twig', array('user' => $user, 'token' => $token), 'text/html')); $this->get('mailer')->send($message); $this->get('session')->getFlashBag()->add('notice', 'Wir haben Ihnen eine E-Mail zugeschickt! Bitte folgen Sie dem Link in der E-Mail, um Ihr Passwort zurückzusetzen!'); } else { $this->get('session')->getFlashBag()->add('alert', 'Die E-Mailadresse wurde nicht gefunden! Bitte erstellen Sie sich ein neues Konto!'); } } return $this->render('OrthIndexBundle:Account:passwortvergessen.html.twig', array('form' => $form->createView())); } else { exit; } }
public function newAction($id, Request $request) { $em = $this->getDoctrine()->getManager(); $customer = $em->getRepository('OrthIndexBundle:Customers')->findOneBy(array('id' => $id)); $user = new Users(); $form = $this->createForm(new UserType(), $user); $form->handleRequest($request); if ($form->isValid()) { $formData = $form->getData(); function generateRandomString($length = 10) { $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $charactersLength = strlen($characters); $randomString = ''; for ($i = 0; $i < $length; $i++) { $randomString .= $characters[rand(0, $charactersLength - 1)]; } return $randomString; } $randomPassword = generateRandomString(); $encoderFactory = $this->get('security.encoder_factory'); $encoder = $encoderFactory->getEncoder($user); $salt = '$2a$12$uWepESKverBsrLAuOPY'; $passkeyHash = $encoder->encodePassword($randomPassword, $salt); $user->setPassKey($passkeyHash); $user->setCustomer($customer); $token = new Tokens(); $datetime = new \DateTime('tomorrow'); $datetime->format('Y-m-d H:i:s'); $token->setToken(md5(uniqid())); $token->setExpDate($datetime); $token->setUser($user); $em->persist($token); $em->persist($user); $em->flush(); $message = \Swift_Message::newInstance()->setSubject('Registrierung im OrthShop')->setFrom('*****@*****.**')->setTo($formData->getEmail())->setContentType("text/html")->setBody($this->renderView('OrthIndexBundle:Mail:adminregistrationMail.html.twig', array('user' => $user, 'token' => $token, 'passkey' => $randomPassword), 'text/html')); $this->get('mailer')->send($message); $this->get('session')->getFlashBag()->add('success', 'Der Benutzer wurde erfolgreich gespeichert!'); return $this->redirectToRoute('orth_admin_customer', array('id' => $customer->getId()), 301); } return $this->render('OrthAdminBundle:Users:new.html.twig', array('form' => $form->createView())); }
public function signupAction(Request $request) { $customer = new Customers(); $em = $this->getDoctrine()->getManager(); $form = $this->createForm(new CustomerType(), $customer); $form->handleRequest($request); if ($form->isValid()) { $em = $this->getDoctrine()->getManager(); $formData = $form->getData(); $checkMail = $em->getRepository('OrthIndexBundle:Users')->findOneBy(array('email' => $formData->getEmail())); if ($checkMail == NULL) { $user = new Users(); $customerAddress = new CustomersAddresses(); $token = new Tokens(); $customer->setOrgapegNumber(0); $customer->setInvoiceTerm(0); $customer->setDeliveryTerm(0); $customerAddress->setAddressTitle('Standardadresse'); $customerAddress->setCity($formData->getCity()); $customerAddress->setCompanyName1($formData->getCompanyName1()); $customerAddress->setCompanyName2($formData->getCompanyName2()); $customerAddress->setCompanyName3($formData->getCompanyName3()); $customerAddress->setCountry(1); $customerAddress->setCustomerRef($customer); $customerAddress->setCustomer($customer); $customerAddress->setDefaultDeliveryAddress(1); $customerAddress->setPrimaryAddress(1); $customerAddress->setFirstName($formData->getFirstName()); $customerAddress->setLastName($formData->getLastName()); $customerAddress->setStreet($formData->getStreet()); $customerAddress->setStreet2(''); $customerAddress->setZipcode($formData->getZipcode()); function generateRandomString($length = 10) { $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $charactersLength = strlen($characters); $randomString = ''; for ($i = 0; $i < $length; $i++) { $randomString .= $characters[rand(0, $charactersLength - 1)]; } return $randomString; } $encoderFactory = $this->get('security.encoder_factory'); $encoder = $encoderFactory->getEncoder($user); $salt = '$2a$12$uWepESKverBsrLAuOPY'; $passkeyHash = $encoder->encodePassword($formData->getNewPassword(), $salt); $user->setEmail($formData->getEmail()); $user->setFirstName($formData->getFirstName()); $user->setLastName($formData->getLastName()); $user->setUserGroup(2); $user->setPasskey($passkeyHash); $user->setCustomer($customer); $user->setCustomerRef($customer); $datetime = new \DateTime('tomorrow'); $datetime->format('Y-m-d H:i:s'); $token->setToken(md5(uniqid())); $token->setExpDate($datetime); $token->setUser($user); $em->persist($customer); $em->persist($customerAddress); $em->persist($user); $em->persist($token); $em->flush(); $message = \Swift_Message::newInstance()->setSubject('Registrierung im OrthShop')->setFrom('*****@*****.**')->setTo($formData->getEmail())->setContentType("text/html")->setBody($this->renderView('OrthIndexBundle:Mail:registrationMail.html.twig', array('user' => $user, 'token' => $token), 'text/html')); $this->get('mailer')->send($message); $this->get('session')->getFlashBag()->add('notice', 'Vielen Dank für Ihre Registrierung. Wir haben Ihnen eine E-Mail zur Bestätigung geschickt!'); return $this->redirect($this->generateUrl('orth_index_account')); } else { $this->get('session')->getFlashBag()->add('warning', 'Die E-Mailadresse existiert bereits! Bitte verwenden Sie eine andere E-Mailadresse oder melden Sie sich an.'); } } return $this->render('OrthIndexBundle:Index:signup.html.twig', array('form' => $form->createView())); }