Skip to content

Commit a490063

Browse files
Merge branch 'AC-1821' into 2.4.5-bugfixes-020822
2 parents aabf11d + 1494b5f commit a490063

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

app/code/Magento/Customer/Model/Plugin/UpdateCustomer.php

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
use Magento\Framework\Webapi\Rest\Request as RestRequest;
1212
use Magento\Customer\Api\Data\CustomerInterface;
1313
use Magento\Customer\Api\CustomerRepositoryInterface;
14+
use Magento\Authorization\Model\UserContextInterface;
15+
use Magento\Framework\App\ObjectManager;
1416

1517
/**
1618
* Update customer by id from request param
@@ -22,12 +24,19 @@ class UpdateCustomer
2224
*/
2325
private $request;
2426

27+
/**
28+
* @var UserContextInterface
29+
*/
30+
private $userContext;
31+
2532
/**
2633
* @param RestRequest $request
34+
* @param UserContextInterface|null $userContext
2735
*/
28-
public function __construct(RestRequest $request)
36+
public function __construct(RestRequest $request, ?UserContextInterface $userContext = null)
2937
{
3038
$this->request = $request;
39+
$this->userContext = $userContext ?? ObjectManager::getInstance()->get(UserContextInterface::class);
3140
}
3241

3342
/**
@@ -43,10 +52,14 @@ public function beforeSave(
4352
CustomerInterface $customer,
4453
?string $passwordHash = null
4554
): array {
46-
$customerId = $this->request->getParam('customerId');
55+
$customerSessionId = $this->userContext->getUserType() === $this->userContext::USER_TYPE_CUSTOMER ?
56+
(int)$this->userContext->getUserId() : 0;
57+
$customerId = (int)$this->request->getParam('customerId');
4758
$bodyParams = $this->request->getBodyParams();
4859
if (!isset($bodyParams['customer']['Id']) && $customerId) {
49-
$customer = $this->getUpdatedCustomer($customerRepository->getById($customerId), $customer);
60+
if ($customerId === $customerSessionId || $customerSessionId === 0) {
61+
$customer = $this->getUpdatedCustomer($customerRepository->getById($customerId), $customer);
62+
}
5063
}
5164

5265
return [$customer, $passwordHash];

0 commit comments

Comments
 (0)