Skip to content

Commit f82a1f5

Browse files
authored
Merge pull request magento#40 from magento-troll/MAGETWO-58456
MAGETWO-58456: Remove uses of unserialize in \Magento\Rule\Model\AbstractModel and its child classes and their usages
2 parents 6584960 + 01c6cec commit f82a1f5

File tree

3 files changed

+21
-7
lines changed

3 files changed

+21
-7
lines changed

app/code/Magento/CatalogRuleSampleData/Model/Rule.php

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
use Magento\Framework\Setup\SampleData\Context as SampleDataContext;
99
use Magento\CatalogRule\Model\RuleFactory as RuleFactory;
1010
use Magento\CatalogRule\Model\Rule\JobFactory as JobFactory;
11+
use Magento\Framework\Serialize\Serializer\Json;
12+
use Magento\Framework\App\ObjectManager;
1113

1214
/**
1315
* * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
@@ -49,21 +51,28 @@ class Rule
4951
*/
5052
protected $jobFactory;
5153

54+
/**
55+
* @var Json
56+
*/
57+
private $serializer;
58+
5259
/**
5360
* @param SampleDataContext $sampleDataContext
5461
* @param RuleFactory $ruleFactory
5562
* @param JobFactory $jobFactory
5663
* @param \Magento\Catalog\Model\ResourceModel\Category\CollectionFactory $categoryCollectionFactory
5764
* @param \Magento\Customer\Model\GroupFactory $groupFactory
5865
* @param \Magento\Store\Model\WebsiteFactory $websiteFactory
66+
* @param Json $serializer Optional parameter to preserve backward compatibility
5967
*/
6068
public function __construct(
6169
SampleDataContext $sampleDataContext,
6270
RuleFactory $ruleFactory,
6371
JobFactory $jobFactory,
6472
\Magento\Catalog\Model\ResourceModel\Category\CollectionFactory $categoryCollectionFactory,
6573
\Magento\Customer\Model\GroupFactory $groupFactory,
66-
\Magento\Store\Model\WebsiteFactory $websiteFactory
74+
\Magento\Store\Model\WebsiteFactory $websiteFactory,
75+
Json $serializer = null
6776
) {
6877
$this->fixtureManager = $sampleDataContext->getFixtureManager();
6978
$this->csvReader = $sampleDataContext->getCsvReader();
@@ -72,6 +81,7 @@ public function __construct(
7281
$this->categoryCollectionFactory = $categoryCollectionFactory;
7382
$this->groupFactory = $groupFactory;
7483
$this->websiteFactory = $websiteFactory;
84+
$this->serializer = $serializer ?: ObjectManager::getInstance()->get(Json::class);
7585
}
7686

7787
/**
@@ -130,7 +140,11 @@ public function convertSerializedData($data)
130140
}
131141
}
132142
if (!empty($replacement)) {
133-
$data = preg_replace('/' . $matches[0][$matchedId] . '/', serialize($replacement), $data);
143+
$data = preg_replace(
144+
'/' . $matches[0][$matchedId] . '/',
145+
$this->serializer->serialize($replacement),
146+
$data
147+
);
134148
}
135149
}
136150
return $data;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
name,description,simple_action,discount_amount,is_active,conditions_serialized,actions_serialized
2-
"20% off all Women’s and Men’s Pants","20% off all Women’s and Men’s Pants","by_percent",20,1,"a:7:{s:4:""type"";s:48:""Magento\CatalogRule\Model\Rule\Condition\Combine"";s:9:""attribute"";N;s:8:""operator"";N;s:5:""value"";s:1:""1"";s:18:""is_value_processed"";N;s:10:""aggregator"";s:3:""all"";s:10:""conditions"";a:1:{i:0;a:5:{s:4:""type"";s:48:""Magento\CatalogRule\Model\Rule\Condition\Product"";s:9:""attribute"";s:12:""category_ids"";s:8:""operator"";s:2:""()"";s:5:""value"";%url_key=pants-women,url_key=pants-men%s:18:""is_value_processed"";b:0;}}}","a:4:{s:4:""type"";s:48:""Magento\CatalogRule\Model\Rule\Action\Collection"";s:9:""attribute"";N;s:8:""operator"";s:1:""="";s:5:""value"";N;}"
2+
"20% off all Women’s and Men’s Pants","20% off all Women’s and Men’s Pants","by_percent",20,1,"{""type"":""Magento\\CatalogRule\\Model\\Rule\\Condition\\Combine"",""attribute"":null,""operator"":null,""value"":""1"",""is_value_processed"":null,""aggregator"":""all"",""conditions"":[{""type"":""Magento\\CatalogRule\\Model\\Rule\\Condition\\Product"",""attribute"":""category_ids"",""operator"":""()"",""value"":""is_value_processed"",""0"":false}]}","{""type"":""Magento\\CatalogRule\\Model\\Rule\\Action\\Collection"",""attribute"":null,""operator"":""="",""value"":null}"
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name,description,simple_action,discount_amount,discount_step,is_active,stop_rules_processing,is_rss,apply_to_shipping,simple_free_shipping,coupon_type,coupon_code,uses_per_customer,conditions_serialized,actions_serialized
2-
"Buy 3 tee shirts and get the 4th free","Buy 3 tee shirts and get the 4th free","buy_x_get_y",1,3,1,0,1,0,0,1,,,"a:7:{s:4:""type"";s:46:""Magento\SalesRule\Model\Rule\Condition\Combine"";s:9:""attribute"";N;s:8:""operator"";N;s:5:""value"";s:1:""1"";s:18:""is_value_processed"";N;s:10:""aggregator"";s:3:""all"";s:10:""conditions"";a:1:{i:0;a:7:{s:4:""type"";s:52:""Magento\SalesRule\Model\Rule\Condition\Product\Found"";s:9:""attribute"";N;s:8:""operator"";N;s:5:""value"";s:1:""1"";s:18:""is_value_processed"";N;s:10:""aggregator"";s:3:""all"";s:10:""conditions"";a:1:{i:0;a:5:{s:4:""type"";s:46:""Magento\SalesRule\Model\Rule\Condition\Product"";s:9:""attribute"";s:12:""category_ids"";s:8:""operator"";s:2:""()"";s:5:""value"";%url_key=tees-women,url_key=tees-men%s:18:""is_value_processed"";b:0;}}}}}","a:6:{s:4:""type"";s:54:""Magento\SalesRule\Model\Rule\Condition\Product\Combine"";s:9:""attribute"";N;s:8:""operator"";N;s:5:""value"";s:1:""1"";s:18:""is_value_processed"";N;s:10:""aggregator"";s:3:""all"";}"
3-
"Spend $50 or more - shipping is free!","Free shipping on any purchase over $50","by_percent",0,0,1,0,1,0,2,1,,,"a:7:{s:4:""type"";s:46:""Magento\SalesRule\Model\Rule\Condition\Combine"";s:9:""attribute"";N;s:8:""operator"";N;s:5:""value"";s:1:""1"";s:18:""is_value_processed"";N;s:10:""aggregator"";s:3:""all"";s:10:""conditions"";a:1:{i:0;a:5:{s:4:""type"";s:46:""Magento\SalesRule\Model\Rule\Condition\Address"";s:9:""attribute"";s:13:""base_subtotal"";s:8:""operator"";s:2:"">="";s:5:""value"";s:2:""50"";s:18:""is_value_processed"";b:0;}}}","a:6:{s:4:""type"";s:54:""Magento\SalesRule\Model\Rule\Condition\Product\Combine"";s:9:""attribute"";N;s:8:""operator"";N;s:5:""value"";s:1:""1"";s:18:""is_value_processed"";N;s:10:""aggregator"";s:3:""all"";}"
4-
"20% OFF Ever $200-plus purchase!*","Shopping cart price rule for the cart over $200. Does not applied on other sales items","by_percent",20,0,1,0,1,0,0,1,,,"a:7:{s:4:""type"";s:46:""Magento\SalesRule\Model\Rule\Condition\Combine"";s:9:""attribute"";N;s:8:""operator"";N;s:5:""value"";s:1:""1"";s:18:""is_value_processed"";N;s:10:""aggregator"";s:3:""all"";s:10:""conditions"";a:1:{i:0;a:5:{s:4:""type"";s:46:""Magento\SalesRule\Model\Rule\Condition\Address"";s:9:""attribute"";s:13:""base_subtotal"";s:8:""operator"";s:2:"">="";s:5:""value"";s:3:""200"";s:18:""is_value_processed"";b:0;}}}","a:7:{s:4:""type"";s:54:""Magento\SalesRule\Model\Rule\Condition\Product\Combine"";s:9:""attribute"";N;s:8:""operator"";N;s:5:""value"";s:1:""1"";s:18:""is_value_processed"";N;s:10:""aggregator"";s:3:""all"";s:10:""conditions"";a:1:{i:0;a:7:{s:4:""type"";s:54:""Magento\SalesRule\Model\Rule\Condition\Product\Combine"";s:9:""attribute"";N;s:8:""operator"";N;s:5:""value"";s:1:""0"";s:18:""is_value_processed"";N;s:10:""aggregator"";s:3:""all"";s:10:""conditions"";a:2:{i:0;a:5:{s:4:""type"";s:46:""Magento\SalesRule\Model\Rule\Condition\Product"";s:9:""attribute"";s:12:""category_ids"";s:8:""operator"";s:2:""=="";s:5:""value"";%url_key=watches%s:18:""is_value_processed"";b:0;}i:1;a:5:{s:4:""type"";s:46:""Magento\SalesRule\Model\Rule\Condition\Product"";s:9:""attribute"";s:4:""sale"";s:8:""operator"";s:2:""=="";s:5:""value"";s:1:""1"";s:18:""is_value_processed"";b:0;}}}}}"
5-
"$4 Luma water bottle (save 70%)","Use promo code H20 at checkout","by_percent",70,0,1,0,1,0,0,2,H20,1,"a:7:{s:4:""type"";s:46:""Magento\SalesRule\Model\Rule\Condition\Combine"";s:9:""attribute"";N;s:8:""operator"";N;s:5:""value"";s:1:""1"";s:18:""is_value_processed"";N;s:10:""aggregator"";s:3:""all"";s:10:""conditions"";a:1:{i:0;a:6:{s:4:""type"";s:52:""Magento\SalesRule\Model\Rule\Condition\Product\Found"";s:9:""attribute"";N;s:8:""operator"";N;s:5:""value"";s:1:""1"";s:18:""is_value_processed"";N;s:10:""aggregator"";s:3:""all"";}}}","a:7:{s:4:""type"";s:54:""Magento\SalesRule\Model\Rule\Condition\Product\Combine"";s:9:""attribute"";N;s:8:""operator"";N;s:5:""value"";s:1:""1"";s:18:""is_value_processed"";N;s:10:""aggregator"";s:3:""all"";s:10:""conditions"";a:1:{i:0;a:5:{s:4:""type"";s:46:""Magento\SalesRule\Model\Rule\Condition\Product"";s:9:""attribute"";s:3:""sku"";s:8:""operator"";s:2:""=="";s:5:""value"";s:7:""24-UG06"";s:18:""is_value_processed"";b:0;}}}"
2+
"Buy 3 tee shirts and get the 4th free","Buy 3 tee shirts and get the 4th free","buy_x_get_y",1,3,1,0,1,0,0,1,,,"{""type"":""Magento\\SalesRule\\Model\\Rule\\Condition\\Combine"",""attribute"":null,""operator"":null,""value"":""1"",""is_value_processed"":null,""aggregator"":""all"",""conditions"":[{""type"":""Magento\\SalesRule\\Model\\Rule\\Condition\\Product\\Found"",""attribute"":null,""operator"":null,""value"":""1"",""is_value_processed"":null,""aggregator"":""all"",""conditions"":[{""type"":""Magento\\SalesRule\\Model\\Rule\\Condition\\Product"",""attribute"":""category_ids"",""operator"":""()"",""value"":""url_key=tees-women,url_key=tees-men"",""is_value_processed"":false}]}]}","{""type"":""Magento\\SalesRule\\Model\\Rule\\Condition\\Product\\Combine"",""attribute"":null,""operator"":null,""value"":""1"",""is_value_processed"":null,""aggregator"":""all""}"
3+
"Spend $50 or more - shipping is free!","Free shipping on any purchase over $50","by_percent",0,0,1,0,1,0,2,1,,,"{""type"":""Magento\\SalesRule\\Model\\Rule\\Condition\\Combine"",""attribute"":null,""operator"":null,""value"":""1"",""is_value_processed"":null,""aggregator"":""all"",""conditions"":[{""type"":""Magento\\SalesRule\\Model\\Rule\\Condition\\Address"",""attribute"":""base_subtotal"",""operator"":"">="",""value"":""50"",""is_value_processed"":false}]}","{""type"":""Magento\\SalesRule\\Model\\Rule\\Condition\\Product\\Combine"",""attribute"":null,""operator"":null,""value"":""1"",""is_value_processed"":null,""aggregator"":""all""}"
4+
"20% OFF Ever $200-plus purchase!*","Shopping cart price rule for the cart over $200. Does not applied on other sales items","by_percent",20,0,1,0,1,0,0,1,,,"{""type"":""Magento\\SalesRule\\Model\\Rule\\Condition\\Combine"",""attribute"":null,""operator"":null,""value"":""1"",""is_value_processed"":null,""aggregator"":""all"",""conditions"":[{""type"":""Magento\\SalesRule\\Model\\Rule\\Condition\\Address"",""attribute"":""base_subtotal"",""operator"":"">="",""value"":""200"",""is_value_processed"":false}]}","{""type"":""Magento\\SalesRule\\Model\\Rule\\Condition\\Product\\Combine"",""attribute"":null,""operator"":null,""value"":""1"",""is_value_processed"":null,""aggregator"":""all"",""conditions"":[{""type"":""Magento\\SalesRule\\Model\\Rule\\Condition\\Product\\Combine"",""attribute"":null,""operator"":null,""value"":""0"",""is_value_processed"":null,""aggregator"":""all"",""conditions"":[{""type"":""Magento\\SalesRule\\Model\\Rule\\Condition\\Product"",""attribute"":""category_ids"",""operator"":""=="",""value"":""url_key=watches"",""is_value_processed"":false},{""type"":""Magento\\SalesRule\\Model\\Rule\\Condition\\Product"",""attribute"":""sale"",""operator"":""=="",""value"":""1"",""is_value_processed"":false}]}]}"
5+
"$4 Luma water bottle (save 70%)","Use promo code H20 at checkout","by_percent",70,0,1,0,1,0,0,2,H20,1,"{""type"":""Magento\\SalesRule\\Model\\Rule\\Condition\\Combine"",""attribute"":null,""operator"":null,""value"":""1"",""is_value_processed"":null,""aggregator"":""all"",""conditions"":[{""type"":""Magento\\SalesRule\\Model\\Rule\\Condition\\Product\\Found"",""attribute"":null,""operator"":null,""value"":""1"",""is_value_processed"":null,""aggregator"":""all""}]}","{""type"":""Magento\\SalesRule\\Model\\Rule\\Condition\\Product\\Combine"",""attribute"":null,""operator"":null,""value"":""1"",""is_value_processed"":null,""aggregator"":""all"",""conditions"":[{""type"":""Magento\\SalesRule\\Model\\Rule\\Condition\\Product"",""attribute"":""sku"",""operator"":""=="",""value"":""24-UG06"",""is_value_processed"":false}]}"

0 commit comments

Comments
 (0)