Removed InternalEvent, simplified SecurityContext

This commit is contained in:
franck
2013-08-28 17:52:32 +02:00
parent 253a0b76d8
commit 0361cd1ff2
26 changed files with 630 additions and 610 deletions

View File

@@ -28,8 +28,8 @@ use Thelia\Model\ConfigQuery;
use Thelia\Model\Customer;
use Symfony\Component\HttpFoundation\Request;
use Thelia\Core\HttpFoundation\Session\Session;
use Thelia\Core\Event\Internal\CartEvent;
use Thelia\Core\Event\TheliaEvents;
use Thelia\Core\Event\CartEvent;
trait CartTrait
{
@@ -42,8 +42,9 @@ trait CartTrait
*/
public function getCart(Request $request)
{
$session = $request->getSession();
if (null !== $cart = $request->getSession()->getCart()) {
if (null !== $cart = $session->getCart()) {
return $cart;
}
@@ -55,26 +56,26 @@ trait CartTrait
if ($cart) {
//le panier existe en base
$customer = $request->getSession()->getCustomerUser();
$customer = $session->getCustomerUser();
if ($customer) {
if ($cart->getCustomerId() != $customer->getId()) {
//le customer du panier n'est pas le mm que celui connecté, il faut cloner le panier sans le customer_id
$cart = $this->duplicateCart($cart, $request->getSession(), $customer);
$cart = $this->duplicateCart($cart, $session, $customer);
}
} else {
if ($cart->getCustomerId() != null) {
//il faut dupliquer le panier sans le customer_id
$cart = $this->duplicateCart($cart, $request->getSession());
$cart = $this->duplicateCart($cart, $session);
}
}
} else {
$cart = $this->createCart($request->getSession());
$cart = $this->createCart($session);
}
} else {
//le cookie de panier n'existe pas, il va falloir le créer et faire un enregistrement en base.
$cart = $this->createCart($request->getSession());
$cart = $this->createCart($session);
}
return $cart;
@@ -116,7 +117,7 @@ trait CartTrait
$cartEvent = new CartEvent($newCart);
$this->getDispatcher()->dispatch(TheliaEvents::CART_DUPLICATE, $cartEvent);
return $cartEvent->cart;
return $cartEvent->getCart();
}
protected function generateCookie()
@@ -131,4 +132,4 @@ trait CartTrait
return $id;
}
}
}