getSale()?->code); } public function setSaleId(int $saleId): self { $this->saleId = $saleId; return $this; } public function setSecurityCode(?string $securityCode): self { $this->securityCode = $securityCode; return $this; } public function getResponse(?Request $request = null) { if (!$this->checkSaleOwnership()) { throw new RedirectException(path('kupshop_user_login_login')); } return parent::getResponse($request); } public function getBodyVariables() { $vars = parent::getBodyVariables(); $vars['sale'] = SalesUtil::wrapSales($this->getSale()); return $vars; } private function checkSaleOwnership(): bool { $userId = Contexts::get(UserContext::class)->getActiveId(); if ($userId && $userId == $this->getSale()->userId) { return true; } if ($this->securityCode && $this->securityCode === $this->salesUtil->getSaleSecurityCode($this->getSale())) { return true; } return false; } private function getSale(): ?Sale { if (!$this->sale) { if (!($this->sale = $this->salesUtil->getSale($this->saleId))) { throw new NotFoundHttpException('Sale not found'); } $this->sale->productCollection->fetchMainImages(2); } return $this->sale; } }