Skip to content

Commit d05bc81

Browse files
committed
Merge remote-tracking branch 'origin/MC-32864' into 2.4-develop-pr23
2 parents 887c545 + 676e037 commit d05bc81

File tree

4 files changed

+37
-3
lines changed

4 files changed

+37
-3
lines changed

app/code/Magento/Email/Model/AbstractTemplate.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -546,7 +546,9 @@ protected function applyDesignConfig()
546546
protected function cancelDesignConfig()
547547
{
548548
$this->appEmulation->stopEnvironmentEmulation();
549+
$this->urlModel->setScope(null);
549550
$this->hasDesignBeenApplied = false;
551+
550552
return $this;
551553
}
552554

app/code/Magento/Email/etc/di.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
</type>
1919
<type name="Magento\Email\Model\Template">
2020
<arguments>
21-
<argument name="urlModel" xsi:type="object" shared="false">Magento\Framework\Url</argument>
21+
<argument name="urlModel" xsi:type="object">Magento\Framework\Url</argument>
2222
</arguments>
2323
</type>
2424
<type name="Magento\Theme\Model\Design\Config\MetadataProvider">

dev/tests/integration/testsuite/Magento/Customer/Model/AccountManagementTest.php

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
use Magento\Framework\Exception\NoSuchEntityException;
1414
use Magento\Framework\Exception\State\ExpiredException;
1515
use Magento\Framework\Reflection\DataObjectProcessor;
16+
use Magento\Framework\Url as UrlBuilder;
17+
use Magento\Store\Model\StoreManagerInterface;
1618
use Magento\TestFramework\Helper\Bootstrap;
1719

1820
/**
@@ -651,6 +653,34 @@ public function testGetDefaultAddressesForNonExistentAddress()
651653
$this->assertNull($this->accountManagement->getDefaultShippingAddress($customerId));
652654
}
653655

656+
/**
657+
* Test reset password for customer on second website when shared account is enabled
658+
*
659+
* When customer from second website initiate reset password on first website
660+
* global scope should not be reinited to customer scope
661+
*
662+
* @magentoConfigFixture current_store customer/account_share/scope 0
663+
* @magentoDataFixture Magento/Customer/_files/customer_for_second_website.php
664+
*/
665+
public function testInitiatePasswordResetForCustomerOnSecondWebsite()
666+
{
667+
$storeManager = $this->objectManager->get(StoreManagerInterface::class);
668+
$store = $storeManager->getStore();
669+
670+
$this->accountManagement->initiatePasswordReset(
671+
'customer@example.com',
672+
AccountManagement::EMAIL_RESET,
673+
$storeManager->getWebsite()->getId()
674+
);
675+
676+
$this->assertEquals($store->getId(), $storeManager->getStore()->getId());
677+
$urlBuilder = $this->objectManager->get(UrlBuilder::class);
678+
// to init scope if it has not inited yet
679+
$urlBuilder->setScope($urlBuilder->getData('scope'));
680+
$scope = $urlBuilder->getData('scope');
681+
$this->assertEquals($store->getId(), $scope->getId());
682+
}
683+
654684
/**
655685
* Set Rp data to Customer in fixture
656686
*

lib/internal/Magento/Framework/Url.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -424,8 +424,10 @@ protected function _isSecure()
424424
*/
425425
public function setScope($params)
426426
{
427-
$this->setData('scope', $this->_scopeResolver->getScope($params));
428-
$this->getRouteParamsResolver()->setScope($this->_scopeResolver->getScope($params));
427+
$scope = $this->_scopeResolver->getScope($params);
428+
$this->setData('scope', $scope);
429+
$this->getRouteParamsResolver()->setScope($scope);
430+
429431
return $this;
430432
}
431433

0 commit comments

Comments
 (0)