src/Services/PasswordProtectedService.php line 65

Open in your IDE?
  1. <?php
  2. namespace App\Services;
  3. use App\Entity\Cart;
  4. use App\Entity\CartProduct;
  5. use App\Entity\CartProductEquipment;
  6. use App\Entity\CartProductParameterValue;
  7. use App\Entity\Currency;
  8. use App\Entity\Language;
  9. use App\Entity\Product;
  10. use App\Entity\ProductLangParam;
  11. use App\Entity\ProductPriceVariants;
  12. use App\Entity\RebateCode;
  13. use App\Repository\CartRepository;
  14. use App\Repository\DeliveryCountryRepository;
  15. use App\Repository\DeliveryMethodRepository;
  16. use App\Repository\PaymentMethodRepository;
  17. use App\Exception\CartException;
  18. use Doctrine\Common\Collections\ArrayCollection;
  19. use Doctrine\ORM\EntityManagerInterface;
  20. use Symfony\Component\HttpFoundation\JsonResponse;
  21. use Symfony\Component\HttpFoundation\Request;
  22. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  23. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
  24. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  25. use Symfony\Contracts\Translation\TranslatorInterface;
  26. class PasswordProtectedService
  27. {
  28.     private $em;
  29.     private $translator;
  30.     private $cartRepository;
  31.     private $tokenStorage;
  32.     private $session;
  33.     private $productManager;
  34.     /**
  35.      * CartService constructor.
  36.      * @param EntityManagerInterface $em
  37.      * @param TranslatorInterface $translator
  38.      * @param CartRepository $cartRepository
  39.      */
  40.     public function __construct(EntityManagerInterface $emTranslatorInterface $translatorCartRepository $cartRepositoryTokenStorageInterface $tokenStorageSessionInterface $sessionProductManager $productManager) {
  41.         $this->em $em;
  42.         $this->translator $translator;
  43.         $this->cartRepository $cartRepository;
  44.         $this->tokenStorage $tokenStorage;
  45.         $this->session $session;
  46.         $this->productManager $productManager;
  47.     }
  48.     /**
  49.      * Get cart session
  50.      * @return mixed
  51.      */
  52.     public function getCartSession() {
  53.         return $this->session->get('cart_session');
  54.     }
  55.     /**
  56.      * @return string locale
  57.      */
  58.     public function getLocale() {
  59.         return $this->session->get('_locale');
  60.     }
  61.     public function isPasswordProtected() {
  62.         if ($this->session->get('password_provided')) {
  63.             return false;
  64.         }
  65.         /** @var $language Language */
  66.         $language $this->em->getRepository(Language::class)->findOneBy(['locale'=>$this->getLocale(), 'deletedBy'=>null]);
  67.         if ($language and $language->getPasswordProtected()) {
  68.             return true;
  69.         }
  70.         return false;
  71.     }
  72.     public function getSitePassword() {
  73.         /** @var $language Language */
  74.         $language $this->em->getRepository(Language::class)->findOneBy(['locale'=>$this->getLocale(), 'deletedBy'=>null]);
  75.         return $language->getPassword();
  76.     }
  77. }