/** * Find product in cart * * @param \Aisel\FrontendUserBundle\Entity\FrontendUser $user * @param \Aisel\ProductBundle\Entity\Product $product * * @return \Aisel\CartBundle\Entity\Cart $cartItem */ public function findProduct($user, $product) { $query = $this->getEntityManager()->createQueryBuilder(); $query->select('c')->from('AiselCartBundle:Cart', 'c')->where('c.product = :productId')->setParameter('productId', $product->getId())->andWhere('c.frontenduser = :userId')->setParameter('userId', $user->getId()); $cartItem = $query->getQuery()->getResult(); if ($cartItem) { return $cartItem[0]; } return false; }
/** * newFrontendUser * * @param string $username * @param string $password * @return FrontendUser $frontendUser */ public function newFrontendUser($username, $password) { $user = new FrontendUser(); $user->setUsername($username); $user->setEmail($this->faker->email); $user->setPlainPassword($password); $this->em->persist($user); $this->em->flush(); return $user; }
public function testUserPasswordListener() { $user = new FrontendUser(); $user->setUsername($this->faker->userName); $user->setEmail($this->faker->email); $user->setPlainPassword($this->faker->password()); $this->em->persist($user); $this->em->flush(); $this->assertNotEmpty($user->getId()); $this->removeEntity($user); }
/** * Creates user, specially for fixtures * * @param array $userData * * @return FrontendUser $user */ public function registerFixturesUser(array $userData) { $user = new FrontendUser(); $user->setEmail($userData['email']); $user->setUsername($userData['username']); $user->setPlainPassword($userData['password']); $user->setEnabled($userData['enabled']); $user->setLocked($userData['locked']); $user->setLastLogin(new \DateTime(date('Y-m-d H:i:s'))); $user->setPhone($userData['phone']); $user->setWebsite($userData['website']); $user->setFacebook($userData['facebook']); $user->setTwitter($userData['twitter']); $user->setAbout($userData['about']); $this->em->persist($user); $this->em->flush(); return $user; }
/** * @param FrontendUser $user */ protected function loginUser(FrontendUser $user) { $token = new UsernamePasswordToken($user, null, 'main', $user->getRoles()); $this->get('security.context')->setToken($token); $this->get('session')->set('_security_main', serialize($token)); }
/** * Reset and send password by email */ public function resetPassword(FrontendUser $user) { if ($user) { $utility = new PasswordUtility(); $password = $utility->generatePassword(); $user->setPlainPassword($password); $this->dm->persist($user); $this->dm->flush(); // Send password via email try { $message = \Swift_Message::newInstance()->setSubject('Password reset')->setFrom($this->websiteEmail)->setTo($user->getEmail())->setBody($this->templating->render('AiselFrontendUserBundle:Email:newPassword.txt.twig', array('username' => $user->getUsername(), 'password' => $password))); $response = $this->mailer->send($message); } catch (\Swift_TransportException $e) { $response = $e->getMessage(); } return $response; } else { return false; } }
/** * Create order for given userId * * @param FrontendUser $user * @param mixed $orderInfo * * @throws LogicException * * @return Order $order */ public function createOrderFromCart(FrontendUser $user, $orderInfo) { if (!$user) { throw new LogicException('User object is missing'); } if (count($user->getCart()) == 0) { throw new LogicException('User cart is empty'); } $order = $this->em->getRepository('AiselOrderBundle:Order')->createOrderFromCartForUser($user, $this->getCurrencyCode($orderInfo['locale']), $orderInfo); return $order; }