Skip to content

Commit 43547d1

Browse files
irenelagnoisitnikov
authored andcommitted
MAGETWO-51390: Private Data of Registered Customer May Be Retrieved with Quote Web API by Anonymous
1 parent d38de31 commit 43547d1

File tree

2 files changed

+23
-3
lines changed

2 files changed

+23
-3
lines changed

app/code/Magento/Quote/Model/QuoteManagement.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
use Magento\Sales\Api\OrderManagementInterface as OrderManagement;
2222
use Magento\Store\Model\StoreManagerInterface;
2323
use Magento\Quote\Model\Quote\Address;
24+
use Magento\Framework\App\ObjectManager;
2425

2526
/**
2627
* Class QuoteManagement
@@ -130,6 +131,11 @@ class QuoteManagement implements \Magento\Quote\Api\CartManagementInterface
130131
*/
131132
protected $quoteFactory;
132133

134+
/**
135+
* @var QuoteIdMaskFactory
136+
*/
137+
private $quoteIdMaskFactory;
138+
133139
/**
134140
* @param EventManager $eventManager
135141
* @param QuoteValidator $quoteValidator
@@ -263,6 +269,8 @@ public function assignCustomer($cartId, $customerId, $storeId)
263269
$quote->setCustomer($customer);
264270
$quote->setCustomerIsGuest(0);
265271
$this->quoteRepository->save($quote);
272+
$quoteFactory = $this->getQuoteIdMaskFactory();
273+
$quoteFactory->create()->load($cartId, 'quote_id')->delete();
266274
return true;
267275

268276
}
@@ -547,4 +555,15 @@ protected function _prepareCustomerQuote($quote)
547555
$shipping->setIsDefaultBilling(true);
548556
}
549557
}
558+
559+
/**
560+
* @return QuoteIdMaskFactory
561+
*/
562+
private function getQuoteIdMaskFactory()
563+
{
564+
if (!$this->quoteIdMaskFactory) {
565+
$this->quoteIdMaskFactory = ObjectManager::getInstance()->get(QuoteIdMaskFactory::class);
566+
}
567+
return $this->quoteIdMaskFactory;
568+
}
550569
}

dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestCartManagementTest.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,9 @@ public function testAssignCustomer()
7070
$quote = $this->objectManager->create('Magento\Quote\Model\Quote')->load('test01', 'reserved_order_id');
7171
$cartId = $quote->getId();
7272
/** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
73-
$quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
74-
->create('Magento\Quote\Model\QuoteIdMaskFactory')
75-
->create();
73+
$quoteIdMaskFactory = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
74+
->create('Magento\Quote\Model\QuoteIdMaskFactory');
75+
$quoteIdMask = $quoteIdMaskFactory->create();
7676
$quoteIdMask->load($cartId, 'quote_id');
7777
//Use masked cart Id
7878
$cartId = $quoteIdMask->getMaskedId();
@@ -110,6 +110,7 @@ public function testAssignCustomer()
110110
$this->assertEquals($customer->getId(), $quote->getCustomerId());
111111
$this->assertEquals($customer->getFirstname(), $quote->getCustomerFirstname());
112112
$this->assertEquals($customer->getLastname(), $quote->getCustomerLastname());
113+
$this->assertNull($quoteIdMaskFactory->create()->load($cartId, 'masked_id')->getId());
113114
}
114115

115116
/**

0 commit comments

Comments
 (0)