Esempio n. 1
0
 /**
  * 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;
 }
Esempio n. 2
0
 /**
  * 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;
 }
Esempio n. 3
0
 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);
 }
Esempio n. 4
0
 /**
  * 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;
 }
Esempio n. 5
0
 /**
  * @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));
 }
Esempio n. 6
0
 /**
  *   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;
     }
 }
Esempio n. 7
0
 /**
  * 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;
 }