Skip to content

Commit 159b261

Browse files
authored
Merge pull request #720 from magento-jackalopes/MAGETWO-58455-n-MAGETWO-58463
Fixed issues: - MAGETWO-58551 Remove uses of unserialize in Module_Quote - MAGETWO-58455 Remove uses of unserialize in \Magento\Framework\Model\ ResourceModel\Db\AbstractDb and its child classes and their usages - MAGETWO-58463 Remove uses of unserialize in Module_Sales - MAGETWO-61872 Create FieldDataConverter - MAGETWO-62133 Create QueryModifier to select only options of type file and info_buyRequest
2 parents 3c0c8c7 + f931b34 commit 159b261

File tree

107 files changed

+4400
-875
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

107 files changed

+4400
-875
lines changed

app/code/Magento/Bundle/Block/Adminhtml/Sales/Order/Items/Renderer.php

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,42 @@
66
namespace Magento\Bundle\Block\Adminhtml\Sales\Order\Items;
77

88
use Magento\Catalog\Model\Product\Type\AbstractType;
9+
use Magento\Framework\Serialize\Serializer\Json;
910

1011
/**
1112
* Adminhtml sales order item renderer
1213
*/
1314
class Renderer extends \Magento\Sales\Block\Adminhtml\Items\Renderer\DefaultRenderer
1415
{
16+
/**
17+
* Serializer
18+
*
19+
* @var Json
20+
*/
21+
private $serializer;
22+
23+
/**
24+
* @param \Magento\Backend\Block\Template\Context $context
25+
* @param \Magento\CatalogInventory\Api\StockRegistryInterface $stockRegistry
26+
* @param \Magento\CatalogInventory\Api\StockConfigurationInterface $stockConfiguration
27+
* @param \Magento\Framework\Registry $registry
28+
* @param array $data
29+
* @param \Magento\Framework\Serialize\Serializer\Json $serializer
30+
*/
31+
public function __construct(
32+
\Magento\Backend\Block\Template\Context $context,
33+
\Magento\CatalogInventory\Api\StockRegistryInterface $stockRegistry,
34+
\Magento\CatalogInventory\Api\StockConfigurationInterface $stockConfiguration,
35+
\Magento\Framework\Registry $registry,
36+
array $data = [],
37+
Json $serializer = null
38+
) {
39+
$this->serializer = $serializer ?: \Magento\Framework\App\ObjectManager::getInstance()
40+
->get(Json::class);
41+
42+
parent::__construct($context, $stockRegistry, $stockConfiguration, $registry, $data);
43+
}
44+
1545
/**
1646
* Truncate string
1747
*
@@ -153,7 +183,7 @@ public function getSelectionAttributes($item)
153183
$options = $item->getOrderItem()->getProductOptions();
154184
}
155185
if (isset($options['bundle_selection_attributes'])) {
156-
return unserialize($options['bundle_selection_attributes']);
186+
return $this->serializer->unserialize($options['bundle_selection_attributes']);
157187
}
158188
return null;
159189
}

app/code/Magento/Bundle/Block/Adminhtml/Sales/Order/View/Items/Renderer.php

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,54 @@
66
namespace Magento\Bundle\Block\Adminhtml\Sales\Order\View\Items;
77

88
use Magento\Catalog\Model\Product\Type\AbstractType;
9+
use Magento\Framework\Serialize\Serializer\Json;
910

1011
/**
1112
* Adminhtml sales order item renderer
1213
*/
1314
class Renderer extends \Magento\Sales\Block\Adminhtml\Order\View\Items\Renderer\DefaultRenderer
1415
{
16+
/**
17+
* Serializer
18+
*
19+
* @var Json
20+
*/
21+
private $serializer;
22+
23+
/**
24+
* @param \Magento\Backend\Block\Template\Context $context
25+
* @param \Magento\CatalogInventory\Api\StockRegistryInterface $stockRegistry
26+
* @param \Magento\CatalogInventory\Api\StockConfigurationInterface $stockConfiguration
27+
* @param \Magento\Framework\Registry $registry
28+
* @param \Magento\GiftMessage\Helper\Message $messageHelper
29+
* @param \Magento\Checkout\Helper\Data $checkoutHelper
30+
* @param array $data
31+
* @param \Magento\Framework\Serialize\Serializer\Json $serializer
32+
*/
33+
public function __construct(
34+
\Magento\Backend\Block\Template\Context $context,
35+
\Magento\CatalogInventory\Api\StockRegistryInterface $stockRegistry,
36+
\Magento\CatalogInventory\Api\StockConfigurationInterface $stockConfiguration,
37+
\Magento\Framework\Registry $registry,
38+
\Magento\GiftMessage\Helper\Message $messageHelper,
39+
\Magento\Checkout\Helper\Data $checkoutHelper,
40+
array $data = [],
41+
Json $serializer = null
42+
) {
43+
$this->serializer = $serializer ?: \Magento\Framework\App\ObjectManager::getInstance()
44+
->get(Json::class);
45+
46+
parent::__construct(
47+
$context,
48+
$stockRegistry,
49+
$stockConfiguration,
50+
$registry,
51+
$messageHelper,
52+
$checkoutHelper,
53+
$data
54+
);
55+
}
56+
1557
/**
1658
* Truncate string
1759
*
@@ -110,7 +152,7 @@ public function getSelectionAttributes($item)
110152
$options = $item->getOrderItem()->getProductOptions();
111153
}
112154
if (isset($options['bundle_selection_attributes'])) {
113-
return unserialize($options['bundle_selection_attributes']);
155+
return $this->serializer->unserialize($options['bundle_selection_attributes']);
114156
}
115157
return null;
116158
}

app/code/Magento/Bundle/Block/Sales/Order/Items/Renderer.php

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
namespace Magento\Bundle\Block\Sales\Order\Items;
77

88
use Magento\Catalog\Model\Product\Type\AbstractType;
9+
use Magento\Framework\Serialize\Serializer\Json;
910

1011
/**
1112
* Order item render block
@@ -14,6 +15,33 @@
1415
*/
1516
class Renderer extends \Magento\Sales\Block\Order\Item\Renderer\DefaultRenderer
1617
{
18+
/**
19+
* Serializer
20+
*
21+
* @var Json
22+
*/
23+
private $serializer;
24+
25+
/**
26+
* @param \Magento\Framework\View\Element\Template\Context $context
27+
* @param \Magento\Framework\Stdlib\StringUtils $string
28+
* @param \Magento\Catalog\Model\Product\OptionFactory $productOptionFactory
29+
* @param array $data
30+
* @param \Magento\Framework\Serialize\Serializer\Json $serializer
31+
*/
32+
public function __construct(
33+
\Magento\Framework\View\Element\Template\Context $context,
34+
\Magento\Framework\Stdlib\StringUtils $string,
35+
\Magento\Catalog\Model\Product\OptionFactory $productOptionFactory,
36+
array $data = [],
37+
Json $serializer = null
38+
) {
39+
$this->serializer = $serializer ?: \Magento\Framework\App\ObjectManager::getInstance()
40+
->get(Json::class);
41+
42+
parent::__construct($context, $string, $productOptionFactory, $data);
43+
}
44+
1745
/**
1846
* @param mixed $item
1947
* @return bool
@@ -100,7 +128,7 @@ public function getSelectionAttributes($item)
100128
$options = $item->getOrderItem()->getProductOptions();
101129
}
102130
if (isset($options['bundle_selection_attributes'])) {
103-
return unserialize($options['bundle_selection_attributes']);
131+
return $this->serializer->unserialize($options['bundle_selection_attributes']);
104132
}
105133
return null;
106134
}

app/code/Magento/Bundle/Helper/Catalog/Product/Configuration.php

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,21 +35,32 @@ class Configuration extends AbstractHelper implements ConfigurationInterface
3535
*/
3636
protected $escaper;
3737

38+
/**
39+
* Serializer interface instance.
40+
*
41+
* @var \Magento\Framework\Serialize\Serializer\Json
42+
*/
43+
private $serializer;
44+
3845
/**
3946
* @param \Magento\Framework\App\Helper\Context $context
4047
* @param \Magento\Catalog\Helper\Product\Configuration $productConfiguration
4148
* @param \Magento\Framework\Pricing\Helper\Data $pricingHelper
4249
* @param \Magento\Framework\Escaper $escaper
50+
* @param \Magento\Framework\Serialize\Serializer\Json|null $serializer
4351
*/
4452
public function __construct(
4553
\Magento\Framework\App\Helper\Context $context,
4654
\Magento\Catalog\Helper\Product\Configuration $productConfiguration,
4755
\Magento\Framework\Pricing\Helper\Data $pricingHelper,
48-
\Magento\Framework\Escaper $escaper
56+
\Magento\Framework\Escaper $escaper,
57+
\Magento\Framework\Serialize\Serializer\Json $serializer = null
4958
) {
5059
$this->productConfiguration = $productConfiguration;
5160
$this->pricingHelper = $pricingHelper;
5261
$this->escaper = $escaper;
62+
$this->serializer = $serializer ?: \Magento\Framework\App\ObjectManager::getInstance()
63+
->get(\Magento\Framework\Serialize\Serializer\Json::class);
5364
parent::__construct($context);
5465
}
5566

@@ -113,15 +124,18 @@ public function getBundleOptions(ItemInterface $item)
113124

114125
// get bundle options
115126
$optionsQuoteItemOption = $item->getOptionByCode('bundle_option_ids');
116-
$bundleOptionsIds = $optionsQuoteItemOption ? unserialize($optionsQuoteItemOption->getValue()) : [];
127+
$bundleOptionsIds = $optionsQuoteItemOption
128+
? $this->serializer->unserialize($optionsQuoteItemOption->getValue())
129+
: [];
130+
117131
if ($bundleOptionsIds) {
118132
/** @var \Magento\Bundle\Model\ResourceModel\Option\Collection $optionsCollection */
119133
$optionsCollection = $typeInstance->getOptionsByIds($bundleOptionsIds, $product);
120134

121135
// get and add bundle selections collection
122136
$selectionsQuoteItemOption = $item->getOptionByCode('bundle_selection_ids');
123137

124-
$bundleSelectionIds = unserialize($selectionsQuoteItemOption->getValue());
138+
$bundleSelectionIds = $this->serializer->unserialize($selectionsQuoteItemOption->getValue());
125139

126140
if (!empty($bundleSelectionIds)) {
127141
$selectionsCollection = $typeInstance->getSelectionsByIds($bundleSelectionIds, $product);

app/code/Magento/Bundle/Model/Product/Price.php

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,13 @@ class Price extends \Magento\Catalog\Model\Product\Type\Price
3939
*/
4040
protected $_catalogData = null;
4141

42+
/**
43+
* Serializer interface instance.
44+
*
45+
* @var \Magento\Framework\Serialize\Serializer\Json
46+
*/
47+
private $serializer;
48+
4249
/**
4350
* Price constructor.
4451
*
@@ -52,7 +59,7 @@ class Price extends \Magento\Catalog\Model\Product\Type\Price
5259
* @param \Magento\Catalog\Api\Data\ProductTierPriceInterfaceFactory $tierPriceFactory
5360
* @param \Magento\Framework\App\Config\ScopeConfigInterface $config
5461
* @param \Magento\Catalog\Helper\Data $catalogData
55-
*
62+
* @param \Magento\Framework\Serialize\Serializer\Json|null $serializer
5663
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
5764
*/
5865
public function __construct(
@@ -65,9 +72,12 @@ public function __construct(
6572
GroupManagementInterface $groupManagement,
6673
\Magento\Catalog\Api\Data\ProductTierPriceInterfaceFactory $tierPriceFactory,
6774
\Magento\Framework\App\Config\ScopeConfigInterface $config,
68-
\Magento\Catalog\Helper\Data $catalogData
75+
\Magento\Catalog\Helper\Data $catalogData,
76+
\Magento\Framework\Serialize\Serializer\Json $serializer = null
6977
) {
7078
$this->_catalogData = $catalogData;
79+
$this->serializer = $serializer ?: \Magento\Framework\App\ObjectManager::getInstance()
80+
->get(\Magento\Framework\Serialize\Serializer\Json::class);
7181
parent::__construct(
7282
$ruleFactory,
7383
$storeManager,
@@ -154,7 +164,7 @@ protected function getBundleSelectionIds(\Magento\Catalog\Model\Product $product
154164
{
155165
$customOption = $product->getCustomOption('bundle_selection_ids');
156166
if ($customOption) {
157-
$selectionIds = unserialize($customOption->getValue());
167+
$selectionIds = $this->serializer->unserialize($customOption->getValue());
158168
if (!empty($selectionIds) && is_array($selectionIds)) {
159169
return $selectionIds;
160170
}

0 commit comments

Comments
 (0)