Exemplo n.º 1
0
 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;
     }
 }
Exemplo n.º 2
0
 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()));
 }
Exemplo n.º 3
0
 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()));
 }