diff --git a/app/code/Magento/AdminAnalytics/composer.json b/app/code/Magento/AdminAnalytics/composer.json
index b9b6c7095dade..55a91cdaa33aa 100644
--- a/app/code/Magento/AdminAnalytics/composer.json
+++ b/app/code/Magento/AdminAnalytics/composer.json
@@ -1,24 +1,25 @@
{
"name": "magento/module-admin-analytics",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.6",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-config": "*",
- "magento/module-store": "*",
- "magento/module-ui": "*",
- "magento/module-release-notification": "*",
- "magento/module-csp": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-ui": "101.2.*",
+ "magento/module-release-notification": "100.4.*",
+ "magento/module-csp": "100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -28,3 +29,4 @@
}
}
}
+
diff --git a/app/code/Magento/AdminNotification/Block/Grid/MassAction/MarkAsReadVisibility.php b/app/code/Magento/AdminNotification/Block/Grid/MassAction/MarkAsReadVisibility.php
new file mode 100644
index 0000000000000..90dd17908de84
--- /dev/null
+++ b/app/code/Magento/AdminNotification/Block/Grid/MassAction/MarkAsReadVisibility.php
@@ -0,0 +1,39 @@
+authorization = $authorizationInterface;
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function isVisible()
+ {
+ return $this->authorization->isAllowed(MarkAsRead::ADMIN_RESOURCE);
+ }
+}
diff --git a/app/code/Magento/AdminNotification/Block/Grid/MassAction/RemoveVisibility.php b/app/code/Magento/AdminNotification/Block/Grid/MassAction/RemoveVisibility.php
new file mode 100644
index 0000000000000..1b5190a0f515c
--- /dev/null
+++ b/app/code/Magento/AdminNotification/Block/Grid/MassAction/RemoveVisibility.php
@@ -0,0 +1,39 @@
+authorization = $authorizationInterface;
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function isVisible()
+ {
+ return $this->authorization->isAllowed(Remove::ADMIN_RESOURCE);
+ }
+}
diff --git a/app/code/Magento/AdminNotification/Block/Grid/Renderer/Actions.php b/app/code/Magento/AdminNotification/Block/Grid/Renderer/Actions.php
index f74f62ef000e6..ad40ab6de3953 100644
--- a/app/code/Magento/AdminNotification/Block/Grid/Renderer/Actions.php
+++ b/app/code/Magento/AdminNotification/Block/Grid/Renderer/Actions.php
@@ -1,15 +1,14 @@
getUrl() ? '' .
__('Read Details') . '' : '';
- $markAsReadHtml = !$row->getIsRead() ? '' . __(
- 'Mark as Read'
- ) . '' : '';
+ $markAsReadHtml = !$row->getIsRead()
+ && $this->_authorization->isAllowed(MarkAsRead::ADMIN_RESOURCE) ?
+ '' . __(
+ 'Mark as Read'
+ ) . '' : '';
+
+ $removeUrl = $this->getUrl(
+ '*/*/remove/',
+ [
+ '_current' => true,
+ 'id' => $row->getNotificationId(),
+ ActionInterface::PARAM_NAME_URL_ENCODED => $this->_urlHelper->getEncodedUrl()
+ ]
+ );
+
+ $removeHtml = $this->_authorization->isAllowed(Remove::ADMIN_RESOURCE) ?
+ ''
+ . __('Remove') . '' : '';
- $encodedUrl = $this->_urlHelper->getEncodedUrl();
return sprintf(
- '%s%s%s',
+ '%s%s%s',
$readDetailsHtml,
$markAsReadHtml,
- $this->getUrl(
- '*/*/remove/',
- [
- '_current' => true,
- 'id' => $row->getNotificationId(),
- ActionInterface::PARAM_NAME_URL_ENCODED => $encodedUrl
- ]
- ),
- __('Are you sure?'),
- __('Remove')
+ $removeHtml,
);
}
}
diff --git a/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/AjaxMarkAsRead.php b/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/AjaxMarkAsRead.php
index be128435b62a1..959f7ec5d9f30 100644
--- a/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/AjaxMarkAsRead.php
+++ b/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/AjaxMarkAsRead.php
@@ -3,6 +3,8 @@
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
+declare(strict_types=1);
+
namespace Magento\AdminNotification\Controller\Adminhtml\Notification;
use Magento\AdminNotification\Controller\Adminhtml\Notification;
@@ -16,6 +18,13 @@
*/
class AjaxMarkAsRead extends Notification implements HttpPostActionInterface
{
+ /**
+ * Authorization level of a basic admin session
+ *
+ * @see _isAllowed()
+ */
+ public const ADMIN_RESOURCE = 'Magento_AdminNotification::mark_as_read';
+
/**
* @var NotificationService
*/
diff --git a/app/code/Magento/AdminNotification/Test/Unit/Block/Grid/Renderer/ActionsTest.php b/app/code/Magento/AdminNotification/Test/Unit/Block/Grid/Renderer/ActionsTest.php
index 9cc600681b13d..534ba7b1155b1 100644
--- a/app/code/Magento/AdminNotification/Test/Unit/Block/Grid/Renderer/ActionsTest.php
+++ b/app/code/Magento/AdminNotification/Test/Unit/Block/Grid/Renderer/ActionsTest.php
@@ -15,6 +15,7 @@
use Magento\AdminNotification\Block\Grid\Renderer\Actions;
use Magento\Backend\Block\Context;
use Magento\Framework\DataObject;
+use Magento\Framework\AuthorizationInterface;
use Magento\Framework\Escaper;
use Magento\Framework\Url\Helper\Data;
use Magento\Framework\UrlInterface;
@@ -35,7 +36,13 @@ protected function setUp(): void
/** @var Escaper|MockObject $escaperMock */
$escaperMock = $this->createMock(Escaper::class);
- $escaperMock->expects($this->once())->method('escapeUrl')->willReturn('https://magento.com');
+ $escaperMock->expects($this->atLeastOnce())->method('escapeUrl')->willReturn('https://magento.com');
+
+ /** @var AuthorizationInterface|MockObject $authorizationMock */
+ $authorizationMock = $this->getMockForAbstractClass(AuthorizationInterface::class);
+ $authorizationMock->expects($this->atLeastOnce())
+ ->method('isAllowed')
+ ->willReturn(true);
/** @var UrlInterface|MockObject $urlBuilder */
$urlBuilder = $this->getMockForAbstractClass(UrlInterface::class);
@@ -43,8 +50,9 @@ protected function setUp(): void
/** @var Context|MockObject $contextMock */
$contextMock = $this->createMock(Context::class);
- $contextMock->expects($this->once())->method('getEscaper')->willReturn($escaperMock);
+ $contextMock->expects($this->atLeastOnce())->method('getEscaper')->willReturn($escaperMock);
$contextMock->expects($this->once())->method('getUrlBuilder')->willReturn($urlBuilder);
+ $contextMock->expects($this->once())->method('getAuthorization')->willReturn($authorizationMock);
/** @var Data|MockObject $urlHelperMock */
$urlHelperMock = $this->createMock(Data::class);
@@ -65,7 +73,7 @@ public function testShouldRenderMessageWhenUrlIsGiven() : void
// Ignoring Code Style at this point due to the long HEREDOC
// phpcs:disable
$expected = <<Read DetailsRemove
+Read DetailsRemove
HTML;
// phpcs:enable
diff --git a/app/code/Magento/AdminNotification/composer.json b/app/code/Magento/AdminNotification/composer.json
index 9ed7f942313e3..2a652841ea220 100644
--- a/app/code/Magento/AdminNotification/composer.json
+++ b/app/code/Magento/AdminNotification/composer.json
@@ -1,24 +1,25 @@
{
"name": "magento/module-admin-notification",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.6-p3",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
"lib-libxml": "*",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-media-storage": "*",
- "magento/module-store": "*",
- "magento/module-ui": "*",
- "magento/module-config": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-media-storage": "100.4.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-ui": "101.2.*",
+ "magento/module-config": "101.2.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -28,3 +29,4 @@
}
}
}
+
diff --git a/app/code/Magento/AdminNotification/view/adminhtml/layout/adminhtml_notification_block.xml b/app/code/Magento/AdminNotification/view/adminhtml/layout/adminhtml_notification_block.xml
index 06fd380cb2a44..e2eea914af688 100644
--- a/app/code/Magento/AdminNotification/view/adminhtml/layout/adminhtml_notification_block.xml
+++ b/app/code/Magento/AdminNotification/view/adminhtml/layout/adminhtml_notification_block.xml
@@ -61,11 +61,13 @@
-
- Mark as Read
- */*/massMarkAsRead
+ - Magento\AdminNotification\Block\Grid\MassAction\MarkAsReadVisibility
-
- Remove
- */*/massRemove
- Are you sure?
+ - Magento\AdminNotification\Block\Grid\MassAction\RemoveVisibility
diff --git a/app/code/Magento/AdvancedPricingImportExport/composer.json b/app/code/Magento/AdvancedPricingImportExport/composer.json
index 0a591ad29045c..d0b1bc5a8c053 100644
--- a/app/code/Magento/AdvancedPricingImportExport/composer.json
+++ b/app/code/Magento/AdvancedPricingImportExport/composer.json
@@ -1,26 +1,27 @@
{
"name": "magento/module-advanced-pricing-import-export",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-catalog": "*",
- "magento/module-catalog-import-export": "*",
- "magento/module-catalog-inventory": "*",
- "magento/module-customer": "*",
- "magento/module-eav": "*",
- "magento/module-import-export": "*",
- "magento/module-store": "*",
- "magento/module-directory": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-catalog-import-export": "101.1.*",
+ "magento/module-catalog-inventory": "100.4.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-import-export": "101.0.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-directory": "100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -30,3 +31,4 @@
}
}
}
+
diff --git a/app/code/Magento/AdvancedSearch/Controller/Adminhtml/Search/System/Config/TestConnection.php b/app/code/Magento/AdvancedSearch/Controller/Adminhtml/Search/System/Config/TestConnection.php
index be72d0a82822d..3f0168f2332cb 100644
--- a/app/code/Magento/AdvancedSearch/Controller/Adminhtml/Search/System/Config/TestConnection.php
+++ b/app/code/Magento/AdvancedSearch/Controller/Adminhtml/Search/System/Config/TestConnection.php
@@ -4,22 +4,27 @@
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
+declare(strict_types=1);
+
namespace Magento\AdvancedSearch\Controller\Adminhtml\Search\System\Config;
use Magento\Backend\App\Action;
use Magento\Backend\App\Action\Context;
use Magento\AdvancedSearch\Model\Client\ClientResolver;
+use Magento\Framework\App\Action\HttpPostActionInterface;
+use Magento\Framework\Controller\Result\Json;
use Magento\Framework\Controller\Result\JsonFactory;
+use Magento\Framework\Exception\LocalizedException;
use Magento\Framework\Filter\StripTags;
-class TestConnection extends Action
+class TestConnection extends Action implements HttpPostActionInterface
{
/**
* Authorization level of a basic admin session.
*
* @see _isAllowed()
*/
- const ADMIN_RESOURCE = 'Magento_CatalogSearch::config_catalog_search';
+ public const ADMIN_RESOURCE = 'Magento_Catalog::config_catalog';
/**
* @var ClientResolver
@@ -57,7 +62,7 @@ public function __construct(
/**
* Check for connection to server
*
- * @return \Magento\Framework\Controller\Result\Json
+ * @return Json
*/
public function execute()
{
@@ -69,7 +74,7 @@ public function execute()
try {
if (empty($options['engine'])) {
- throw new \Magento\Framework\Exception\LocalizedException(
+ throw new LocalizedException(
__('Missing search engine parameter.')
);
}
@@ -77,14 +82,14 @@ public function execute()
if ($response) {
$result['success'] = true;
}
- } catch (\Magento\Framework\Exception\LocalizedException $e) {
+ } catch (LocalizedException $e) {
$result['errorMessage'] = $e->getMessage();
} catch (\Exception $e) {
$message = __($e->getMessage());
$result['errorMessage'] = $this->tagFilter->filter($message);
}
- /** @var \Magento\Framework\Controller\Result\Json $resultJson */
+ /** @var Json $resultJson */
$resultJson = $this->resultJsonFactory->create();
return $resultJson->setData($result);
}
diff --git a/app/code/Magento/AdvancedSearch/composer.json b/app/code/Magento/AdvancedSearch/composer.json
index 6eda4d7c76e59..506de25c4baf3 100644
--- a/app/code/Magento/AdvancedSearch/composer.json
+++ b/app/code/Magento/AdvancedSearch/composer.json
@@ -1,25 +1,26 @@
{
"name": "magento/module-advanced-search",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.5-p3",
"require": {
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-catalog": "*",
- "magento/module-catalog-search": "*",
- "magento/module-config": "*",
- "magento/module-customer": "*",
- "magento/module-search": "*",
- "magento/module-store": "*",
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-catalog-search": "102.0.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-search": "101.1.*",
+ "magento/module-store": "101.1.*",
"php": "~8.1.0||~8.2.0||~8.3.0"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -29,3 +30,4 @@
}
}
}
+
diff --git a/app/code/Magento/Amqp/composer.json b/app/code/Magento/Amqp/composer.json
index c638a500f9d4c..de391f30d5de5 100644
--- a/app/code/Magento/Amqp/composer.json
+++ b/app/code/Magento/Amqp/composer.json
@@ -1,20 +1,21 @@
{
"name": "magento/module-amqp",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.4",
"require": {
- "magento/framework": "*",
- "magento/framework-amqp": "*",
- "magento/framework-message-queue": "*",
+ "magento/framework": "103.0.*",
+ "magento/framework-amqp": "100.4.*",
+ "magento/framework-message-queue": "100.4.*",
"php": "~8.1.0||~8.2.0||~8.3.0"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -24,3 +25,4 @@
}
}
}
+
diff --git a/app/code/Magento/Analytics/composer.json b/app/code/Magento/Analytics/composer.json
index 7342473b1d4ba..44b357bc4c7ee 100644
--- a/app/code/Magento/Analytics/composer.json
+++ b/app/code/Magento/Analytics/composer.json
@@ -1,19 +1,20 @@
{
"name": "magento/module-analytics",
"description": "N/A",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/module-backend": "*",
- "magento/module-config": "*",
- "magento/module-integration": "*",
- "magento/module-store": "*",
- "magento/framework": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.7",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/module-backend": "102.0.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-integration": "100.4.*",
+ "magento/module-store": "101.1.*",
+ "magento/framework": "103.0.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -23,3 +24,4 @@
}
}
}
+
diff --git a/app/code/Magento/ApplicationPerformanceMonitor/composer.json b/app/code/Magento/ApplicationPerformanceMonitor/composer.json
index 5341c8602a087..2ebfef60e883f 100644
--- a/app/code/Magento/ApplicationPerformanceMonitor/composer.json
+++ b/app/code/Magento/ApplicationPerformanceMonitor/composer.json
@@ -1,18 +1,20 @@
{
- "name": "magento/module-application-performance-monitor",
- "license": "OSL-3.0",
- "type": "magento2-module",
- "description": "Performance Monitor for Application",
- "autoload": {
- "files": [
- "registration.php"
- ],
- "psr-4": {
- "Magento\\ApplicationPerformanceMonitor\\": ""
+ "name": "magento/module-application-performance-monitor",
+ "description": "Performance Monitor for Application",
+ "type": "magento2-module",
+ "license": "OSL-3.0",
+ "version": "100.4.0",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*"
+ },
+ "autoload": {
+ "files": [
+ "registration.php"
+ ],
+ "psr-4": {
+ "Magento\\ApplicationPerformanceMonitor\\": ""
+ }
}
- },
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*"
- }
}
+
diff --git a/app/code/Magento/ApplicationPerformanceMonitorNewRelic/composer.json b/app/code/Magento/ApplicationPerformanceMonitorNewRelic/composer.json
index 29eb33c982c1e..979bba060b089 100644
--- a/app/code/Magento/ApplicationPerformanceMonitorNewRelic/composer.json
+++ b/app/code/Magento/ApplicationPerformanceMonitorNewRelic/composer.json
@@ -1,23 +1,25 @@
{
- "name": "magento/module-application-performance-monitor-new-relic",
- "license": "OSL-3.0",
- "type": "magento2-module",
- "description": "Performance data about Application into New Relic",
- "autoload": {
- "files": [
- "registration.php"
- ],
- "psr-4": {
- "Magento\\ApplicationPerformanceMonitorNewRelic\\": ""
+ "name": "magento/module-application-performance-monitor-new-relic",
+ "description": "Performance data about Application into New Relic",
+ "type": "magento2-module",
+ "license": "OSL-3.0",
+ "version": "100.4.0",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-application-performance-monitor": "100.4.*",
+ "magento/module-new-relic-reporting": "100.4.*"
+ },
+ "suggest": {
+ "ext-newrelic": "This module requires New Relic's PHP extension in order to function."
+ },
+ "autoload": {
+ "files": [
+ "registration.php"
+ ],
+ "psr-4": {
+ "Magento\\ApplicationPerformanceMonitorNewRelic\\": ""
+ }
}
- },
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-application-performance-monitor": "*",
- "magento/module-new-relic-reporting": "*"
- },
- "suggest": {
- "ext-newrelic": "This module requires New Relic's PHP extension in order to function."
- }
}
+
diff --git a/app/code/Magento/AsyncConfig/composer.json b/app/code/Magento/AsyncConfig/composer.json
index a6a914341e387..703af78e3c58a 100644
--- a/app/code/Magento/AsyncConfig/composer.json
+++ b/app/code/Magento/AsyncConfig/composer.json
@@ -1,15 +1,16 @@
{
"name": "magento/module-async-config",
"description": "N/A",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-config": "*"
- },
"type": "magento2-module",
"license": [
"proprietary"
],
+ "version": "100.4.0",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-config": "101.2.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -19,3 +20,4 @@
}
}
}
+
diff --git a/app/code/Magento/AsynchronousOperations/composer.json b/app/code/Magento/AsynchronousOperations/composer.json
index 6df421c40704f..8122c78eb38f7 100644
--- a/app/code/Magento/AsynchronousOperations/composer.json
+++ b/app/code/Magento/AsynchronousOperations/composer.json
@@ -1,27 +1,28 @@
{
"name": "magento/module-asynchronous-operations",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7",
"require": {
- "magento/framework": "*",
- "magento/framework-message-queue": "*",
- "magento/framework-bulk": "*",
- "magento/module-authorization": "*",
- "magento/module-backend": "*",
- "magento/module-ui": "*",
+ "magento/framework": "103.0.*",
+ "magento/framework-message-queue": "100.4.*",
+ "magento/framework-bulk": "101.0.*",
+ "magento/module-authorization": "100.4.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-ui": "101.2.*",
"php": "~8.1.0||~8.2.0||~8.3.0"
},
"suggest": {
- "magento/module-admin-notification": "*",
+ "magento/module-admin-notification": "100.4.*",
"magento/module-logging": "*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -31,3 +32,4 @@
}
}
}
+
diff --git a/app/code/Magento/Authorization/composer.json b/app/code/Magento/Authorization/composer.json
index 9f3d1eef37a3d..edb2b368ddcb9 100644
--- a/app/code/Magento/Authorization/composer.json
+++ b/app/code/Magento/Authorization/composer.json
@@ -1,19 +1,20 @@
{
"name": "magento/module-authorization",
"description": "Authorization module provides access to Magento ACL functionality.",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -23,3 +24,4 @@
}
}
}
+
diff --git a/app/code/Magento/AwsS3/composer.json b/app/code/Magento/AwsS3/composer.json
index 743abb654be6f..10c466743b7fd 100644
--- a/app/code/Magento/AwsS3/composer.json
+++ b/app/code/Magento/AwsS3/composer.json
@@ -1,18 +1,19 @@
{
"name": "magento/module-aws-s3",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "proprietary"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.5",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-remote-storage": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-remote-storage": "100.4.*"
},
- "type": "magento2-module",
- "license": [
- "proprietary"
- ],
"autoload": {
"files": [
"registration.php"
@@ -22,3 +23,4 @@
}
}
}
+
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Design.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Design.php
index d61a76055b3e5..6e04c6e882786 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Design.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Design.php
@@ -14,10 +14,10 @@ abstract class Design extends Action
*
* @see _isAllowed()
*/
- const ADMIN_RESOURCE = 'Magento_Backend::design';
+ public const ADMIN_RESOURCE = 'Magento_Backend::schedule';
/**
- * Core registry
+ * Core registry instance
*
* @var \Magento\Framework\Registry
*/
diff --git a/app/code/Magento/Backend/composer.json b/app/code/Magento/Backend/composer.json
index 4ab421a7fe9fd..64bfb60840c34 100644
--- a/app/code/Magento/Backend/composer.json
+++ b/app/code/Magento/Backend/composer.json
@@ -1,38 +1,39 @@
{
"name": "magento/module-backend",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "102.0.7-p3",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backup": "*",
- "magento/module-catalog": "*",
- "magento/module-config": "*",
- "magento/module-cms": "*",
- "magento/module-customer": "*",
- "magento/module-developer": "*",
- "magento/module-directory": "*",
- "magento/module-eav": "*",
- "magento/module-quote": "*",
- "magento/module-reports": "*",
- "magento/module-require-js": "*",
- "magento/module-sales": "*",
- "magento/module-security": "*",
- "magento/module-store": "*",
- "magento/module-translation": "*",
- "magento/module-ui": "*",
- "magento/module-user": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backup": "100.4.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-cms": "104.0.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-developer": "100.4.*",
+ "magento/module-directory": "100.4.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-quote": "101.2.*",
+ "magento/module-reports": "100.4.*",
+ "magento/module-require-js": "100.4.*",
+ "magento/module-sales": "103.0.*",
+ "magento/module-security": "100.4.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-translation": "100.4.*",
+ "magento/module-ui": "101.2.*",
+ "magento/module-user": "101.2.*"
},
"suggest": {
- "magento/module-theme": "*"
+ "magento/module-theme": "101.1.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php",
@@ -43,3 +44,4 @@
}
}
}
+
diff --git a/app/code/Magento/Backup/composer.json b/app/code/Magento/Backup/composer.json
index 9399271f34b68..9308875064536 100644
--- a/app/code/Magento/Backup/composer.json
+++ b/app/code/Magento/Backup/composer.json
@@ -1,21 +1,22 @@
{
"name": "magento/module-backup",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-cron": "*",
- "magento/module-store": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-cron": "100.4.*",
+ "magento/module-store": "101.1.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -25,3 +26,4 @@
}
}
}
+
diff --git a/app/code/Magento/Bundle/composer.json b/app/code/Magento/Bundle/composer.json
index 79ec483d4dd63..a012024efa206 100644
--- a/app/code/Magento/Bundle/composer.json
+++ b/app/code/Magento/Bundle/composer.json
@@ -1,39 +1,40 @@
{
"name": "magento/module-bundle",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "101.0.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-catalog": "*",
- "magento/module-catalog-inventory": "*",
- "magento/module-catalog-rule": "*",
- "magento/module-checkout": "*",
- "magento/module-config": "*",
- "magento/module-customer": "*",
- "magento/module-eav": "*",
- "magento/module-gift-message": "*",
- "magento/module-media-storage": "*",
- "magento/module-quote": "*",
- "magento/module-sales": "*",
- "magento/module-store": "*",
- "magento/module-tax": "*",
- "magento/module-ui": "*",
- "magento/module-directory": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-catalog-inventory": "100.4.*",
+ "magento/module-catalog-rule": "101.2.*",
+ "magento/module-checkout": "100.4.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-gift-message": "100.4.*",
+ "magento/module-media-storage": "100.4.*",
+ "magento/module-quote": "101.2.*",
+ "magento/module-sales": "103.0.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-tax": "100.4.*",
+ "magento/module-ui": "101.2.*",
+ "magento/module-directory": "100.4.*"
},
"suggest": {
- "magento/module-webapi": "*",
- "magento/module-bundle-sample-data": "*",
- "magento/module-sales-rule": "*"
+ "magento/module-webapi": "100.4.*",
+ "magento/module-bundle-sample-data": "Sample Data version: 100.4.*",
+ "magento/module-sales-rule": "101.2.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -43,3 +44,4 @@
}
}
}
+
diff --git a/app/code/Magento/BundleGraphQl/composer.json b/app/code/Magento/BundleGraphQl/composer.json
index e8cc6723f1f82..fab70d7e5c355 100644
--- a/app/code/Magento/BundleGraphQl/composer.json
+++ b/app/code/Magento/BundleGraphQl/composer.json
@@ -2,23 +2,24 @@
"name": "magento/module-bundle-graph-ql",
"description": "N/A",
"type": "magento2-module",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/module-catalog": "*",
- "magento/module-bundle": "*",
- "magento/module-graph-ql": "*",
- "magento/module-catalog-graph-ql": "*",
- "magento/module-quote": "*",
- "magento/module-quote-graph-ql": "*",
- "magento/module-store": "*",
- "magento/module-sales": "*",
- "magento/module-sales-graph-ql": "*",
- "magento/framework": "*"
- },
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.7",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-bundle": "101.0.*",
+ "magento/module-graph-ql": "100.4.*",
+ "magento/module-catalog-graph-ql": "100.4.*",
+ "magento/module-quote": "101.2.*",
+ "magento/module-quote-graph-ql": "100.4.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-sales": "103.0.*",
+ "magento/module-sales-graph-ql": "100.4.*",
+ "magento/framework": "103.0.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -28,3 +29,4 @@
}
}
}
+
diff --git a/app/code/Magento/BundleImportExport/composer.json b/app/code/Magento/BundleImportExport/composer.json
index 01d2d5d3c3e5c..258204baded8f 100644
--- a/app/code/Magento/BundleImportExport/composer.json
+++ b/app/code/Magento/BundleImportExport/composer.json
@@ -1,24 +1,25 @@
{
"name": "magento/module-bundle-import-export",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.6",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-bundle": "*",
- "magento/module-store": "*",
- "magento/module-catalog": "*",
- "magento/module-catalog-import-export": "*",
- "magento/module-eav": "*",
- "magento/module-import-export": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-bundle": "101.0.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-catalog-import-export": "101.1.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-import-export": "101.0.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -28,3 +29,4 @@
}
}
}
+
diff --git a/app/code/Magento/CacheInvalidate/composer.json b/app/code/Magento/CacheInvalidate/composer.json
index 42ce327a98fb9..bf2662fb240f5 100644
--- a/app/code/Magento/CacheInvalidate/composer.json
+++ b/app/code/Magento/CacheInvalidate/composer.json
@@ -1,19 +1,20 @@
{
"name": "magento/module-cache-invalidate",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.5",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-page-cache": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-page-cache": "100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -23,3 +24,4 @@
}
}
}
+
diff --git a/app/code/Magento/Captcha/composer.json b/app/code/Magento/Captcha/composer.json
index 0e9581dd6a245..ebffe7cc38d80 100644
--- a/app/code/Magento/Captcha/composer.json
+++ b/app/code/Magento/Captcha/composer.json
@@ -1,26 +1,27 @@
{
"name": "magento/module-captcha",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-checkout": "*",
- "magento/module-customer": "*",
- "magento/module-sales": "*",
- "magento/module-store": "*",
- "magento/module-authorization": "*",
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-checkout": "100.4.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-sales": "103.0.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-authorization": "100.4.*",
"laminas/laminas-captcha": "^2.12",
"laminas/laminas-db": "^2.19"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -30,3 +31,4 @@
}
}
}
+
diff --git a/app/code/Magento/CardinalCommerce/composer.json b/app/code/Magento/CardinalCommerce/composer.json
index f7be58126099c..c96eae3383e69 100644
--- a/app/code/Magento/CardinalCommerce/composer.json
+++ b/app/code/Magento/CardinalCommerce/composer.json
@@ -1,21 +1,22 @@
{
"name": "magento/module-cardinal-commerce",
"description": "Provides a possibility to enable 3-D Secure 2.0 support for payment methods.",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.5",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-checkout": "*",
- "magento/module-payment": "*",
- "magento/module-store": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-checkout": "100.4.*",
+ "magento/module-payment": "100.4.*",
+ "magento/module-store": "101.1.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -25,3 +26,4 @@
}
}
}
+
diff --git a/app/code/Magento/Catalog/Model/Product/Option/Type/File/ValidatorInfo.php b/app/code/Magento/Catalog/Model/Product/Option/Type/File/ValidatorInfo.php
index 4c4daccb90174..8afbdf7425ca2 100644
--- a/app/code/Magento/Catalog/Model/Product/Option/Type/File/ValidatorInfo.php
+++ b/app/code/Magento/Catalog/Model/Product/Option/Type/File/ValidatorInfo.php
@@ -49,6 +49,7 @@ class ValidatorInfo extends Validator
* @var IoFile
*/
private $ioFile;
+
/**
* @var NotProtectedExtension
*/
@@ -147,12 +148,14 @@ private function validatePath(array $optionValuePath): bool
{
foreach ([$optionValuePath['quote_path'], $optionValuePath['order_path']] as $path) {
$pathInfo = $this->ioFile->getPathInfo($path);
- if (isset($pathInfo['extension'])) {
- if (!$this->fileValidator->isValid($pathInfo['extension'])) {
- return false;
- }
+
+ if (isset($pathInfo['extension'])
+ && (empty($pathInfo['extension']) || !$this->fileValidator->isValid($pathInfo['extension']))
+ ) {
+ return false;
}
}
+
return true;
}
diff --git a/app/code/Magento/Catalog/Test/Mftf/ActionGroup/StorefrontAssertActiveProductImageActionGroup.xml b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/StorefrontAssertActiveProductImageActionGroup.xml
index 0e7da54bd4028..c2f0b7f11636f 100644
--- a/app/code/Magento/Catalog/Test/Mftf/ActionGroup/StorefrontAssertActiveProductImageActionGroup.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/StorefrontAssertActiveProductImageActionGroup.xml
@@ -12,6 +12,6 @@
-
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/Test/AdminApplyTierPriceToProductTest/StoreFrontDeleteProductImagesAssignedDifferentRolesTest.xml b/app/code/Magento/Catalog/Test/Mftf/Test/AdminApplyTierPriceToProductTest/StoreFrontDeleteProductImagesAssignedDifferentRolesTest.xml
index 78be5ea651194..fc513432265c3 100644
--- a/app/code/Magento/Catalog/Test/Mftf/Test/AdminApplyTierPriceToProductTest/StoreFrontDeleteProductImagesAssignedDifferentRolesTest.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Test/AdminApplyTierPriceToProductTest/StoreFrontDeleteProductImagesAssignedDifferentRolesTest.xml
@@ -77,7 +77,7 @@
-
+
diff --git a/app/code/Magento/Catalog/Test/Mftf/Test/EndToEndB2CAdminTest.xml b/app/code/Magento/Catalog/Test/Mftf/Test/EndToEndB2CAdminTest.xml
index 7a10c0e949e31..6d44eed04c1ec 100644
--- a/app/code/Magento/Catalog/Test/Mftf/Test/EndToEndB2CAdminTest.xml
+++ b/app/code/Magento/Catalog/Test/Mftf/Test/EndToEndB2CAdminTest.xml
@@ -216,7 +216,7 @@
-
+
@@ -232,7 +232,7 @@
diff --git a/app/code/Magento/Catalog/composer.json b/app/code/Magento/Catalog/composer.json
index 7512989e23c57..483c518a9e0c6 100644
--- a/app/code/Magento/Catalog/composer.json
+++ b/app/code/Magento/Catalog/composer.json
@@ -1,50 +1,51 @@
{
"name": "magento/module-catalog",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "104.0.7-p2",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/framework-bulk": "*",
- "magento/module-authorization": "*",
- "magento/module-asynchronous-operations": "*",
- "magento/module-backend": "*",
- "magento/module-catalog-inventory": "*",
- "magento/module-catalog-rule": "*",
- "magento/module-catalog-url-rewrite": "*",
- "magento/module-checkout": "*",
- "magento/module-cms": "*",
- "magento/module-config": "*",
- "magento/module-customer": "*",
- "magento/module-directory": "*",
- "magento/module-eav": "*",
- "magento/module-indexer": "*",
- "magento/module-media-storage": "*",
- "magento/module-msrp": "*",
- "magento/module-page-cache": "*",
- "magento/module-product-alert": "*",
- "magento/module-quote": "*",
- "magento/module-store": "*",
- "magento/module-tax": "*",
- "magento/module-theme": "*",
- "magento/module-ui": "*",
- "magento/module-url-rewrite": "*",
- "magento/module-widget": "*",
- "magento/module-wishlist": "*",
- "magento/module-aws-s3": "*"
+ "magento/framework": "103.0.*",
+ "magento/framework-bulk": "101.0.*",
+ "magento/module-authorization": "100.4.*",
+ "magento/module-asynchronous-operations": "100.4.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-catalog-inventory": "100.4.*",
+ "magento/module-catalog-rule": "101.2.*",
+ "magento/module-catalog-url-rewrite": "100.4.*",
+ "magento/module-checkout": "100.4.*",
+ "magento/module-cms": "104.0.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-directory": "100.4.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-indexer": "100.4.*",
+ "magento/module-media-storage": "100.4.*",
+ "magento/module-msrp": "100.4.*",
+ "magento/module-page-cache": "100.4.*",
+ "magento/module-product-alert": "100.4.*",
+ "magento/module-quote": "101.2.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-tax": "100.4.*",
+ "magento/module-theme": "101.1.*",
+ "magento/module-ui": "101.2.*",
+ "magento/module-url-rewrite": "102.0.*",
+ "magento/module-widget": "101.2.*",
+ "magento/module-wishlist": "101.2.*",
+ "magento/module-aws-s3": "100.4.*"
},
"suggest": {
- "magento/module-cookie": "*",
- "magento/module-sales": "*",
- "magento/module-catalog-sample-data": "*"
+ "magento/module-cookie": "100.4.*",
+ "magento/module-sales": "103.0.*",
+ "magento/module-catalog-sample-data": "Sample Data version: 100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -54,3 +55,4 @@
}
}
}
+
diff --git a/app/code/Magento/CatalogAnalytics/composer.json b/app/code/Magento/CatalogAnalytics/composer.json
index cc813c47633e1..ee3aabff9dda1 100644
--- a/app/code/Magento/CatalogAnalytics/composer.json
+++ b/app/code/Magento/CatalogAnalytics/composer.json
@@ -1,17 +1,18 @@
{
"name": "magento/module-catalog-analytics",
"description": "N/A",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-catalog": "*",
- "magento/module-analytics": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.4",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-analytics": "100.4.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -21,3 +22,4 @@
}
}
}
+
diff --git a/app/code/Magento/CatalogCmsGraphQl/composer.json b/app/code/Magento/CatalogCmsGraphQl/composer.json
index e935bfb485972..eff476e0ae2ba 100644
--- a/app/code/Magento/CatalogCmsGraphQl/composer.json
+++ b/app/code/Magento/CatalogCmsGraphQl/composer.json
@@ -2,21 +2,22 @@
"name": "magento/module-catalog-cms-graph-ql",
"description": "N/A",
"type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
+ "version": "100.4.3",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-catalog": "*",
- "magento/module-cms-graph-ql": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-cms-graph-ql": "100.4.*"
},
"suggest": {
- "magento/module-graph-ql": "*",
- "magento/module-cms": "*",
- "magento/module-catalog-graph-ql": "*"
+ "magento/module-graph-ql": "100.4.*",
+ "magento/module-cms": "104.0.*",
+ "magento/module-catalog-graph-ql": "100.4.*"
},
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -26,3 +27,4 @@
}
}
}
+
diff --git a/app/code/Magento/CatalogCustomerGraphQl/composer.json b/app/code/Magento/CatalogCustomerGraphQl/composer.json
index e26aba6f0bf2f..36be7d39b3cae 100644
--- a/app/code/Magento/CatalogCustomerGraphQl/composer.json
+++ b/app/code/Magento/CatalogCustomerGraphQl/composer.json
@@ -2,17 +2,18 @@
"name": "magento/module-catalog-customer-graph-ql",
"description": "N/A",
"type": "magento2-module",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-catalog": "*",
- "magento/module-customer": "*",
- "magento/module-catalog-graph-ql": "*"
- },
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.6",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-catalog-graph-ql": "100.4.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -22,3 +23,4 @@
}
}
}
+
diff --git a/app/code/Magento/CatalogGraphQl/composer.json b/app/code/Magento/CatalogGraphQl/composer.json
index 000e7cdee9112..f7df7b86b1924 100644
--- a/app/code/Magento/CatalogGraphQl/composer.json
+++ b/app/code/Magento/CatalogGraphQl/composer.json
@@ -2,30 +2,31 @@
"name": "magento/module-catalog-graph-ql",
"description": "N/A",
"type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/module-eav": "*",
- "magento/module-catalog": "*",
- "magento/module-catalog-inventory": "*",
- "magento/module-directory": "*",
- "magento/module-search": "*",
- "magento/module-store": "*",
- "magento/module-eav-graph-ql": "*",
- "magento/module-catalog-search": "*",
- "magento/framework": "*",
- "magento/module-graph-ql": "*",
- "magento/module-graph-ql-resolver-cache": "*",
- "magento/module-config": "*",
- "magento/module-advanced-search": "*"
+ "magento/module-eav": "102.1.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-catalog-inventory": "100.4.*",
+ "magento/module-directory": "100.4.*",
+ "magento/module-search": "101.1.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-eav-graph-ql": "100.4.*",
+ "magento/module-catalog-search": "102.0.*",
+ "magento/framework": "103.0.*",
+ "magento/module-graph-ql": "100.4.*",
+ "magento/module-graph-ql-resolver-cache": "100.4.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-advanced-search": "100.4.*"
},
"suggest": {
- "magento/module-graph-ql-cache": "*",
- "magento/module-store-graph-ql": "*"
+ "magento/module-graph-ql-cache": "100.4.*",
+ "magento/module-store-graph-ql": "100.4.*"
},
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -35,3 +36,4 @@
}
}
}
+
diff --git a/app/code/Magento/CatalogImportExport/Model/Import/Product.php b/app/code/Magento/CatalogImportExport/Model/Import/Product.php
index 129151261b3a3..e1c9c0ba9f19c 100644
--- a/app/code/Magento/CatalogImportExport/Model/Import/Product.php
+++ b/app/code/Magento/CatalogImportExport/Model/Import/Product.php
@@ -56,6 +56,11 @@ class Product extends AbstractEntity
private const COL_NAME_FORMAT = '/[\x00-\x1F\x7F]/';
public const CONFIG_KEY_PRODUCT_TYPES = 'global/importexport/import_product_types';
+ /**
+ * Filter chain const
+ */
+ private const FILTER_CHAIN = "php://filter";
+
/**
* Size of bunch - part of products to save in one step.
*/
@@ -775,6 +780,11 @@ class Product extends AbstractEntity
*/
private ?SkuStorage $skuStorage;
+ /**
+ * @var File|null
+ */
+ private ?File $fileDriver;
+
/**
* @param \Magento\Framework\Json\Helper\Data $jsonHelper
* @param \Magento\ImportExport\Helper\Data $importExportData
@@ -950,6 +960,8 @@ public function __construct(
->get(ProductRepositoryInterface::class);
$this->stockItemProcessor = $stockItemProcessor ?? ObjectManager::getInstance()
->get(StockItemProcessorInterface::class);
+ $this->fileDriver = $fileDriver ?? ObjectManager::getInstance()
+ ->get(File::class);
}
/**
@@ -2118,7 +2130,10 @@ private function getRemoteFileContent(string $filename): string
{
try {
// phpcs:ignore Magento2.Functions.DiscouragedFunction
- $content = file_get_contents($filename);
+ if (stripos($filename, self::FILTER_CHAIN) !== false) {
+ return '';
+ }
+ $content = $this->fileDriver->fileGetContents($filename);
} catch (\Exception $e) {
$content = false;
}
diff --git a/app/code/Magento/CatalogImportExport/Model/Import/Product/Validator.php b/app/code/Magento/CatalogImportExport/Model/Import/Product/Validator.php
index f74886069d501..38ba06cfac3d7 100644
--- a/app/code/Magento/CatalogImportExport/Model/Import/Product/Validator.php
+++ b/app/code/Magento/CatalogImportExport/Model/Import/Product/Validator.php
@@ -17,6 +17,11 @@
*/
class Validator extends AbstractValidator implements RowValidatorInterface
{
+ /**
+ * Filter chain const
+ */
+ private const FILTER_CHAIN = "php://filter";
+
/**
* @var RowValidatorInterface[]|AbstractValidator[]
*/
@@ -70,6 +75,10 @@ public function __construct(
protected function textValidation($attrCode, $type)
{
$val = $this->string->cleanString($this->_rowData[$attrCode]);
+ if (stripos($val, self::FILTER_CHAIN) !== false) {
+ $this->_addMessages([RowValidatorInterface::ERROR_INVALID_ATTRIBUTE_TYPE]);
+ return false;
+ }
if ($type == 'text') {
$valid = $this->string->strlen($val) < Product::DB_MAX_TEXT_LENGTH;
} elseif ($attrCode == Product::COL_SKU) {
diff --git a/app/code/Magento/CatalogImportExport/Test/Unit/Model/Import/ProductTest.php b/app/code/Magento/CatalogImportExport/Test/Unit/Model/Import/ProductTest.php
index 613ef2177bf1f..b44ac461a4959 100644
--- a/app/code/Magento/CatalogImportExport/Test/Unit/Model/Import/ProductTest.php
+++ b/app/code/Magento/CatalogImportExport/Test/Unit/Model/Import/ProductTest.php
@@ -2252,4 +2252,18 @@ public static function valuesDataProvider(): array
]
];
}
+
+ /**
+ * get remote file content
+ */
+ public function testGetRemoteFileContent()
+ {
+ $reflector = new \ReflectionClass($this->importProduct);
+ $property = $reflector->getMethod('getRemoteFileContent');
+ $property->setAccessible(true);
+ $this->assertEquals(
+ '',
+ $property->invokeArgs($this->importProduct, ['php://filter'])
+ );
+ }
}
diff --git a/app/code/Magento/CatalogImportExport/composer.json b/app/code/Magento/CatalogImportExport/composer.json
index d730be60e2c11..afd0a86606a19 100644
--- a/app/code/Magento/CatalogImportExport/composer.json
+++ b/app/code/Magento/CatalogImportExport/composer.json
@@ -1,30 +1,31 @@
{
"name": "magento/module-catalog-import-export",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "101.1.7-p3",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
"ext-ctype": "*",
- "magento/framework": "*",
- "magento/module-catalog": "*",
- "magento/module-catalog-inventory": "*",
- "magento/module-catalog-url-rewrite": "*",
- "magento/module-customer": "*",
- "magento/module-eav": "*",
- "magento/module-import-export": "*",
- "magento/module-media-storage": "*",
- "magento/module-store": "*",
- "magento/module-tax": "*",
- "magento/module-authorization": "*",
- "magento/module-aws-s3": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-catalog-inventory": "100.4.*",
+ "magento/module-catalog-url-rewrite": "100.4.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-import-export": "101.0.*",
+ "magento/module-media-storage": "100.4.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-tax": "100.4.*",
+ "magento/module-authorization": "100.4.*",
+ "magento/module-aws-s3": "100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -34,3 +35,4 @@
}
}
}
+
diff --git a/app/code/Magento/CatalogInventory/composer.json b/app/code/Magento/CatalogInventory/composer.json
index a6554c0a65e91..7648454961fa8 100644
--- a/app/code/Magento/CatalogInventory/composer.json
+++ b/app/code/Magento/CatalogInventory/composer.json
@@ -1,25 +1,26 @@
{
"name": "magento/module-catalog-inventory",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-catalog": "*",
- "magento/module-config": "*",
- "magento/module-customer": "*",
- "magento/module-eav": "*",
- "magento/module-quote": "*",
- "magento/module-store": "*",
- "magento/module-ui": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-quote": "101.2.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-ui": "101.2.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -30,3 +31,4 @@
},
"abandoned": "magento/inventory-metapackage"
}
+
diff --git a/app/code/Magento/CatalogInventoryGraphQl/composer.json b/app/code/Magento/CatalogInventoryGraphQl/composer.json
index 7e67a1ab436ae..5078c264e5d9a 100644
--- a/app/code/Magento/CatalogInventoryGraphQl/composer.json
+++ b/app/code/Magento/CatalogInventoryGraphQl/composer.json
@@ -2,18 +2,19 @@
"name": "magento/module-catalog-inventory-graph-ql",
"description": "N/A",
"type": "magento2-module",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-store": "*",
- "magento/module-catalog": "*",
- "magento/module-catalog-inventory": "*",
- "magento/module-graph-ql": "*"
- },
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.4",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-catalog-inventory": "100.4.*",
+ "magento/module-graph-ql": "100.4.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -23,3 +24,4 @@
}
}
}
+
diff --git a/app/code/Magento/CatalogRule/composer.json b/app/code/Magento/CatalogRule/composer.json
index d31325e6737ff..3f9be4229af60 100644
--- a/app/code/Magento/CatalogRule/composer.json
+++ b/app/code/Magento/CatalogRule/composer.json
@@ -1,29 +1,30 @@
{
"name": "magento/module-catalog-rule",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "101.2.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-catalog": "*",
- "magento/module-customer": "*",
- "magento/module-eav": "*",
- "magento/module-rule": "*",
- "magento/module-store": "*",
- "magento/module-ui": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-rule": "100.4.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-ui": "101.2.*"
},
"suggest": {
- "magento/module-import-export": "*",
- "magento/module-catalog-rule-sample-data": "*"
+ "magento/module-import-export": "101.0.*",
+ "magento/module-catalog-rule-sample-data": "Sample Data version: 100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -33,3 +34,4 @@
}
}
}
+
diff --git a/app/code/Magento/CatalogRuleConfigurable/composer.json b/app/code/Magento/CatalogRuleConfigurable/composer.json
index 0f5055577ef36..2ef7d4fc77202 100644
--- a/app/code/Magento/CatalogRuleConfigurable/composer.json
+++ b/app/code/Magento/CatalogRuleConfigurable/composer.json
@@ -1,25 +1,26 @@
{
"name": "magento/module-catalog-rule-configurable",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.6",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
+ "magento/framework": "103.0.*",
"magento/magento-composer-installer": "*",
- "magento/module-catalog": "*",
- "magento/module-catalog-rule": "*",
- "magento/module-configurable-product": "*"
+ "magento/module-catalog": "104.0.*",
+ "magento/module-catalog-rule": "101.2.*",
+ "magento/module-configurable-product": "100.4.*"
},
"suggest": {
- "magento/module-catalog-rule": "*"
+ "magento/module-catalog-rule": "101.2.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -29,3 +30,4 @@
}
}
}
+
diff --git a/app/code/Magento/CatalogRuleGraphQl/composer.json b/app/code/Magento/CatalogRuleGraphQl/composer.json
index 4bf1f3e00166d..fe10b0a17c6fd 100644
--- a/app/code/Magento/CatalogRuleGraphQl/composer.json
+++ b/app/code/Magento/CatalogRuleGraphQl/composer.json
@@ -2,17 +2,18 @@
"name": "magento/module-catalog-rule-graph-ql",
"description": "N/A",
"type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
+ "version": "100.4.4",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*"
+ "magento/framework": "103.0.*"
},
"suggest": {
- "magento/module-catalog-rule": "*"
+ "magento/module-catalog-rule": "101.2.*"
},
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -22,3 +23,4 @@
}
}
}
+
diff --git a/app/code/Magento/CatalogSearch/composer.json b/app/code/Magento/CatalogSearch/composer.json
index de43b68834b11..e70b81dc5835e 100644
--- a/app/code/Magento/CatalogSearch/composer.json
+++ b/app/code/Magento/CatalogSearch/composer.json
@@ -1,32 +1,33 @@
{
"name": "magento/module-catalog-search",
"description": "Catalog search",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "102.0.7-p3",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-catalog": "*",
- "magento/module-indexer": "*",
- "magento/module-catalog-inventory": "*",
- "magento/module-customer": "*",
- "magento/module-directory": "*",
- "magento/module-eav": "*",
- "magento/module-search": "*",
- "magento/module-store": "*",
- "magento/module-theme": "*",
- "magento/module-ui": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-indexer": "100.4.*",
+ "magento/module-catalog-inventory": "100.4.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-directory": "100.4.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-search": "101.1.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-theme": "101.1.*",
+ "magento/module-ui": "101.2.*"
},
"suggest": {
- "magento/module-config": "*"
+ "magento/module-config": "101.2.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -36,3 +37,4 @@
}
}
}
+
diff --git a/app/code/Magento/CatalogSearch/etc/acl.xml b/app/code/Magento/CatalogSearch/etc/acl.xml
index dd82addc2e304..e30b8ec8a4b97 100644
--- a/app/code/Magento/CatalogSearch/etc/acl.xml
+++ b/app/code/Magento/CatalogSearch/etc/acl.xml
@@ -13,7 +13,7 @@
-
+
@@ -21,4 +21,4 @@
-
\ No newline at end of file
+
diff --git a/app/code/Magento/CatalogUrlRewrite/composer.json b/app/code/Magento/CatalogUrlRewrite/composer.json
index 753a3a9956efa..33f03d0d8ef92 100644
--- a/app/code/Magento/CatalogUrlRewrite/composer.json
+++ b/app/code/Magento/CatalogUrlRewrite/composer.json
@@ -1,29 +1,30 @@
{
"name": "magento/module-catalog-url-rewrite",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-catalog": "*",
- "magento/module-catalog-import-export": "*",
- "magento/module-eav": "*",
- "magento/module-import-export": "*",
- "magento/module-store": "*",
- "magento/module-ui": "*",
- "magento/module-url-rewrite": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-catalog-import-export": "101.1.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-import-export": "101.0.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-ui": "101.2.*",
+ "magento/module-url-rewrite": "102.0.*"
},
"suggest": {
- "magento/module-webapi": "*"
+ "magento/module-webapi": "100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -33,3 +34,4 @@
}
}
}
+
diff --git a/app/code/Magento/CatalogUrlRewriteGraphQl/composer.json b/app/code/Magento/CatalogUrlRewriteGraphQl/composer.json
index 69bff5a91d73d..c2eb312f31a6d 100644
--- a/app/code/Magento/CatalogUrlRewriteGraphQl/composer.json
+++ b/app/code/Magento/CatalogUrlRewriteGraphQl/composer.json
@@ -2,23 +2,24 @@
"name": "magento/module-catalog-url-rewrite-graph-ql",
"description": "N/A",
"type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
+ "version": "100.4.5",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/module-store": "*",
- "magento/module-catalog": "*",
- "magento/module-catalog-graph-ql": "*",
- "magento/module-url-rewrite-graph-ql": "*",
- "magento/framework": "*"
+ "magento/module-store": "101.1.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-catalog-graph-ql": "100.4.*",
+ "magento/module-url-rewrite-graph-ql": "100.4.*",
+ "magento/framework": "103.0.*"
},
"suggest": {
- "magento/module-catalog-url-rewrite": "*",
- "magento/module-catalog-graph-ql": "*",
- "magento/module-url-rewrite-graph-ql": "*"
+ "magento/module-catalog-url-rewrite": "100.4.*",
+ "magento/module-catalog-graph-ql": "100.4.*",
+ "magento/module-url-rewrite-graph-ql": "100.4.*"
},
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -28,3 +29,4 @@
}
}
}
+
diff --git a/app/code/Magento/CatalogWidget/composer.json b/app/code/Magento/CatalogWidget/composer.json
index 44ef0bbebbd35..a3aaf21464dd4 100644
--- a/app/code/Magento/CatalogWidget/composer.json
+++ b/app/code/Magento/CatalogWidget/composer.json
@@ -1,27 +1,28 @@
{
"name": "magento/module-catalog-widget",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-catalog": "*",
- "magento/module-customer": "*",
- "magento/module-eav": "*",
- "magento/module-rule": "*",
- "magento/module-store": "*",
- "magento/module-widget": "*",
- "magento/module-wishlist": "*",
- "magento/module-theme": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-rule": "100.4.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-widget": "101.2.*",
+ "magento/module-wishlist": "101.2.*",
+ "magento/module-theme": "101.1.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -31,3 +32,4 @@
}
}
}
+
diff --git a/app/code/Magento/Checkout/composer.json b/app/code/Magento/Checkout/composer.json
index c30a2ed8743cc..ed2145132947f 100644
--- a/app/code/Magento/Checkout/composer.json
+++ b/app/code/Magento/Checkout/composer.json
@@ -1,42 +1,43 @@
{
"name": "magento/module-checkout",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-captcha": "*",
- "magento/module-catalog": "*",
- "magento/module-catalog-inventory": "*",
- "magento/module-config": "*",
- "magento/module-customer": "*",
- "magento/module-directory": "*",
- "magento/module-eav": "*",
- "magento/module-msrp": "*",
- "magento/module-page-cache": "*",
- "magento/module-payment": "*",
- "magento/module-quote": "*",
- "magento/module-sales": "*",
- "magento/module-sales-rule": "*",
- "magento/module-security": "*",
- "magento/module-shipping": "*",
- "magento/module-store": "*",
- "magento/module-tax": "*",
- "magento/module-theme": "*",
- "magento/module-ui": "*",
- "magento/module-authorization": "*",
- "magento/module-csp": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-captcha": "100.4.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-catalog-inventory": "100.4.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-directory": "100.4.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-msrp": "100.4.*",
+ "magento/module-page-cache": "100.4.*",
+ "magento/module-payment": "100.4.*",
+ "magento/module-quote": "101.2.*",
+ "magento/module-sales": "103.0.*",
+ "magento/module-sales-rule": "101.2.*",
+ "magento/module-security": "100.4.*",
+ "magento/module-shipping": "100.4.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-tax": "100.4.*",
+ "magento/module-theme": "101.1.*",
+ "magento/module-ui": "101.2.*",
+ "magento/module-authorization": "100.4.*",
+ "magento/module-csp": "100.4.*"
},
"suggest": {
- "magento/module-cookie": "*"
+ "magento/module-cookie": "100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -46,3 +47,4 @@
}
}
}
+
diff --git a/app/code/Magento/CheckoutAgreements/composer.json b/app/code/Magento/CheckoutAgreements/composer.json
index 7d23cf7b8b043..d72b8a5ec1984 100644
--- a/app/code/Magento/CheckoutAgreements/composer.json
+++ b/app/code/Magento/CheckoutAgreements/composer.json
@@ -1,22 +1,23 @@
{
"name": "magento/module-checkout-agreements",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.6",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-checkout": "*",
- "magento/module-quote": "*",
- "magento/module-store": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-checkout": "100.4.*",
+ "magento/module-quote": "101.2.*",
+ "magento/module-store": "101.1.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -26,3 +27,4 @@
}
}
}
+
diff --git a/app/code/Magento/CheckoutAgreementsGraphQl/composer.json b/app/code/Magento/CheckoutAgreementsGraphQl/composer.json
index 1e43ad7b5cc07..2a5bfc80f520a 100644
--- a/app/code/Magento/CheckoutAgreementsGraphQl/composer.json
+++ b/app/code/Magento/CheckoutAgreementsGraphQl/composer.json
@@ -2,19 +2,20 @@
"name": "magento/module-checkout-agreements-graph-ql",
"description": "N/A",
"type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
+ "version": "100.4.3",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-store": "*",
- "magento/module-checkout-agreements": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-checkout-agreements": "100.4.*"
},
"suggest": {
- "magento/module-graph-ql": "*"
+ "magento/module-graph-ql": "100.4.*"
},
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -24,3 +25,4 @@
}
}
}
+
diff --git a/app/code/Magento/Cms/Block/Adminhtml/Block/Widget/Chooser.php b/app/code/Magento/Cms/Block/Adminhtml/Block/Widget/Chooser.php
index 897ce651146b8..3165b1bc02b22 100644
--- a/app/code/Magento/Cms/Block/Adminhtml/Block/Widget/Chooser.php
+++ b/app/code/Magento/Cms/Block/Adminhtml/Block/Widget/Chooser.php
@@ -96,7 +96,7 @@ public function prepareElementHtml(\Magento\Framework\Data\Form\Element\Abstract
*/
public function getRowClickCallback()
{
- $chooserJsObject = $this->getId();
+ $chooserJsObject = $this->_escaper->escapeJs($this->getId());
$js = '
function (grid, event) {
var trElement = Event.findElement(event, "tr");
diff --git a/app/code/Magento/Cms/Block/Adminhtml/Page/Widget/Chooser.php b/app/code/Magento/Cms/Block/Adminhtml/Page/Widget/Chooser.php
index 32d36a1869958..7d313d641d7d7 100644
--- a/app/code/Magento/Cms/Block/Adminhtml/Page/Widget/Chooser.php
+++ b/app/code/Magento/Cms/Block/Adminhtml/Page/Widget/Chooser.php
@@ -8,7 +8,6 @@
/**
* CMS page chooser for Wysiwyg CMS widget
*
- * @author Magento Core Team
*/
class Chooser extends \Magento\Backend\Block\Widget\Grid\Extended
{
@@ -65,7 +64,6 @@ public function __construct(
protected function _construct()
{
parent::_construct();
- //$this->setDefaultSort('name');
$this->setUseAjax(true);
$this->setDefaultFilter(['chooser_is_active' => '1']);
}
@@ -113,7 +111,7 @@ public function prepareElementHtml(\Magento\Framework\Data\Form\Element\Abstract
*/
public function getRowClickCallback()
{
- $chooserJsObject = $this->getId();
+ $chooserJsObject = $this->_escaper->escapeJs($this->getId());
$js = '
function (grid, event) {
var trElement = Event.findElement(event, "tr");
diff --git a/app/code/Magento/Cms/Model/Wysiwyg/DefaultConfigProvider.php b/app/code/Magento/Cms/Model/Wysiwyg/DefaultConfigProvider.php
index 1212cc827d1c0..09820927e6036 100644
--- a/app/code/Magento/Cms/Model/Wysiwyg/DefaultConfigProvider.php
+++ b/app/code/Magento/Cms/Model/Wysiwyg/DefaultConfigProvider.php
@@ -33,7 +33,7 @@ public function getConfig(\Magento\Framework\DataObject $config) : \Magento\Fram
{
$config->addData([
'tinymce' => [
- 'toolbar' => 'formatselect | bold italic underline | alignleft aligncenter alignright | '
+ 'toolbar' => ' blocks | formatselect | bold italic underline | alignleft aligncenter alignright | '
. 'bullist numlist | link table charmap',
'plugins' => implode(
' ',
@@ -44,9 +44,7 @@ public function getConfig(\Magento\Framework\DataObject $config) : \Magento\Fram
'link',
'charmap',
'media',
- 'noneditable',
'table',
- 'paste',
'code',
'help',
'table'
diff --git a/app/code/Magento/Cms/Test/Mftf/Data/WysiwygConfigData.xml b/app/code/Magento/Cms/Test/Mftf/Data/WysiwygConfigData.xml
index e8c02dfd56589..5fae3d9842e3b 100644
--- a/app/code/Magento/Cms/Test/Mftf/Data/WysiwygConfigData.xml
+++ b/app/code/Magento/Cms/Test/Mftf/Data/WysiwygConfigData.xml
@@ -22,6 +22,6 @@
cms/wysiwyg/editor
0
Yes
- mage/adminhtml/wysiwyg/tiny_mce/tinymce5Adapter
+ mage/adminhtml/wysiwyg/tiny_mce/tinymceAdapter
diff --git a/app/code/Magento/Cms/Test/Mftf/Section/TinyMCESection/MediaGallerySection.xml b/app/code/Magento/Cms/Test/Mftf/Section/TinyMCESection/MediaGallerySection.xml
index 11084eea441c2..4945692d67d7d 100644
--- a/app/code/Magento/Cms/Test/Mftf/Section/TinyMCESection/MediaGallerySection.xml
+++ b/app/code/Magento/Cms/Test/Mftf/Section/TinyMCESection/MediaGallerySection.xml
@@ -22,7 +22,7 @@
-
+
diff --git a/app/code/Magento/Cms/Test/Mftf/Section/TinyMCESection/TinyMCESection.xml b/app/code/Magento/Cms/Test/Mftf/Section/TinyMCESection/TinyMCESection.xml
index abc4d99e16597..04c7dce180cc1 100644
--- a/app/code/Magento/Cms/Test/Mftf/Section/TinyMCESection/TinyMCESection.xml
+++ b/app/code/Magento/Cms/Test/Mftf/Section/TinyMCESection/TinyMCESection.xml
@@ -16,19 +16,19 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/code/Magento/Cms/composer.json b/app/code/Magento/Cms/composer.json
index 14650f9625026..887d8ad3d367d 100644
--- a/app/code/Magento/Cms/composer.json
+++ b/app/code/Magento/Cms/composer.json
@@ -1,30 +1,31 @@
{
"name": "magento/module-cms",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "104.0.7-p3",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-catalog": "*",
- "magento/module-email": "*",
- "magento/module-media-storage": "*",
- "magento/module-store": "*",
- "magento/module-theme": "*",
- "magento/module-ui": "*",
- "magento/module-variable": "*",
- "magento/module-widget": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-email": "101.1.*",
+ "magento/module-media-storage": "100.4.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-theme": "101.1.*",
+ "magento/module-ui": "101.2.*",
+ "magento/module-variable": "100.4.*",
+ "magento/module-widget": "101.2.*"
},
"suggest": {
- "magento/module-cms-sample-data": "*"
+ "magento/module-cms-sample-data": "Sample Data version: 100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -34,3 +35,4 @@
}
}
}
+
diff --git a/app/code/Magento/Cms/etc/adminhtml/di.xml b/app/code/Magento/Cms/etc/adminhtml/di.xml
index aa1b812561a2d..69b39f10a05e4 100644
--- a/app/code/Magento/Cms/etc/adminhtml/di.xml
+++ b/app/code/Magento/Cms/etc/adminhtml/di.xml
@@ -37,8 +37,8 @@
-
-
- mage/adminhtml/wysiwyg/tiny_mce/tinymce5Adapter
- - TinyMCE 5
+ - mage/adminhtml/wysiwyg/tiny_mce/tinymceAdapter
+ - TinyMCE 7
diff --git a/app/code/Magento/Cms/etc/config.xml b/app/code/Magento/Cms/etc/config.xml
index fa5b28a93639d..d21f497758960 100644
--- a/app/code/Magento/Cms/etc/config.xml
+++ b/app/code/Magento/Cms/etc/config.xml
@@ -23,7 +23,7 @@
enabled
- mage/adminhtml/wysiwyg/tiny_mce/tinymce5Adapter
+ mage/adminhtml/wysiwyg/tiny_mce/tinymceAdapter
0
diff --git a/app/code/Magento/CmsGraphQl/composer.json b/app/code/Magento/CmsGraphQl/composer.json
index 10754a9805e49..c2ed4dd6fa4b2 100644
--- a/app/code/Magento/CmsGraphQl/composer.json
+++ b/app/code/Magento/CmsGraphQl/composer.json
@@ -2,23 +2,24 @@
"name": "magento/module-cms-graph-ql",
"description": "N/A",
"type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
+ "version": "100.4.4",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-cms": "*",
- "magento/module-widget": "*",
- "magento/module-store": "*",
- "magento/module-graph-ql-resolver-cache": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-cms": "104.0.*",
+ "magento/module-widget": "101.2.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-graph-ql-resolver-cache": "100.4.*"
},
"suggest": {
- "magento/module-graph-ql": "*",
- "magento/module-graph-ql-cache": "*",
- "magento/module-store-graph-ql": "*"
+ "magento/module-graph-ql": "100.4.*",
+ "magento/module-graph-ql-cache": "100.4.*",
+ "magento/module-store-graph-ql": "100.4.*"
},
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -28,3 +29,4 @@
}
}
}
+
diff --git a/app/code/Magento/CmsUrlRewrite/composer.json b/app/code/Magento/CmsUrlRewrite/composer.json
index 1aa316bdf9292..d33d62635689a 100644
--- a/app/code/Magento/CmsUrlRewrite/composer.json
+++ b/app/code/Magento/CmsUrlRewrite/composer.json
@@ -1,21 +1,22 @@
{
"name": "magento/module-cms-url-rewrite",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.6",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-cms": "*",
- "magento/module-store": "*",
- "magento/module-url-rewrite": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-cms": "104.0.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-url-rewrite": "102.0.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -25,3 +26,4 @@
}
}
}
+
diff --git a/app/code/Magento/CmsUrlRewriteGraphQl/composer.json b/app/code/Magento/CmsUrlRewriteGraphQl/composer.json
index 91a002e33fdfa..b5375c8a5e75e 100644
--- a/app/code/Magento/CmsUrlRewriteGraphQl/composer.json
+++ b/app/code/Magento/CmsUrlRewriteGraphQl/composer.json
@@ -2,22 +2,23 @@
"name": "magento/module-cms-url-rewrite-graph-ql",
"description": "N/A",
"type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
+ "version": "100.4.5",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-cms": "*",
- "magento/module-store": "*",
- "magento/module-url-rewrite-graph-ql": "*",
- "magento/module-cms-graph-ql": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-cms": "104.0.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-url-rewrite-graph-ql": "100.4.*",
+ "magento/module-cms-graph-ql": "100.4.*"
},
"suggest": {
- "magento/module-cms-url-rewrite": "*",
- "magento/module-catalog-graph-ql": "*"
+ "magento/module-cms-url-rewrite": "100.4.*",
+ "magento/module-catalog-graph-ql": "100.4.*"
},
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -27,3 +28,4 @@
}
}
}
+
diff --git a/app/code/Magento/CompareListGraphQl/composer.json b/app/code/Magento/CompareListGraphQl/composer.json
index eef7a1ada8b09..bcc4109a6c9f6 100644
--- a/app/code/Magento/CompareListGraphQl/composer.json
+++ b/app/code/Magento/CompareListGraphQl/composer.json
@@ -2,16 +2,17 @@
"name": "magento/module-compare-list-graph-ql",
"description": "N/A",
"type": "magento2-module",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-catalog": "*",
- "magento/module-customer": "*"
- },
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.3",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-customer": "103.0.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -21,3 +22,4 @@
}
}
}
+
diff --git a/app/code/Magento/Config/Model/Config/Backend/File.php b/app/code/Magento/Config/Model/Config/Backend/File.php
index 6a6b0257f7b3f..560ce351e69ae 100644
--- a/app/code/Magento/Config/Model/Config/Backend/File.php
+++ b/app/code/Magento/Config/Model/Config/Backend/File.php
@@ -278,8 +278,10 @@ protected function _getAllowedExtensions()
*/
private function setValueAfterValidation(string $value): void
{
- // avoid intercepting value
- if (preg_match('/[^a-z0-9_\/\\-\\.]+/i', $value)) {
+ if (preg_match('/[^a-z0-9_\/\\-\\.]+/i', $value)
+ // phpcs:ignore Magento2.Functions.DiscouragedFunction
+ || !$this->_mediaDirectory->isFile($this->_getUploadDir() . DIRECTORY_SEPARATOR . basename($value))
+ ) {
throw new LocalizedException(__('Invalid file name'));
}
diff --git a/app/code/Magento/Config/composer.json b/app/code/Magento/Config/composer.json
index c11b6a70755ea..c2c42456b54c5 100644
--- a/app/code/Magento/Config/composer.json
+++ b/app/code/Magento/Config/composer.json
@@ -1,25 +1,26 @@
{
"name": "magento/module-config",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "101.2.7-p2",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-cron": "*",
- "magento/module-deploy": "*",
- "magento/module-directory": "*",
- "magento/module-email": "*",
- "magento/module-media-storage": "*",
- "magento/module-store": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-cron": "100.4.*",
+ "magento/module-deploy": "100.4.*",
+ "magento/module-directory": "100.4.*",
+ "magento/module-email": "101.1.*",
+ "magento/module-media-storage": "100.4.*",
+ "magento/module-store": "101.1.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -29,3 +30,4 @@
}
}
}
+
diff --git a/app/code/Magento/ConfigurableImportExport/composer.json b/app/code/Magento/ConfigurableImportExport/composer.json
index 9b5052c5ebf8e..a017a2130b423 100644
--- a/app/code/Magento/ConfigurableImportExport/composer.json
+++ b/app/code/Magento/ConfigurableImportExport/composer.json
@@ -1,24 +1,25 @@
{
"name": "magento/module-configurable-import-export",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.5",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-catalog": "*",
- "magento/module-catalog-import-export": "*",
- "magento/module-configurable-product": "*",
- "magento/module-eav": "*",
- "magento/module-import-export": "*",
- "magento/module-store": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-catalog-import-export": "101.1.*",
+ "magento/module-configurable-product": "100.4.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-import-export": "101.0.*",
+ "magento/module-store": "101.1.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -28,3 +29,4 @@
}
}
}
+
diff --git a/app/code/Magento/ConfigurableProduct/composer.json b/app/code/Magento/ConfigurableProduct/composer.json
index 0fb85d0d5fdd6..4c61de8cdec03 100644
--- a/app/code/Magento/ConfigurableProduct/composer.json
+++ b/app/code/Magento/ConfigurableProduct/composer.json
@@ -1,39 +1,40 @@
{
"name": "magento/module-configurable-product",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-catalog": "*",
- "magento/module-catalog-inventory": "*",
- "magento/module-checkout": "*",
- "magento/module-customer": "*",
- "magento/module-eav": "*",
- "magento/module-media-storage": "*",
- "magento/module-quote": "*",
- "magento/module-store": "*",
- "magento/module-ui": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-catalog-inventory": "100.4.*",
+ "magento/module-checkout": "100.4.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-media-storage": "100.4.*",
+ "magento/module-quote": "101.2.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-ui": "101.2.*"
},
"suggest": {
- "magento/module-msrp": "*",
- "magento/module-webapi": "*",
- "magento/module-sales": "*",
- "magento/module-sales-rule": "*",
- "magento/module-product-video": "*",
- "magento/module-configurable-sample-data": "*",
- "magento/module-product-links-sample-data": "*",
- "magento/module-tax": "*",
- "magento/module-catalog-widget": "*"
+ "magento/module-msrp": "100.4.*",
+ "magento/module-webapi": "100.4.*",
+ "magento/module-sales": "103.0.*",
+ "magento/module-sales-rule": "101.2.*",
+ "magento/module-product-video": "100.4.*",
+ "magento/module-configurable-sample-data": "Sample Data version: 100.4.*",
+ "magento/module-product-links-sample-data": "Sample Data version: 100.4.*",
+ "magento/module-tax": "100.4.*",
+ "magento/module-catalog-widget": "100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -43,3 +44,4 @@
}
}
}
+
diff --git a/app/code/Magento/ConfigurableProductGraphQl/composer.json b/app/code/Magento/ConfigurableProductGraphQl/composer.json
index 666bd2276f772..b298cf05032b0 100644
--- a/app/code/Magento/ConfigurableProductGraphQl/composer.json
+++ b/app/code/Magento/ConfigurableProductGraphQl/composer.json
@@ -2,21 +2,22 @@
"name": "magento/module-configurable-product-graph-ql",
"description": "N/A",
"type": "magento2-module",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/module-catalog": "*",
- "magento/module-configurable-product": "*",
- "magento/module-graph-ql": "*",
- "magento/module-catalog-graph-ql": "*",
- "magento/module-quote": "*",
- "magento/module-quote-graph-ql": "*",
- "magento/module-catalog-inventory": "*",
- "magento/framework": "*"
- },
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.7",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-configurable-product": "100.4.*",
+ "magento/module-graph-ql": "100.4.*",
+ "magento/module-catalog-graph-ql": "100.4.*",
+ "magento/module-quote": "101.2.*",
+ "magento/module-quote-graph-ql": "100.4.*",
+ "magento/module-catalog-inventory": "100.4.*",
+ "magento/framework": "103.0.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -26,3 +27,4 @@
}
}
}
+
diff --git a/app/code/Magento/ConfigurableProductSales/composer.json b/app/code/Magento/ConfigurableProductSales/composer.json
index ba23609f6aba1..03e76e8923d88 100644
--- a/app/code/Magento/ConfigurableProductSales/composer.json
+++ b/app/code/Magento/ConfigurableProductSales/composer.json
@@ -1,22 +1,23 @@
{
"name": "magento/module-configurable-product-sales",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.4",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-catalog": "*",
- "magento/module-sales": "*",
- "magento/module-store": "*",
- "magento/module-configurable-product": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-sales": "103.0.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-configurable-product": "100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -26,3 +27,4 @@
}
}
}
+
diff --git a/app/code/Magento/Contact/composer.json b/app/code/Magento/Contact/composer.json
index 5157e807b7eb5..817ed34ea3645 100644
--- a/app/code/Magento/Contact/composer.json
+++ b/app/code/Magento/Contact/composer.json
@@ -1,22 +1,23 @@
{
"name": "magento/module-contact",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.6",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-cms": "*",
- "magento/module-config": "*",
- "magento/module-customer": "*",
- "magento/module-store": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-cms": "104.0.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-store": "101.1.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -26,3 +27,4 @@
}
}
}
+
diff --git a/app/code/Magento/ContactGraphQl/composer.json b/app/code/Magento/ContactGraphQl/composer.json
index 6292f24a4007c..a855d16636d57 100644
--- a/app/code/Magento/ContactGraphQl/composer.json
+++ b/app/code/Magento/ContactGraphQl/composer.json
@@ -2,21 +2,22 @@
"name": "magento/module-contact-graph-ql",
"description": "N/A",
"type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.0",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-contact": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-contact": "100.4.*"
},
"suggest": {
- "magento/module-graph-ql": "*"
+ "magento/module-graph-ql": "100.4.*"
},
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -26,3 +27,4 @@
}
}
}
+
diff --git a/app/code/Magento/Cookie/composer.json b/app/code/Magento/Cookie/composer.json
index dea4e3857a428..ca5ad5dd3d38f 100644
--- a/app/code/Magento/Cookie/composer.json
+++ b/app/code/Magento/Cookie/composer.json
@@ -1,22 +1,23 @@
{
"name": "magento/module-cookie",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-store": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-store": "101.1.*"
},
"suggest": {
- "magento/module-backend": "*"
+ "magento/module-backend": "102.0.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -26,3 +27,4 @@
}
}
}
+
diff --git a/app/code/Magento/Cron/composer.json b/app/code/Magento/Cron/composer.json
index 02f55e9de4597..41bd9b53e3963 100644
--- a/app/code/Magento/Cron/composer.json
+++ b/app/code/Magento/Cron/composer.json
@@ -1,22 +1,23 @@
{
"name": "magento/module-cron",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-store": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-store": "101.1.*"
},
"suggest": {
- "magento/module-config": "*"
+ "magento/module-config": "101.2.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -26,3 +27,4 @@
}
}
}
+
diff --git a/app/code/Magento/Csp/composer.json b/app/code/Magento/Csp/composer.json
index c85b28e04a6b0..50d0545aa089d 100644
--- a/app/code/Magento/Csp/composer.json
+++ b/app/code/Magento/Csp/composer.json
@@ -1,21 +1,22 @@
{
"name": "magento/module-csp",
"description": "CSP module enables Content Security Policies for Magento",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.6",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-store": "*",
- "magento/module-require-js": "*",
- "magento/module-deploy": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-require-js": "100.4.*",
+ "magento/module-deploy": "100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -25,3 +26,4 @@
}
}
}
+
diff --git a/app/code/Magento/CurrencySymbol/composer.json b/app/code/Magento/CurrencySymbol/composer.json
index 1e7eae969f401..44856b81b056f 100644
--- a/app/code/Magento/CurrencySymbol/composer.json
+++ b/app/code/Magento/CurrencySymbol/composer.json
@@ -1,23 +1,24 @@
{
"name": "magento/module-currency-symbol",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.5",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-config": "*",
- "magento/module-directory": "*",
- "magento/module-page-cache": "*",
- "magento/module-store": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-directory": "100.4.*",
+ "magento/module-page-cache": "100.4.*",
+ "magento/module-store": "101.1.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -27,3 +28,4 @@
}
}
}
+
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Cart/Product/Composite/Cart.php b/app/code/Magento/Customer/Controller/Adminhtml/Cart/Product/Composite/Cart.php
index c57b53a56dbf0..0203b663a6755 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Cart/Product/Composite/Cart.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Cart/Product/Composite/Cart.php
@@ -12,6 +12,7 @@
use Magento\Quote\Model\Quote\Item;
use Magento\Quote\Model\QuoteFactory;
use Magento\Quote\Model\ResourceModel\QuoteItemRetriever;
+use Magento\Framework\AuthorizationInterface;
/**
* Catalog composite product configuration controller
@@ -60,21 +61,30 @@ abstract class Cart extends \Magento\Backend\App\Action
* @var QuoteItemRetriever
*/
private $quoteItemRetriever;
+
+ /**
+ * @var AuthorizationInterface
+ */
+ protected $_authorization;
+
/**
* @param Action\Context $context
* @param CartRepositoryInterface $quoteRepository
* @param QuoteFactory $quoteFactory
* @param QuoteItemRetriever $quoteItemRetriever
+ * @param AuthorizationInterface $authorization
*/
public function __construct(
Action\Context $context,
CartRepositoryInterface $quoteRepository,
QuoteFactory $quoteFactory,
- QuoteItemRetriever $quoteItemRetriever
+ QuoteItemRetriever $quoteItemRetriever,
+ AuthorizationInterface $authorization
) {
$this->quoteRepository = $quoteRepository;
$this->quoteFactory = $quoteFactory;
$this->quoteItemRetriever = $quoteItemRetriever;
+ $this->_authorization = $authorization;
parent::__construct($context);
}
@@ -112,4 +122,13 @@ protected function _initData()
return $this;
}
+
+ /**
+ * @inheritdoc
+ */
+ protected function _isAllowed()
+ {
+ return $this->_authorization->isAllowed(self::ADMIN_RESOURCE)
+ && $this->_authorization->isAllowed('Magento_Cart::cart');
+ }
}
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php
index 910f4e94b90b7..6d544cfb75bc5 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php
@@ -3,6 +3,8 @@
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
+declare(strict_types=1);
+
namespace Magento\Customer\Controller\Adminhtml\Index;
use Magento\Backend\App\Action\Context;
@@ -43,6 +45,7 @@
*
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
* @deprecated 101.0.0
+ * @see no alternatives
*/
class Cart extends BaseAction implements HttpGetActionInterface, HttpPostActionInterface
{
@@ -55,6 +58,13 @@ class Cart extends BaseAction implements HttpGetActionInterface, HttpPostActionI
*/
private $storeManager;
+ /**
+ * Authorization level of a basic admin cart
+ *
+ * @see _isAllowed()
+ */
+ public const ADMIN_RESOURCE = 'Magento_Cart::cart';
+
/**
* Constructor
*
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Carts.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Carts.php
index bc9ca7628e132..b0d36fb2682a5 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Carts.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Carts.php
@@ -3,10 +3,23 @@
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
+declare(strict_types=1);
+
namespace Magento\Customer\Controller\Adminhtml\Index;
-class Carts extends \Magento\Customer\Controller\Adminhtml\Index
+use Magento\Customer\Controller\Adminhtml\Index as BaseAction;
+use Magento\Framework\App\Action\HttpGetActionInterface;
+use Magento\Framework\App\Action\HttpPostActionInterface as HttpPostActionInterface;
+
+class Carts extends BaseAction implements HttpGetActionInterface, HttpPostActionInterface
{
+ /**
+ * Authorization level of a basic admin cart
+ *
+ * @see _isAllowed()
+ */
+ public const ADMIN_RESOURCE = 'Magento_Cart::cart';
+
/**
* Get shopping carts from all websites for specified client
*
diff --git a/app/code/Magento/Customer/Model/Plugin/UpdateCustomer.php b/app/code/Magento/Customer/Model/Plugin/UpdateCustomer.php
index c6207896fc55d..1436453a88fbe 100644
--- a/app/code/Magento/Customer/Model/Plugin/UpdateCustomer.php
+++ b/app/code/Magento/Customer/Model/Plugin/UpdateCustomer.php
@@ -52,14 +52,21 @@ public function beforeSave(
CustomerInterface $customer,
?string $passwordHash = null
): array {
- $customerSessionId = $this->userContext->getUserType() === $this->userContext::USER_TYPE_CUSTOMER ?
- (int)$this->userContext->getUserId() : 0;
+ $userType = $this->userContext->getUserType();
+ $customerSessionId = (int)$this->userContext->getUserId();
$customerId = (int)$this->request->getParam('customerId');
$bodyParams = $this->request->getBodyParams();
- if (!isset($bodyParams['customer']['Id']) && $customerId) {
- if ($customerId === $customerSessionId || $customerSessionId === 0) {
- $customer = $this->getUpdatedCustomer($customerRepository->getById($customerId), $customer);
- }
+
+ if ($userType === UserContextInterface::USER_TYPE_CUSTOMER &&
+ !isset($bodyParams['customer']['Id']) &&
+ $customerId &&
+ $customerId === $customerSessionId
+ ) {
+ $customer = $this->getUpdatedCustomer($customerRepository->getById($customerId), $customer);
+ } elseif ($customerId && in_array($userType, [UserContextInterface::USER_TYPE_ADMIN,
+ UserContextInterface::USER_TYPE_INTEGRATION], true)
+ ) {
+ $customer = $this->getUpdatedCustomer($customerRepository->getById($customerId), $customer);
}
return [$customer, $passwordHash];
diff --git a/app/code/Magento/Customer/Plugin/Webapi/Controller/Rest/ValidateCustomerData.php b/app/code/Magento/Customer/Plugin/Webapi/Controller/Rest/ValidateCustomerData.php
deleted file mode 100644
index 63551ff5a7576..0000000000000
--- a/app/code/Magento/Customer/Plugin/Webapi/Controller/Rest/ValidateCustomerData.php
+++ /dev/null
@@ -1,56 +0,0 @@
-validateInputData($inputData[self::CUSTOMER_KEY]);
- }
- return [$inputData, $parameters];
- }
-
- /**
- * Validates InputData
- *
- * @param array $inputData
- * @return array
- */
- private function validateInputData(array $inputData): array
- {
- $result = [];
-
- $data = array_filter($inputData, function ($k) use (&$result) {
- $key = is_string($k) ? strtolower(str_replace('_', "", $k)) : $k;
- return !isset($result[$key]) && ($result[$key] = true);
- }, ARRAY_FILTER_USE_KEY);
-
- return array_map(function ($value) {
- return is_array($value) ? $this->validateInputData($value) : $value;
- }, $data);
- }
-}
diff --git a/app/code/Magento/Customer/Test/Mftf/Data/AddressData.xml b/app/code/Magento/Customer/Test/Mftf/Data/AddressData.xml
index e821e69c148b8..4e169c0863360 100644
--- a/app/code/Magento/Customer/Test/Mftf/Data/AddressData.xml
+++ b/app/code/Magento/Customer/Test/Mftf/Data/AddressData.xml
@@ -379,6 +379,7 @@
Magento
- 6161 West Centinela Avenue
+ - 16
Culver City
US
diff --git a/app/code/Magento/Customer/Test/Unit/Plugin/Webapi/Controller/Rest/ValidateCustomerDataTest.php b/app/code/Magento/Customer/Test/Unit/Plugin/Webapi/Controller/Rest/ValidateCustomerDataTest.php
deleted file mode 100644
index 72d5f36e2266f..0000000000000
--- a/app/code/Magento/Customer/Test/Unit/Plugin/Webapi/Controller/Rest/ValidateCustomerDataTest.php
+++ /dev/null
@@ -1,123 +0,0 @@
-validateCustomerDataObject = ObjectManager::getInstance()->get(ValidateCustomerData::class);
- $this->reflectionObject = new ReflectionClass(get_class($this->validateCustomerDataObject));
- }
-
- /**
- * Test if the customer Info is valid
- *
- * @param array $customerInfo
- * @param array $result
- * @dataProvider dataProviderInputData
- * @throws Exception
- */
- public function testValidateInputData(array $customerInfo, array $result)
- {
- $this->assertEquals(
- $result,
- $this->invokeValidateInputData('validateInputData', [$customerInfo])
- );
- }
-
- /**
- * @param string $methodName
- * @param array $arguments
- * @return mixed
- * @throws Exception
- */
- private function invokeValidateInputData(string $methodName, array $arguments = [])
- {
- $validateInputDataMethod = $this->reflectionObject->getMethod($methodName);
- $validateInputDataMethod->setAccessible(true);
- return $validateInputDataMethod->invokeArgs($this->validateCustomerDataObject, $arguments);
- }
-
- /**
- * @return array
- */
- public function dataProviderInputData(): array
- {
- return [
- [
- ['customer' => [
- 'id' => -1,
- 'Id' => 1,
- 'name' => [
- 'firstName' => 'Test',
- 'LastName' => 'user'
- ],
- 'isHavingOwnHouse' => 1,
- 'address' => [
- 'street' => '1st Street',
- 'Street' => '3rd Street',
- 'city' => 'London'
- ],
- ]
- ],
- ['customer' => [
- 'id' => -1,
- 'name' => [
- 'firstName' => 'Test',
- 'LastName' => 'user'
- ],
- 'isHavingOwnHouse' => 1,
- 'address' => [
- 'street' => '1st Street',
- 'city' => 'London'
- ],
- ]
- ],
- ['customer' => [
- 'id' => -1,
- '_Id' => 1,
- 'name' => [
- 'firstName' => 'Test',
- 'LastName' => 'user'
- ],
- 'isHavingOwnHouse' => 1,
- 'address' => [
- 'street' => '1st Street',
- 'city' => 'London'
- ],
- ]
- ],
- ]
- ];
- }
-}
diff --git a/app/code/Magento/Customer/composer.json b/app/code/Magento/Customer/composer.json
index 822e82f2643ea..451a54b18a5e8 100644
--- a/app/code/Magento/Customer/composer.json
+++ b/app/code/Magento/Customer/composer.json
@@ -1,42 +1,43 @@
{
"name": "magento/module-customer",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "103.0.7-p3",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-authorization": "*",
- "magento/module-backend": "*",
- "magento/module-catalog": "*",
- "magento/module-checkout": "*",
- "magento/module-config": "*",
- "magento/module-directory": "*",
- "magento/module-eav": "*",
- "magento/module-integration": "*",
- "magento/module-media-storage": "*",
- "magento/module-newsletter": "*",
- "magento/module-page-cache": "*",
- "magento/module-quote": "*",
- "magento/module-sales": "*",
- "magento/module-store": "*",
- "magento/module-tax": "*",
- "magento/module-theme": "*",
- "magento/module-ui": "*",
- "magento/module-wishlist": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-authorization": "100.4.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-checkout": "100.4.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-directory": "100.4.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-integration": "100.4.*",
+ "magento/module-media-storage": "100.4.*",
+ "magento/module-newsletter": "100.4.*",
+ "magento/module-page-cache": "100.4.*",
+ "magento/module-quote": "101.2.*",
+ "magento/module-sales": "103.0.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-tax": "100.4.*",
+ "magento/module-theme": "101.1.*",
+ "magento/module-ui": "101.2.*",
+ "magento/module-wishlist": "101.2.*"
},
"suggest": {
- "magento/module-cookie": "*",
- "magento/module-customer-sample-data": "*",
- "magento/module-webapi": "*",
- "magento/module-asynchronous-operations": "*"
+ "magento/module-cookie": "100.4.*",
+ "magento/module-customer-sample-data": "Sample Data version: 100.4.*",
+ "magento/module-webapi": "100.4.*",
+ "magento/module-asynchronous-operations": "100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -46,3 +47,4 @@
}
}
}
+
diff --git a/app/code/Magento/Customer/etc/webapi_rest/di.xml b/app/code/Magento/Customer/etc/webapi_rest/di.xml
index c5d7a28a3651d..18627b68320ed 100644
--- a/app/code/Magento/Customer/etc/webapi_rest/di.xml
+++ b/app/code/Magento/Customer/etc/webapi_rest/di.xml
@@ -31,9 +31,6 @@
-
-
-
diff --git a/app/code/Magento/CustomerAnalytics/composer.json b/app/code/Magento/CustomerAnalytics/composer.json
index faaa18d73ed87..41220d1ebeac4 100644
--- a/app/code/Magento/CustomerAnalytics/composer.json
+++ b/app/code/Magento/CustomerAnalytics/composer.json
@@ -1,17 +1,18 @@
{
"name": "magento/module-customer-analytics",
"description": "N/A",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-customer": "*",
- "magento/module-analytics": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.4",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-analytics": "100.4.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -21,3 +22,4 @@
}
}
}
+
diff --git a/app/code/Magento/CustomerDownloadableGraphQl/composer.json b/app/code/Magento/CustomerDownloadableGraphQl/composer.json
index 19bf39274e56f..e7a25afe97d40 100644
--- a/app/code/Magento/CustomerDownloadableGraphQl/composer.json
+++ b/app/code/Magento/CustomerDownloadableGraphQl/composer.json
@@ -2,19 +2,20 @@
"name": "magento/module-customer-downloadable-graph-ql",
"description": "N/A",
"type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
+ "version": "100.4.3",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/module-downloadable-graph-ql": "*",
- "magento/module-graph-ql": "*",
- "magento/framework": "*"
+ "magento/module-downloadable-graph-ql": "100.4.*",
+ "magento/module-graph-ql": "100.4.*",
+ "magento/framework": "103.0.*"
},
"suggest": {
- "magento/module-catalog-graph-ql": "*"
+ "magento/module-catalog-graph-ql": "100.4.*"
},
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -24,3 +25,4 @@
}
}
}
+
diff --git a/app/code/Magento/CustomerGraphQl/composer.json b/app/code/Magento/CustomerGraphQl/composer.json
index da9e0a73d47d8..515b736b87529 100644
--- a/app/code/Magento/CustomerGraphQl/composer.json
+++ b/app/code/Magento/CustomerGraphQl/composer.json
@@ -2,26 +2,27 @@
"name": "magento/module-customer-graph-ql",
"description": "N/A",
"type": "magento2-module",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/module-authorization": "*",
- "magento/module-customer": "*",
- "magento/module-eav": "*",
- "magento/module-eav-graph-ql": "*",
- "magento/module-graph-ql": "*",
- "magento/module-newsletter": "*",
- "magento/module-integration": "*",
- "magento/module-store": "*",
- "magento/framework": "*",
- "magento/module-directory": "*",
- "magento/module-tax": "*",
- "magento/module-graph-ql-cache": "*",
- "magento/module-graph-ql-resolver-cache": "*"
- },
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.7",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/module-authorization": "100.4.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-eav-graph-ql": "100.4.*",
+ "magento/module-graph-ql": "100.4.*",
+ "magento/module-newsletter": "100.4.*",
+ "magento/module-integration": "100.4.*",
+ "magento/module-store": "101.1.*",
+ "magento/framework": "103.0.*",
+ "magento/module-directory": "100.4.*",
+ "magento/module-tax": "100.4.*",
+ "magento/module-graph-ql-cache": "100.4.*",
+ "magento/module-graph-ql-resolver-cache": "100.4.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -31,3 +32,4 @@
}
}
}
+
diff --git a/app/code/Magento/CustomerImportExport/composer.json b/app/code/Magento/CustomerImportExport/composer.json
index 90038eaa71e90..3bd22d02f3092 100644
--- a/app/code/Magento/CustomerImportExport/composer.json
+++ b/app/code/Magento/CustomerImportExport/composer.json
@@ -1,24 +1,25 @@
{
"name": "magento/module-customer-import-export",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-customer": "*",
- "magento/module-directory": "*",
- "magento/module-eav": "*",
- "magento/module-import-export": "*",
- "magento/module-store": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-directory": "100.4.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-import-export": "101.0.*",
+ "magento/module-store": "101.1.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -28,3 +29,4 @@
}
}
}
+
diff --git a/app/code/Magento/Deploy/composer.json b/app/code/Magento/Deploy/composer.json
index 16b33996caa1f..b6d3125082aa8 100644
--- a/app/code/Magento/Deploy/composer.json
+++ b/app/code/Magento/Deploy/composer.json
@@ -1,22 +1,23 @@
{
"name": "magento/module-deploy",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-config": "*",
- "magento/module-require-js": "*",
- "magento/module-store": "*",
- "magento/module-user": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-require-js": "100.4.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-user": "101.2.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"cli_commands.php",
@@ -27,3 +28,4 @@
}
}
}
+
diff --git a/app/code/Magento/Developer/composer.json b/app/code/Magento/Developer/composer.json
index 0b058f6c80aae..44e486784ce51 100644
--- a/app/code/Magento/Developer/composer.json
+++ b/app/code/Magento/Developer/composer.json
@@ -1,20 +1,21 @@
{
"name": "magento/module-developer",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-config": "*",
- "magento/module-store": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-store": "101.1.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -24,3 +25,4 @@
}
}
}
+
diff --git a/app/code/Magento/Dhl/composer.json b/app/code/Magento/Dhl/composer.json
index e9438df827460..a306e7c9c306e 100644
--- a/app/code/Magento/Dhl/composer.json
+++ b/app/code/Magento/Dhl/composer.json
@@ -1,31 +1,32 @@
{
"name": "magento/module-dhl",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.6",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
"lib-libxml": "*",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-catalog": "*",
- "magento/module-catalog-inventory": "*",
- "magento/module-config": "*",
- "magento/module-directory": "*",
- "magento/module-quote": "*",
- "magento/module-sales": "*",
- "magento/module-shipping": "*",
- "magento/module-store": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-catalog-inventory": "100.4.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-directory": "100.4.*",
+ "magento/module-quote": "101.2.*",
+ "magento/module-sales": "103.0.*",
+ "magento/module-shipping": "100.4.*",
+ "magento/module-store": "101.1.*"
},
"suggest": {
- "magento/module-checkout": "*"
+ "magento/module-checkout": "100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -35,3 +36,4 @@
}
}
}
+
diff --git a/app/code/Magento/Directory/composer.json b/app/code/Magento/Directory/composer.json
index 53dd3b76ada62..bb71aed2d91e4 100644
--- a/app/code/Magento/Directory/composer.json
+++ b/app/code/Magento/Directory/composer.json
@@ -1,22 +1,23 @@
{
"name": "magento/module-directory",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
"lib-libxml": "*",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-config": "*",
- "magento/module-store": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-store": "101.1.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -26,3 +27,4 @@
}
}
}
+
diff --git a/app/code/Magento/DirectoryGraphQl/composer.json b/app/code/Magento/DirectoryGraphQl/composer.json
index fcd83a63dd1a9..540c1d6344ad3 100644
--- a/app/code/Magento/DirectoryGraphQl/composer.json
+++ b/app/code/Magento/DirectoryGraphQl/composer.json
@@ -2,17 +2,18 @@
"name": "magento/module-directory-graph-ql",
"description": "N/A",
"type": "magento2-module",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/module-directory": "*",
- "magento/module-store": "*",
- "magento/module-graph-ql": "*",
- "magento/framework": "*"
- },
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.5",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/module-directory": "100.4.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-graph-ql": "100.4.*",
+ "magento/framework": "103.0.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -22,3 +23,4 @@
}
}
}
+
diff --git a/app/code/Magento/Downloadable/composer.json b/app/code/Magento/Downloadable/composer.json
index f226a7905c89f..3aac4739f7600 100644
--- a/app/code/Magento/Downloadable/composer.json
+++ b/app/code/Magento/Downloadable/composer.json
@@ -1,37 +1,38 @@
{
"name": "magento/module-downloadable",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-catalog": "*",
- "magento/module-catalog-inventory": "*",
- "magento/module-checkout": "*",
- "magento/module-config": "*",
- "magento/module-customer": "*",
- "magento/module-directory": "*",
- "magento/module-eav": "*",
- "magento/module-gift-message": "*",
- "magento/module-media-storage": "*",
- "magento/module-quote": "*",
- "magento/module-sales": "*",
- "magento/module-store": "*",
- "magento/module-tax": "*",
- "magento/module-theme": "*",
- "magento/module-ui": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-catalog-inventory": "100.4.*",
+ "magento/module-checkout": "100.4.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-directory": "100.4.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-gift-message": "100.4.*",
+ "magento/module-media-storage": "100.4.*",
+ "magento/module-quote": "101.2.*",
+ "magento/module-sales": "103.0.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-tax": "100.4.*",
+ "magento/module-theme": "101.1.*",
+ "magento/module-ui": "101.2.*"
},
"suggest": {
- "magento/module-downloadable-sample-data": "*"
+ "magento/module-downloadable-sample-data": "Sample Data version: 100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -41,3 +42,4 @@
}
}
}
+
diff --git a/app/code/Magento/DownloadableGraphQl/composer.json b/app/code/Magento/DownloadableGraphQl/composer.json
index b371c2111daec..e265a3178622b 100644
--- a/app/code/Magento/DownloadableGraphQl/composer.json
+++ b/app/code/Magento/DownloadableGraphQl/composer.json
@@ -2,24 +2,25 @@
"name": "magento/module-downloadable-graph-ql",
"description": "N/A",
"type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/module-store": "*",
- "magento/module-catalog": "*",
- "magento/module-downloadable": "*",
- "magento/module-quote": "*",
- "magento/module-sales": "*",
- "magento/module-quote-graph-ql": "*",
- "magento/framework": "*"
+ "magento/module-store": "101.1.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-downloadable": "100.4.*",
+ "magento/module-quote": "101.2.*",
+ "magento/module-sales": "103.0.*",
+ "magento/module-quote-graph-ql": "100.4.*",
+ "magento/framework": "103.0.*"
},
"suggest": {
- "magento/module-catalog-graph-ql": "*",
- "magento/module-sales-graph-ql": "*"
+ "magento/module-catalog-graph-ql": "100.4.*",
+ "magento/module-sales-graph-ql": "100.4.*"
},
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -29,3 +30,4 @@
}
}
}
+
diff --git a/app/code/Magento/DownloadableImportExport/composer.json b/app/code/Magento/DownloadableImportExport/composer.json
index 9d59453236abd..8fc56ab9b96f8 100644
--- a/app/code/Magento/DownloadableImportExport/composer.json
+++ b/app/code/Magento/DownloadableImportExport/composer.json
@@ -1,24 +1,25 @@
{
"name": "magento/module-downloadable-import-export",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.6",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-catalog": "*",
- "magento/module-catalog-import-export": "*",
- "magento/module-downloadable": "*",
- "magento/module-eav": "*",
- "magento/module-import-export": "*",
- "magento/module-store": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-catalog-import-export": "101.1.*",
+ "magento/module-downloadable": "100.4.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-import-export": "101.0.*",
+ "magento/module-store": "101.1.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -28,3 +29,4 @@
}
}
}
+
diff --git a/app/code/Magento/Eav/composer.json b/app/code/Magento/Eav/composer.json
index 854d8e70c69b3..fdd426945fded 100644
--- a/app/code/Magento/Eav/composer.json
+++ b/app/code/Magento/Eav/composer.json
@@ -1,23 +1,24 @@
{
"name": "magento/module-eav",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "102.1.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-catalog": "*",
- "magento/module-config": "*",
- "magento/module-media-storage": "*",
- "magento/module-store": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-media-storage": "100.4.*",
+ "magento/module-store": "101.1.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -27,3 +28,4 @@
}
}
}
+
diff --git a/app/code/Magento/EavGraphQl/composer.json b/app/code/Magento/EavGraphQl/composer.json
index ec5e60339f8ba..309265ac0c801 100644
--- a/app/code/Magento/EavGraphQl/composer.json
+++ b/app/code/Magento/EavGraphQl/composer.json
@@ -2,18 +2,19 @@
"name": "magento/module-eav-graph-ql",
"description": "N/A",
"type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
+ "version": "100.4.4",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-eav": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-eav": "102.1.*"
},
"suggest": {
- "magento/module-graph-ql": "*"
+ "magento/module-graph-ql": "100.4.*"
},
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -23,3 +24,4 @@
}
}
}
+
diff --git a/app/code/Magento/Elasticsearch/composer.json b/app/code/Magento/Elasticsearch/composer.json
index d49479a1ef008..5b705c3379b2f 100644
--- a/app/code/Magento/Elasticsearch/composer.json
+++ b/app/code/Magento/Elasticsearch/composer.json
@@ -1,27 +1,28 @@
{
"name": "magento/module-elasticsearch",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
+ "version": "101.0.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/module-advanced-search": "*",
- "magento/module-catalog": "*",
- "magento/module-catalog-search": "*",
- "magento/module-customer": "*",
- "magento/module-eav": "*",
- "magento/module-search": "*",
- "magento/module-store": "*",
- "magento/module-catalog-inventory": "*",
- "magento/framework": "*",
+ "magento/module-advanced-search": "100.4.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-catalog-search": "102.0.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-search": "101.1.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-catalog-inventory": "100.4.*",
+ "magento/framework": "103.0.*",
"elasticsearch/elasticsearch": "~7.17.0 || ~8.5.0"
},
"suggest": {
- "magento/module-config": "*"
+ "magento/module-config": "101.2.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -31,3 +32,4 @@
}
}
}
+
diff --git a/app/code/Magento/Elasticsearch7/composer.json b/app/code/Magento/Elasticsearch7/composer.json
index fd82a798970ed..504712a9c489d 100644
--- a/app/code/Magento/Elasticsearch7/composer.json
+++ b/app/code/Magento/Elasticsearch7/composer.json
@@ -1,23 +1,24 @@
{
"name": "magento/module-elasticsearch-7",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-elasticsearch": "*",
+ "magento/framework": "103.0.*",
+ "magento/module-elasticsearch": "101.0.*",
"elasticsearch/elasticsearch": "^7.17",
- "magento/module-advanced-search": "*",
- "magento/module-catalog-search": "*",
- "magento/module-search": "*"
+ "magento/module-advanced-search": "100.4.*",
+ "magento/module-catalog-search": "102.0.*",
+ "magento/module-search": "101.1.*"
},
"suggest": {
- "magento/module-config": "*"
+ "magento/module-config": "101.2.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -27,3 +28,4 @@
}
}
}
+
diff --git a/app/code/Magento/Email/composer.json b/app/code/Magento/Email/composer.json
index e3a438a573d16..b9e4349d6d2e1 100644
--- a/app/code/Magento/Email/composer.json
+++ b/app/code/Magento/Email/composer.json
@@ -1,30 +1,31 @@
{
"name": "magento/module-email",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "101.1.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-cms": "*",
- "magento/module-config": "*",
- "magento/module-store": "*",
- "magento/module-theme": "*",
- "magento/module-require-js": "*",
- "magento/module-media-storage": "*",
- "magento/module-variable": "*",
- "magento/module-ui": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-cms": "104.0.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-theme": "101.1.*",
+ "magento/module-require-js": "100.4.*",
+ "magento/module-media-storage": "100.4.*",
+ "magento/module-variable": "100.4.*",
+ "magento/module-ui": "101.2.*"
},
"suggest": {
- "magento/module-theme": "*"
+ "magento/module-theme": "101.1.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -34,3 +35,4 @@
}
}
}
+
diff --git a/app/code/Magento/EncryptionKey/Console/Command/UpdateEncryptionKeyCommand.php b/app/code/Magento/EncryptionKey/Console/Command/UpdateEncryptionKeyCommand.php
new file mode 100644
index 0000000000000..cd6ffb4323163
--- /dev/null
+++ b/app/code/Magento/EncryptionKey/Console/Command/UpdateEncryptionKeyCommand.php
@@ -0,0 +1,135 @@
+encryptor = $encryptor;
+ $this->cache = $cache;
+ $this->writer = $writer;
+ $this->random = $random;
+
+ parent::__construct();
+ }
+
+ /**
+ * @inheritDoc
+ */
+ protected function configure()
+ {
+ $this->setName('encryption:key:change');
+ $this->setDescription('Change the encryption key inside the env.php file.');
+ $this->addOption(
+ 'key',
+ 'k',
+ InputOption::VALUE_OPTIONAL,
+ 'Key has to be a 32 characters long string. If not provided, a random key will be generated.'
+ );
+
+ parent::configure();
+ }
+
+ /**
+ * @inheritDoc
+ */
+ protected function execute(InputInterface $input, OutputInterface $output)
+ {
+ try {
+ $key = $input->getOption('key');
+
+ if (!empty($key)) {
+ $this->encryptor->validateKey($key);
+ }
+
+ $this->updateEncryptionKey($key);
+ $this->cache->clean();
+
+ $output->writeln('Encryption key has been updated successfully.');
+
+ return Command::SUCCESS;
+ } catch (\Exception $e) {
+ $output->writeln('' . $e->getMessage() . '');
+ return Command::FAILURE;
+ }
+ }
+
+ /**
+ * Update encryption key
+ *
+ * @param string|null $key
+ * @return void
+ * @throws FileSystemException
+ */
+ private function updateEncryptionKey(string $key = null): void
+ {
+ // prepare new key, encryptor and new configuration segment
+ if (!$this->writer->checkIfWritable()) {
+ throw new FileSystemException(__('Deployment configuration file is not writable.'));
+ }
+
+ if (null === $key) {
+ $key = ConfigOptionsListConstants::STORE_KEY_ENCODED_RANDOM_STRING_PREFIX .
+ $this->random->getRandomBytes(ConfigOptionsListConstants::STORE_KEY_RANDOM_STRING_SIZE);
+ }
+
+ $this->encryptor->setNewKey($key);
+
+ $encryptSegment = new ConfigData(ConfigFilePool::APP_ENV);
+ $encryptSegment->set(ConfigOptionsListConstants::CONFIG_PATH_CRYPT_KEY, $this->encryptor->exportKeys());
+
+ $configData = [$encryptSegment->getFileKey() => $encryptSegment->getData()];
+
+ $this->writer->saveConfig($configData);
+ }
+}
diff --git a/app/code/Magento/EncryptionKey/composer.json b/app/code/Magento/EncryptionKey/composer.json
index 73db2caf1d60d..6df04cc677390 100644
--- a/app/code/Magento/EncryptionKey/composer.json
+++ b/app/code/Magento/EncryptionKey/composer.json
@@ -1,20 +1,21 @@
{
"name": "magento/module-encryption-key",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.5-p2",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-config": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-config": "101.2.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -24,3 +25,4 @@
}
}
}
+
diff --git a/app/code/Magento/EncryptionKey/etc/di.xml b/app/code/Magento/EncryptionKey/etc/di.xml
index b4e471f4e40ef..495234759a7f8 100644
--- a/app/code/Magento/EncryptionKey/etc/di.xml
+++ b/app/code/Magento/EncryptionKey/etc/di.xml
@@ -11,4 +11,11 @@
Magento\Config\Model\Config\Structure\Proxy
+
+
+
+ - Magento\EncryptionKey\Console\Command\UpdateEncryptionKeyCommand
+
+
+
diff --git a/app/code/Magento/Fedex/Test/Mftf/Test/AdminCreatingShippingLabelTest.xml b/app/code/Magento/Fedex/Test/Mftf/Test/AdminCreatingShippingLabelTest.xml
index 45589c220ca0c..8d73673360d99 100644
--- a/app/code/Magento/Fedex/Test/Mftf/Test/AdminCreatingShippingLabelTest.xml
+++ b/app/code/Magento/Fedex/Test/Mftf/Test/AdminCreatingShippingLabelTest.xml
@@ -32,10 +32,10 @@
-
-
-
-
+
+
+
+
@@ -44,7 +44,7 @@
-
+
@@ -52,7 +52,7 @@
-
+
diff --git a/app/code/Magento/Fedex/composer.json b/app/code/Magento/Fedex/composer.json
index 2e8268d52659c..f4097b680498a 100644
--- a/app/code/Magento/Fedex/composer.json
+++ b/app/code/Magento/Fedex/composer.json
@@ -1,27 +1,28 @@
{
"name": "magento/module-fedex",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.5-p2",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
"lib-libxml": "*",
- "magento/framework": "*",
- "magento/module-catalog": "*",
- "magento/module-catalog-inventory": "*",
- "magento/module-config": "*",
- "magento/module-directory": "*",
- "magento/module-quote": "*",
- "magento/module-sales": "*",
- "magento/module-shipping": "*",
- "magento/module-store": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-catalog-inventory": "100.4.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-directory": "100.4.*",
+ "magento/module-quote": "101.2.*",
+ "magento/module-sales": "103.0.*",
+ "magento/module-shipping": "100.4.*",
+ "magento/module-store": "101.1.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -31,3 +32,4 @@
}
}
}
+
diff --git a/app/code/Magento/GiftMessage/composer.json b/app/code/Magento/GiftMessage/composer.json
index 61083072b428f..45cb115fc547c 100644
--- a/app/code/Magento/GiftMessage/composer.json
+++ b/app/code/Magento/GiftMessage/composer.json
@@ -1,30 +1,31 @@
{
"name": "magento/module-gift-message",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.6",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-catalog": "*",
- "magento/module-checkout": "*",
- "magento/module-customer": "*",
- "magento/module-quote": "*",
- "magento/module-sales": "*",
- "magento/module-store": "*",
- "magento/module-ui": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-checkout": "100.4.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-quote": "101.2.*",
+ "magento/module-sales": "103.0.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-ui": "101.2.*"
},
"suggest": {
- "magento/module-eav": "*",
- "magento/module-multishipping": "*"
+ "magento/module-eav": "102.1.*",
+ "magento/module-multishipping": "100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -34,3 +35,4 @@
}
}
}
+
diff --git a/app/code/Magento/GiftMessageGraphQl/composer.json b/app/code/Magento/GiftMessageGraphQl/composer.json
index f90b742bacd70..7434b4accebec 100644
--- a/app/code/Magento/GiftMessageGraphQl/composer.json
+++ b/app/code/Magento/GiftMessageGraphQl/composer.json
@@ -2,18 +2,19 @@
"name": "magento/module-gift-message-graph-ql",
"description": "N/A",
"type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
+ "version": "100.4.5",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-gift-message": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-gift-message": "100.4.*"
},
"suggest": {
- "magento/module-graph-ql": "*"
+ "magento/module-graph-ql": "100.4.*"
},
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -23,3 +24,4 @@
}
}
}
+
diff --git a/app/code/Magento/GoogleAdwords/composer.json b/app/code/Magento/GoogleAdwords/composer.json
index e02b17818879b..2d1f1c11d4592 100644
--- a/app/code/Magento/GoogleAdwords/composer.json
+++ b/app/code/Magento/GoogleAdwords/composer.json
@@ -1,20 +1,21 @@
{
"name": "magento/module-google-adwords",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.4",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-sales": "*",
- "magento/module-store": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-sales": "103.0.*",
+ "magento/module-store": "101.1.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -24,3 +25,4 @@
}
}
}
+
diff --git a/app/code/Magento/GoogleAnalytics/composer.json b/app/code/Magento/GoogleAnalytics/composer.json
index dbf31d860b31e..010bdf3af9f0a 100644
--- a/app/code/Magento/GoogleAnalytics/composer.json
+++ b/app/code/Magento/GoogleAnalytics/composer.json
@@ -1,24 +1,25 @@
{
"name": "magento/module-google-analytics",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.3",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-cookie": "*",
- "magento/module-sales": "*",
- "magento/module-store": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-cookie": "100.4.*",
+ "magento/module-sales": "103.0.*",
+ "magento/module-store": "101.1.*"
},
"suggest": {
- "magento/module-config": "*"
+ "magento/module-config": "101.2.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -28,3 +29,4 @@
}
}
}
+
diff --git a/app/code/Magento/GoogleGtag/composer.json b/app/code/Magento/GoogleGtag/composer.json
index 32436840c76c0..cc3bce7a1ffb9 100644
--- a/app/code/Magento/GoogleGtag/composer.json
+++ b/app/code/Magento/GoogleGtag/composer.json
@@ -1,24 +1,25 @@
{
"name": "magento/module-google-gtag",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.2",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-cookie": "*",
- "magento/module-sales": "*",
- "magento/module-store": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-cookie": "100.4.*",
+ "magento/module-sales": "103.0.*",
+ "magento/module-store": "101.1.*"
},
"suggest": {
- "magento/module-config": "*"
+ "magento/module-config": "101.2.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -28,3 +29,4 @@
}
}
}
+
diff --git a/app/code/Magento/GoogleOptimizer/composer.json b/app/code/Magento/GoogleOptimizer/composer.json
index e9032c7dea4eb..ef082f0a56cbd 100644
--- a/app/code/Magento/GoogleOptimizer/composer.json
+++ b/app/code/Magento/GoogleOptimizer/composer.json
@@ -1,25 +1,26 @@
{
"name": "magento/module-google-optimizer",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.6",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-catalog": "*",
- "magento/module-cms": "*",
- "magento/module-google-analytics": "*",
- "magento/module-google-gtag": "*",
- "magento/module-store": "*",
- "magento/module-ui": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-cms": "104.0.*",
+ "magento/module-google-analytics": "100.4.*",
+ "magento/module-google-gtag": "100.4.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-ui": "101.2.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -29,3 +30,4 @@
}
}
}
+
diff --git a/app/code/Magento/GraphQl/composer.json b/app/code/Magento/GraphQl/composer.json
index 0501b14664cf8..e0ae402b3e424 100644
--- a/app/code/Magento/GraphQl/composer.json
+++ b/app/code/Magento/GraphQl/composer.json
@@ -2,21 +2,22 @@
"name": "magento/module-graph-ql",
"description": "N/A",
"type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/module-eav": "*",
- "magento/framework": "*",
- "magento/module-webapi": "*",
- "magento/module-authorization": "*",
+ "magento/module-eav": "102.1.*",
+ "magento/framework": "103.0.*",
+ "magento/module-webapi": "100.4.*",
+ "magento/module-authorization": "100.4.*",
"webonyx/graphql-php": "^15.0"
},
"suggest": {
- "magento/module-graph-ql-cache": "*"
+ "magento/module-graph-ql-cache": "100.4.*"
},
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -26,3 +27,4 @@
}
}
}
+
diff --git a/app/code/Magento/GraphQlCache/composer.json b/app/code/Magento/GraphQlCache/composer.json
index 891ebd6ae25df..24619ace051c7 100644
--- a/app/code/Magento/GraphQlCache/composer.json
+++ b/app/code/Magento/GraphQlCache/composer.json
@@ -2,18 +2,19 @@
"name": "magento/module-graph-ql-cache",
"description": "N/A",
"type": "magento2-module",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-page-cache": "*",
- "magento/module-graph-ql": "*",
- "magento/module-authorization": "*",
- "magento/module-integration": "*"
- },
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.4",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-page-cache": "100.4.*",
+ "magento/module-graph-ql": "100.4.*",
+ "magento/module-authorization": "100.4.*",
+ "magento/module-integration": "100.4.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -23,3 +24,4 @@
}
}
}
+
diff --git a/app/code/Magento/GraphQlNewRelic/composer.json b/app/code/Magento/GraphQlNewRelic/composer.json
index f0a949a3c87b6..4358dbffc1a57 100644
--- a/app/code/Magento/GraphQlNewRelic/composer.json
+++ b/app/code/Magento/GraphQlNewRelic/composer.json
@@ -2,16 +2,17 @@
"name": "magento/module-graph-ql-new-relic",
"description": "N/A",
"type": "magento2-module",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-new-relic-reporting": "*",
- "magento/module-graph-ql": "*"
- },
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.0",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-new-relic-reporting": "100.4.*",
+ "magento/module-graph-ql": "100.4.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -21,3 +22,4 @@
}
}
}
+
diff --git a/app/code/Magento/GraphQlResolverCache/composer.json b/app/code/Magento/GraphQlResolverCache/composer.json
index 03c89ee904907..b44f62db4ad54 100644
--- a/app/code/Magento/GraphQlResolverCache/composer.json
+++ b/app/code/Magento/GraphQlResolverCache/composer.json
@@ -2,15 +2,16 @@
"name": "magento/module-graph-ql-resolver-cache",
"description": "N/A",
"type": "magento2-module",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-graph-ql": "*"
- },
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.0",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-graph-ql": "100.4.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -20,3 +21,4 @@
}
}
}
+
diff --git a/app/code/Magento/GroupedCatalogInventory/composer.json b/app/code/Magento/GroupedCatalogInventory/composer.json
index be8b3e313f464..53547dd5c7b29 100644
--- a/app/code/Magento/GroupedCatalogInventory/composer.json
+++ b/app/code/Magento/GroupedCatalogInventory/composer.json
@@ -1,21 +1,22 @@
{
"name": "magento/module-grouped-catalog-inventory",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.4",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-catalog": "*",
- "magento/module-catalog-inventory": "*",
- "magento/module-grouped-product": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-catalog-inventory": "100.4.*",
+ "magento/module-grouped-product": "100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -25,3 +26,4 @@
}
}
}
+
diff --git a/app/code/Magento/GroupedImportExport/composer.json b/app/code/Magento/GroupedImportExport/composer.json
index b5dfac3ddc2b7..364ec889d04e8 100644
--- a/app/code/Magento/GroupedImportExport/composer.json
+++ b/app/code/Magento/GroupedImportExport/composer.json
@@ -1,23 +1,24 @@
{
"name": "magento/module-grouped-import-export",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.5",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-catalog": "*",
- "magento/module-catalog-import-export": "*",
- "magento/module-eav": "*",
- "magento/module-grouped-product": "*",
- "magento/module-import-export": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-catalog-import-export": "101.1.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-grouped-product": "100.4.*",
+ "magento/module-import-export": "101.0.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -27,3 +28,4 @@
}
}
}
+
diff --git a/app/code/Magento/GroupedProduct/composer.json b/app/code/Magento/GroupedProduct/composer.json
index 41a0742c5ee9a..1e168fced6ad4 100644
--- a/app/code/Magento/GroupedProduct/composer.json
+++ b/app/code/Magento/GroupedProduct/composer.json
@@ -1,34 +1,35 @@
{
"name": "magento/module-grouped-product",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-catalog": "*",
- "magento/module-catalog-inventory": "*",
- "magento/module-checkout": "*",
- "magento/module-customer": "*",
- "magento/module-eav": "*",
- "magento/module-media-storage": "*",
- "magento/module-msrp": "*",
- "magento/module-quote": "*",
- "magento/module-sales": "*",
- "magento/module-store": "*",
- "magento/module-ui": "*",
- "magento/module-wishlist": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-catalog-inventory": "100.4.*",
+ "magento/module-checkout": "100.4.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-media-storage": "100.4.*",
+ "magento/module-msrp": "100.4.*",
+ "magento/module-quote": "101.2.*",
+ "magento/module-sales": "103.0.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-ui": "101.2.*",
+ "magento/module-wishlist": "101.2.*"
},
"suggest": {
- "magento/module-grouped-product-sample-data": "*"
+ "magento/module-grouped-product-sample-data": "Sample Data version: 100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -38,3 +39,4 @@
}
}
}
+
diff --git a/app/code/Magento/GroupedProductGraphQl/composer.json b/app/code/Magento/GroupedProductGraphQl/composer.json
index ea86fa48322cc..3db26a1e86fa2 100644
--- a/app/code/Magento/GroupedProductGraphQl/composer.json
+++ b/app/code/Magento/GroupedProductGraphQl/composer.json
@@ -2,17 +2,18 @@
"name": "magento/module-grouped-product-graph-ql",
"description": "N/A",
"type": "magento2-module",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/module-grouped-product": "*",
- "magento/module-catalog": "*",
- "magento/module-catalog-graph-ql": "*",
- "magento/framework": "*"
- },
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.7",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/module-grouped-product": "100.4.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-catalog-graph-ql": "100.4.*",
+ "magento/framework": "103.0.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -22,3 +23,4 @@
}
}
}
+
diff --git a/app/code/Magento/ImportExport/Controller/Adminhtml/Export/File/Download.php b/app/code/Magento/ImportExport/Controller/Adminhtml/Export/File/Download.php
index 75022e2b8ad9f..d23dc61e497eb 100644
--- a/app/code/Magento/ImportExport/Controller/Adminhtml/Export/File/Download.php
+++ b/app/code/Magento/ImportExport/Controller/Adminhtml/Export/File/Download.php
@@ -16,6 +16,8 @@
use Magento\Framework\Filesystem;
use Magento\ImportExport\Model\LocalizedFileName;
use Throwable;
+use Magento\Framework\Controller\Result\Redirect;
+use Magento\Framework\App\ResponseInterface;
/**
* Controller that download file by name.
@@ -25,7 +27,7 @@ class Download extends ExportController implements HttpGetActionInterface
/**
* Url to this controller
*/
- const URL = 'adminhtml/export_file/download/';
+ public const URL = 'adminhtml/export_file/download/';
/**
* @var FileFactory
@@ -64,13 +66,24 @@ public function __construct(
/**
* Controller basic method implementation.
*
- * @return \Magento\Framework\Controller\Result\Redirect | \Magento\Framework\App\ResponseInterface
+ * @return Redirect|ResponseInterface
*/
public function execute()
{
$resultRedirect = $this->resultRedirectFactory->create();
$resultRedirect->setPath('adminhtml/export/index');
+
$fileName = $this->getRequest()->getParam('filename');
+
+ if (empty($fileName)) {
+ $this->messageManager->addErrorMessage(__('Please provide valid export file name'));
+
+ return $resultRedirect;
+ }
+
+ // phpcs:ignore Magento2.Functions.DiscouragedFunction
+ $fileName = basename($fileName);
+
$exportDirectory = $this->filesystem->getDirectoryRead(DirectoryList::VAR_IMPORT_EXPORT);
try {
diff --git a/app/code/Magento/ImportExport/Controller/Adminhtml/History/Download.php b/app/code/Magento/ImportExport/Controller/Adminhtml/History/Download.php
index 6fd229f26a1a6..f6dbf4eaa4435 100644
--- a/app/code/Magento/ImportExport/Controller/Adminhtml/History/Download.php
+++ b/app/code/Magento/ImportExport/Controller/Adminhtml/History/Download.php
@@ -3,11 +3,18 @@
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
+
+declare(strict_types=1);
+
namespace Magento\ImportExport\Controller\Adminhtml\History;
use Magento\Framework\App\Action\HttpGetActionInterface;
use Magento\Framework\App\Filesystem\DirectoryList;
+use Magento\Framework\Controller\ResultInterface;
+use Magento\ImportExport\Helper\Report;
use Magento\ImportExport\Model\Import;
+use Magento\Framework\Controller\Result\Redirect;
+use Magento\Framework\App\ResponseInterface;
/**
* Download history controller
@@ -44,20 +51,27 @@ public function __construct(
/**
* Download backup action
*
- * @return void|\Magento\Backend\App\Action
+ * @return ResponseInterface|Redirect|ResultInterface
+ * @throws \Exception
*/
public function execute()
{
+ $resultRedirect = $this->resultRedirectFactory->create();
+ $resultRedirect->setPath('*/history');
+
+ $fileName = $this->getRequest()->getParam('filename');
+
+ if (empty($fileName)) {
+ return $resultRedirect;
+ }
+
// phpcs:ignore Magento2.Functions.DiscouragedFunction
- $fileName = basename($this->getRequest()->getParam('filename'));
+ $fileName = basename($fileName);
- /** @var \Magento\ImportExport\Helper\Report $reportHelper */
- $reportHelper = $this->_objectManager->get(\Magento\ImportExport\Helper\Report::class);
+ /** @var Report $reportHelper */
+ $reportHelper = $this->_objectManager->get(Report::class);
if (!$reportHelper->importFileExists($fileName)) {
- /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
- $resultRedirect = $this->resultRedirectFactory->create();
- $resultRedirect->setPath('*/history');
return $resultRedirect;
}
diff --git a/app/code/Magento/ImportExport/Test/Unit/Controller/Adminhtml/History/DownloadTest.php b/app/code/Magento/ImportExport/Test/Unit/Controller/Adminhtml/History/DownloadTest.php
index 7c8e06d3f681d..ba4bb9c53de6c 100644
--- a/app/code/Magento/ImportExport/Test/Unit/Controller/Adminhtml/History/DownloadTest.php
+++ b/app/code/Magento/ImportExport/Test/Unit/Controller/Adminhtml/History/DownloadTest.php
@@ -8,13 +8,13 @@
namespace Magento\ImportExport\Test\Unit\Controller\Adminhtml\History;
use Magento\Backend\App\Action\Context;
-use Magento\Backend\Model\View\Result\Redirect;
use Magento\Framework\App\Filesystem\DirectoryList;
use Magento\Framework\App\Request\Http;
use Magento\Framework\App\Response\Http\FileFactory;
use Magento\Framework\App\ResponseInterface;
use Magento\Framework\Controller\Result\Raw;
use Magento\Framework\Controller\Result\RawFactory;
+use Magento\Framework\Controller\Result\Redirect;
use Magento\Framework\Controller\Result\RedirectFactory;
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
use Magento\ImportExport\Controller\Adminhtml\History\Download;
@@ -181,8 +181,7 @@ public function executeDataProvider()
{
return [
'Normal file name' => ['filename.csv', 'filename.csv'],
- 'Relative file name' => ['../../../../../../../../etc/passwd', 'passwd'],
- 'Empty file name' => ['', ''],
+ 'Relative file name' => ['../../../../../../../../etc/passwd', 'passwd']
];
}
@@ -196,4 +195,27 @@ public function testExecuteFileNotFound()
$this->resultRaw->expects($this->never())->method('setContents');
$this->downloadController->execute();
}
+
+ /**
+ * Test execute() with return Redirect
+ * @param string|null $requestFilename
+ * @dataProvider executeWithRedirectDataProvider
+ */
+ public function testExecuteWithRedirect(?string $requestFilename): void
+ {
+ $this->request->method('getParam')->with('filename')->willReturn($requestFilename);
+ $this->resultRaw->expects($this->never())->method('setContents');
+ $this->assertSame($this->redirect, $this->downloadController->execute());
+ }
+
+ /**
+ * @return array
+ */
+ public function executeWithRedirectDataProvider(): array
+ {
+ return [
+ 'null file name' => [null],
+ 'empty file name' => [''],
+ ];
+ }
}
diff --git a/app/code/Magento/ImportExport/composer.json b/app/code/Magento/ImportExport/composer.json
index 30c5850ac21bc..cd14d1ca5921c 100644
--- a/app/code/Magento/ImportExport/composer.json
+++ b/app/code/Magento/ImportExport/composer.json
@@ -1,25 +1,26 @@
{
"name": "magento/module-import-export",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "101.0.7-p2",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
"ext-ctype": "*",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-catalog": "*",
- "magento/module-eav": "*",
- "magento/module-media-storage": "*",
- "magento/module-store": "*",
- "magento/module-ui": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-media-storage": "100.4.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-ui": "101.2.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -29,3 +30,4 @@
}
}
}
+
diff --git a/app/code/Magento/Indexer/composer.json b/app/code/Magento/Indexer/composer.json
index 4d10641f27cc4..c5ac1bbcf0ef8 100644
--- a/app/code/Magento/Indexer/composer.json
+++ b/app/code/Magento/Indexer/composer.json
@@ -1,21 +1,22 @@
{
"name": "magento/module-indexer",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/framework-amqp": "*",
- "magento/module-backend": "*",
- "magento/module-customer": "*"
+ "magento/framework": "103.0.*",
+ "magento/framework-amqp": "100.4.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-customer": "103.0.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -25,3 +26,4 @@
}
}
}
+
diff --git a/app/code/Magento/InstantPurchase/Test/Mftf/Test/StorefrontInstantPurchaseFunctionalityNegativeScenarioTest.xml b/app/code/Magento/InstantPurchase/Test/Mftf/Test/StorefrontInstantPurchaseFunctionalityNegativeScenarioTest.xml
index f367d75b50128..2cfff64616c31 100644
--- a/app/code/Magento/InstantPurchase/Test/Mftf/Test/StorefrontInstantPurchaseFunctionalityNegativeScenarioTest.xml
+++ b/app/code/Magento/InstantPurchase/Test/Mftf/Test/StorefrontInstantPurchaseFunctionalityNegativeScenarioTest.xml
@@ -18,6 +18,8 @@
+
+
diff --git a/app/code/Magento/InstantPurchase/composer.json b/app/code/Magento/InstantPurchase/composer.json
index e05de75169932..d1beb4ad1db4a 100644
--- a/app/code/Magento/InstantPurchase/composer.json
+++ b/app/code/Magento/InstantPurchase/composer.json
@@ -6,16 +6,17 @@
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.6-p3",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/module-store": "*",
- "magento/module-catalog": "*",
- "magento/module-customer": "*",
- "magento/module-sales": "*",
- "magento/module-shipping": "*",
- "magento/module-quote": "*",
- "magento/module-vault": "*",
- "magento/framework": "*"
+ "magento/module-store": "101.1.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-sales": "103.0.*",
+ "magento/module-shipping": "100.4.*",
+ "magento/module-quote": "101.2.*",
+ "magento/module-vault": "101.2.*",
+ "magento/framework": "103.0.*"
},
"autoload": {
"files": [
@@ -26,3 +27,4 @@
}
}
}
+
diff --git a/app/code/Magento/Integration/Block/Adminhtml/Integration/Edit/Tab/Info.php b/app/code/Magento/Integration/Block/Adminhtml/Integration/Edit/Tab/Info.php
index 89cad471933e6..b97182156d3e7 100644
--- a/app/code/Magento/Integration/Block/Adminhtml/Integration/Edit/Tab/Info.php
+++ b/app/code/Magento/Integration/Block/Adminhtml/Integration/Edit/Tab/Info.php
@@ -3,6 +3,9 @@
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
+
+declare(strict_types=1);
+
namespace Magento\Integration\Block\Adminhtml\Integration\Edit\Tab;
use Magento\Integration\Controller\Adminhtml\Integration;
@@ -19,23 +22,23 @@ class Info extends \Magento\Backend\Block\Widget\Form\Generic implements \Magent
/**#@+
* Form elements names.
*/
- const HTML_ID_PREFIX = 'integration_properties_';
+ public const HTML_ID_PREFIX = 'integration_properties_';
- const DATA_ID = 'integration_id';
+ public const DATA_ID = 'integration_id';
- const DATA_NAME = 'name';
+ public const DATA_NAME = 'name';
- const DATA_EMAIL = 'email';
+ public const DATA_EMAIL = 'email';
- const DATA_ENDPOINT = 'endpoint';
+ public const DATA_ENDPOINT = 'endpoint';
- const DATA_IDENTITY_LINK_URL = 'identity_link_url';
+ public const DATA_IDENTITY_LINK_URL = 'identity_link_url';
- const DATA_SETUP_TYPE = 'setup_type';
+ public const DATA_SETUP_TYPE = 'setup_type';
- const DATA_CONSUMER_ID = 'consumer_id';
+ public const DATA_CONSUMER_ID = 'consumer_id';
- const DATA_CONSUMER_PASSWORD = 'current_password';
+ public const DATA_CONSUMER_PASSWORD = 'current_password';
/**#@-*/
@@ -161,6 +164,7 @@ protected function _addGeneralFieldset($form, $integrationData)
'label' => __('Identity link URL'),
'name' => self::DATA_IDENTITY_LINK_URL,
'disabled' => $disabled,
+ 'class' => 'validate-url',
'note' => __(
'URL to redirect user to link their 3rd party account with this Magento integration credentials.'
)
diff --git a/app/code/Magento/Integration/Controller/Adminhtml/Integration.php b/app/code/Magento/Integration/Controller/Adminhtml/Integration.php
index c061911f804e7..11508f8bc4d09 100644
--- a/app/code/Magento/Integration/Controller/Adminhtml/Integration.php
+++ b/app/code/Magento/Integration/Controller/Adminhtml/Integration.php
@@ -3,10 +3,14 @@
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
+
+declare(strict_types=1);
+
namespace Magento\Integration\Controller\Adminhtml;
use Magento\Backend\App\Action;
-use Magento\Integration\Api\OauthServiceInterface as IntegrationOauthService;
+use Magento\Framework\Url\Validator;
+use Magento\Framework\App\ObjectManager;
/**
* Controller for integrations management.
@@ -20,18 +24,18 @@ abstract class Integration extends Action
*
* @see _isAllowed()
*/
- const ADMIN_RESOURCE = 'Magento_Integration::integrations';
+ public const ADMIN_RESOURCE = 'Magento_Integration::integrations';
/** Param Key for extracting integration id from Request */
- const PARAM_INTEGRATION_ID = 'id';
+ public const PARAM_INTEGRATION_ID = 'id';
/** Reauthorize flag is used to distinguish activation from reauthorization */
- const PARAM_REAUTHORIZE = 'reauthorize';
+ public const PARAM_REAUTHORIZE = 'reauthorize';
- const REGISTRY_KEY_CURRENT_INTEGRATION = 'current_integration';
+ public const REGISTRY_KEY_CURRENT_INTEGRATION = 'current_integration';
/** Saved API form data session key */
- const REGISTRY_KEY_CURRENT_RESOURCE = 'current_resource';
+ public const REGISTRY_KEY_CURRENT_RESOURCE = 'current_resource';
/**
* @var \Magento\Framework\Registry
@@ -73,6 +77,11 @@ abstract class Integration extends Action
*/
protected $escaper;
+ /**
+ * @var Validator
+ */
+ protected $urlValidator;
+
/**
* @param \Magento\Backend\App\Action\Context $context
* @param \Magento\Framework\Registry $registry
@@ -83,6 +92,9 @@ abstract class Integration extends Action
* @param \Magento\Integration\Helper\Data $integrationData
* @param \Magento\Framework\Escaper $escaper
* @param \Magento\Integration\Model\ResourceModel\Integration\Collection $integrationCollection
+ * @param Validator|null $urlValidator
+ *
+ * @SuppressWarnings(PHPMD.ExcessiveParameterList)
*/
public function __construct(
\Magento\Backend\App\Action\Context $context,
@@ -93,7 +105,8 @@ public function __construct(
\Magento\Framework\Json\Helper\Data $jsonHelper,
\Magento\Integration\Helper\Data $integrationData,
\Magento\Framework\Escaper $escaper,
- \Magento\Integration\Model\ResourceModel\Integration\Collection $integrationCollection
+ \Magento\Integration\Model\ResourceModel\Integration\Collection $integrationCollection,
+ Validator $urlValidator = null
) {
parent::__construct($context);
$this->_registry = $registry;
@@ -104,6 +117,7 @@ public function __construct(
$this->_integrationData = $integrationData;
$this->escaper = $escaper;
$this->_integrationCollection = $integrationCollection;
+ $this->urlValidator = $urlValidator ?: ObjectManager::getInstance()->get(Validator::class);
parent::__construct($context);
}
diff --git a/app/code/Magento/Integration/Controller/Adminhtml/Integration/Save.php b/app/code/Magento/Integration/Controller/Adminhtml/Integration/Save.php
index ac237750e7152..f3af359ab5df0 100644
--- a/app/code/Magento/Integration/Controller/Adminhtml/Integration/Save.php
+++ b/app/code/Magento/Integration/Controller/Adminhtml/Integration/Save.php
@@ -3,6 +3,9 @@
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
+
+declare(strict_types=1);
+
namespace Magento\Integration\Controller\Adminhtml\Integration;
use Magento\Framework\App\Action\HttpPostActionInterface as HttpPostActionInterface;
@@ -30,6 +33,7 @@ class Save extends \Magento\Integration\Controller\Adminhtml\Integration impleme
*
* @return SecurityCookie
* @deprecated 100.1.0
+ * @see we don't recommend this approach anymore
*/
private function getSecurityCookie()
{
@@ -76,7 +80,7 @@ public function execute()
$this->messageManager->addErrorMessage($this->escaper->escapeHtml($e->getMessage()));
$this->_getSession()->setIntegrationData($this->getRequest()->getPostValue());
$this->_redirectOnSaveError();
- } catch (\Magento\Framework\Exception\LocalizedException $e) {
+ } catch (LocalizedException $e) {
$this->messageManager->addErrorMessage($this->escaper->escapeHtml($e->getMessage()));
$this->_redirectOnSaveError();
} catch (\Exception $e) {
@@ -148,6 +152,8 @@ protected function _redirectOnSaveError()
*
* @param array $integrationData
* @return void
+ * @throws IntegrationException
+ * @throws LocalizedException
*/
private function processData($integrationData)
{
@@ -157,7 +163,15 @@ private function processData($integrationData)
if (!isset($data['resource'])) {
$integrationData['resource'] = [];
}
+
$integrationData = array_merge($integrationData, $data);
+
+ // Check if the Identity Link URL field is not empty and then validate it
+ $url = $integrationData[Info::DATA_IDENTITY_LINK_URL] ?? null;
+ if (!empty($url) && !$this->urlValidator->isValid($url)) {
+ throw new LocalizedException(__('Invalid Identity Link URL'));
+ }
+
if (!isset($integrationData[Info::DATA_ID])) {
$integration = $this->_integrationService->create($integrationData);
} else {
diff --git a/app/code/Magento/Integration/composer.json b/app/code/Magento/Integration/composer.json
index 2076ecf8dd44b..23895740c6f73 100644
--- a/app/code/Magento/Integration/composer.json
+++ b/app/code/Magento/Integration/composer.json
@@ -1,25 +1,26 @@
{
"name": "magento/module-integration",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7-p2",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-authorization": "*",
- "magento/module-backend": "*",
- "magento/module-customer": "*",
- "magento/module-security": "*",
- "magento/module-store": "*",
- "magento/module-user": "*",
- "magento/module-ui": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-authorization": "100.4.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-security": "100.4.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-user": "101.2.*",
+ "magento/module-ui": "101.2.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -29,3 +30,4 @@
}
}
}
+
diff --git a/app/code/Magento/Integration/i18n/en_US.csv b/app/code/Magento/Integration/i18n/en_US.csv
index b225ad2766fff..e26d36157ff02 100644
--- a/app/code/Magento/Integration/i18n/en_US.csv
+++ b/app/code/Magento/Integration/i18n/en_US.csv
@@ -125,3 +125,4 @@ OAuth,OAuth
"Integrations API configuration file","Integrations API configuration file"
"We couldn't find any records.","We couldn't find any records."
Status,Status
+"Invalid Identity Link URL", "Invalid Identity Link URL"
diff --git a/app/code/Magento/IntegrationGraphQl/composer.json b/app/code/Magento/IntegrationGraphQl/composer.json
index bb26e5f2af1f5..ba729edac2562 100644
--- a/app/code/Magento/IntegrationGraphQl/composer.json
+++ b/app/code/Magento/IntegrationGraphQl/composer.json
@@ -2,14 +2,15 @@
"name": "magento/module-integration-graph-ql",
"description": "N/A",
"type": "magento2-module",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*"
- },
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.0",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -19,3 +20,4 @@
}
}
}
+
diff --git a/app/code/Magento/JwtFrameworkAdapter/composer.json b/app/code/Magento/JwtFrameworkAdapter/composer.json
index 5ba9b07a1b405..7f72b94a0e213 100644
--- a/app/code/Magento/JwtFrameworkAdapter/composer.json
+++ b/app/code/Magento/JwtFrameworkAdapter/composer.json
@@ -1,19 +1,20 @@
{
"name": "magento/module-jwt-framework-adapter",
"description": "JWT Manager implementation based on jwt-framework",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.3",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
+ "magento/framework": "103.0.*",
"web-token/jwt-framework": "^3.1.2"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -23,3 +24,4 @@
}
}
}
+
diff --git a/app/code/Magento/JwtUserToken/Model/SecretBasedJwksFactory.php b/app/code/Magento/JwtUserToken/Model/SecretBasedJwksFactory.php
index 5032db90aba34..b6941b067b32b 100644
--- a/app/code/Magento/JwtUserToken/Model/SecretBasedJwksFactory.php
+++ b/app/code/Magento/JwtUserToken/Model/SecretBasedJwksFactory.php
@@ -35,6 +35,7 @@ class SecretBasedJwksFactory
public function __construct(DeploymentConfig $deploymentConfig, JwkFactory $jwkFactory)
{
$this->keys = preg_split('/\s+/s', trim((string)$deploymentConfig->get('crypt/key')));
+ $this->keys = [end($this->keys)];
//Making sure keys are large enough.
foreach ($this->keys as &$key) {
$key = str_pad($key, 2048, '&', STR_PAD_BOTH);
@@ -48,6 +49,8 @@ public function __construct(DeploymentConfig $deploymentConfig, JwkFactory $jwkF
* @param string $algorithm
* @return Jwk[]
* @throws \InvalidArgumentException When algorithm is not recognized.
+ *
+ * @SuppressWarnings(PHPMD.CyclomaticComplexity)
*/
public function createFor(string $algorithm): array
{
diff --git a/app/code/Magento/JwtUserToken/composer.json b/app/code/Magento/JwtUserToken/composer.json
index 571b81443e2df..1be2f4d2c458d 100644
--- a/app/code/Magento/JwtUserToken/composer.json
+++ b/app/code/Magento/JwtUserToken/composer.json
@@ -1,20 +1,21 @@
{
"name": "magento/module-jwt-user-token",
"description": "Introduces JWT token support for web API authentication",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.2-p2",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-integration": "*",
- "magento/module-authorization": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-integration": "100.4.*",
+ "magento/module-authorization": "100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -24,3 +25,4 @@
}
}
}
+
diff --git a/app/code/Magento/LayeredNavigation/composer.json b/app/code/Magento/LayeredNavigation/composer.json
index 31552eb8bec3c..e9f92bfe2bf2e 100644
--- a/app/code/Magento/LayeredNavigation/composer.json
+++ b/app/code/Magento/LayeredNavigation/composer.json
@@ -1,20 +1,21 @@
{
"name": "magento/module-layered-navigation",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-catalog": "*",
- "magento/module-config": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-config": "101.2.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -24,3 +25,4 @@
}
}
}
+
diff --git a/app/code/Magento/LoginAsCustomer/composer.json b/app/code/Magento/LoginAsCustomer/composer.json
index 02be71aacdde6..94d06415f7563 100755
--- a/app/code/Magento/LoginAsCustomer/composer.json
+++ b/app/code/Magento/LoginAsCustomer/composer.json
@@ -1,21 +1,22 @@
{
"name": "magento/module-login-as-customer",
"description": "Allow for admin to enter a customer account",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-customer": "*",
- "magento/module-login-as-customer-api": "*"
- },
- "suggest": {
- "magento/module-backend": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.7",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-login-as-customer-api": "100.4.*"
+ },
+ "suggest": {
+ "magento/module-backend": "102.0.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -25,3 +26,4 @@
}
}
}
+
diff --git a/app/code/Magento/LoginAsCustomerAdminUi/composer.json b/app/code/Magento/LoginAsCustomerAdminUi/composer.json
index e1f552d1fbeae..9e4053411b870 100644
--- a/app/code/Magento/LoginAsCustomerAdminUi/composer.json
+++ b/app/code/Magento/LoginAsCustomerAdminUi/composer.json
@@ -1,24 +1,24 @@
{
"name": "magento/module-login-as-customer-admin-ui",
- "description": "",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-login-as-customer-api": "*",
- "magento/module-login-as-customer-frontend-ui": "*",
- "magento/module-backend": "*",
- "magento/module-customer": "*",
- "magento/module-sales": "*",
- "magento/module-store": "*"
- },
- "suggest": {
- "magento/module-login-as-customer": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.7",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-login-as-customer-api": "100.4.*",
+ "magento/module-login-as-customer-frontend-ui": "100.4.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-sales": "103.0.*",
+ "magento/module-store": "101.1.*"
+ },
+ "suggest": {
+ "magento/module-login-as-customer": "100.4.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -28,3 +28,4 @@
}
}
}
+
diff --git a/app/code/Magento/LoginAsCustomerApi/composer.json b/app/code/Magento/LoginAsCustomerApi/composer.json
index 8b8d380f4c484..65e77c6eb2eaa 100644
--- a/app/code/Magento/LoginAsCustomerApi/composer.json
+++ b/app/code/Magento/LoginAsCustomerApi/composer.json
@@ -1,15 +1,16 @@
{
"name": "magento/module-login-as-customer-api",
"description": "Allow for admin to enter a customer account",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.6",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -19,3 +20,4 @@
}
}
}
+
diff --git a/app/code/Magento/LoginAsCustomerAssistance/composer.json b/app/code/Magento/LoginAsCustomerAssistance/composer.json
index 7b2c7a64518ba..87a7879d58379 100644
--- a/app/code/Magento/LoginAsCustomerAssistance/composer.json
+++ b/app/code/Magento/LoginAsCustomerAssistance/composer.json
@@ -1,24 +1,24 @@
{
"name": "magento/module-login-as-customer-assistance",
- "description": "",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-authorization": "*",
- "magento/module-backend": "*",
- "magento/module-customer": "*",
- "magento/module-store": "*",
- "magento/module-login-as-customer": "*",
- "magento/module-login-as-customer-api": "*"
- },
- "suggest": {
- "magento/module-login-as-customer-admin-ui": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.6",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-authorization": "100.4.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-login-as-customer": "100.4.*",
+ "magento/module-login-as-customer-api": "100.4.*"
+ },
+ "suggest": {
+ "magento/module-login-as-customer-admin-ui": "100.4.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -28,3 +28,4 @@
}
}
}
+
diff --git a/app/code/Magento/LoginAsCustomerFrontendUi/composer.json b/app/code/Magento/LoginAsCustomerFrontendUi/composer.json
index 04b331d098786..b11357f334159 100644
--- a/app/code/Magento/LoginAsCustomerFrontendUi/composer.json
+++ b/app/code/Magento/LoginAsCustomerFrontendUi/composer.json
@@ -1,18 +1,18 @@
{
"name": "magento/module-login-as-customer-frontend-ui",
- "description": "",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-login-as-customer-api": "*",
- "magento/module-customer": "*",
- "magento/module-store": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.6",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-login-as-customer-api": "100.4.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-store": "101.1.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -22,3 +22,4 @@
}
}
}
+
diff --git a/app/code/Magento/LoginAsCustomerGraphQl/composer.json b/app/code/Magento/LoginAsCustomerGraphQl/composer.json
index cc1b6eba1015c..3083ebc3e71ef 100755
--- a/app/code/Magento/LoginAsCustomerGraphQl/composer.json
+++ b/app/code/Magento/LoginAsCustomerGraphQl/composer.json
@@ -1,23 +1,24 @@
{
"name": "magento/module-login-as-customer-graph-ql",
"description": "Flexible login as a customer so a merchant or merchant admin can log into an end customer's account to assist them with their account.",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-login-as-customer-api": "*",
- "magento/module-login-as-customer-assistance": "*",
- "magento/module-integration": "*",
- "magento/module-store": "*",
- "magento/module-customer": "*"
- },
- "suggest": {
- "magento/module-login-as-customer": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.4",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-login-as-customer-api": "100.4.*",
+ "magento/module-login-as-customer-assistance": "100.4.*",
+ "magento/module-integration": "100.4.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-customer": "103.0.*"
+ },
+ "suggest": {
+ "magento/module-login-as-customer": "100.4.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -27,3 +28,4 @@
}
}
}
+
diff --git a/app/code/Magento/LoginAsCustomerLog/composer.json b/app/code/Magento/LoginAsCustomerLog/composer.json
index 3eb0ca3c8a3fa..0699c1b3cccff 100644
--- a/app/code/Magento/LoginAsCustomerLog/composer.json
+++ b/app/code/Magento/LoginAsCustomerLog/composer.json
@@ -1,23 +1,23 @@
{
"name": "magento/module-login-as-customer-log",
- "description": "",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-customer": "*",
- "magento/module-login-as-customer-api": "*",
- "magento/module-ui": "*",
- "magento/module-user": "*"
- },
- "suggest": {
- "magento/module-login-as-customer": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.5",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-login-as-customer-api": "100.4.*",
+ "magento/module-ui": "101.2.*",
+ "magento/module-user": "101.2.*"
+ },
+ "suggest": {
+ "magento/module-login-as-customer": "100.4.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -27,3 +27,4 @@
}
}
}
+
diff --git a/app/code/Magento/LoginAsCustomerPageCache/composer.json b/app/code/Magento/LoginAsCustomerPageCache/composer.json
index 2c0f32ab8232e..6beabc7512135 100644
--- a/app/code/Magento/LoginAsCustomerPageCache/composer.json
+++ b/app/code/Magento/LoginAsCustomerPageCache/composer.json
@@ -1,20 +1,20 @@
{
"name": "magento/module-login-as-customer-page-cache",
- "description": "",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-store": "*",
- "magento/module-login-as-customer-api": "*"
- },
- "suggest": {
- "magento/module-page-cache": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.6",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-login-as-customer-api": "100.4.*"
+ },
+ "suggest": {
+ "magento/module-page-cache": "100.4.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -24,3 +24,4 @@
}
}
}
+
diff --git a/app/code/Magento/LoginAsCustomerQuote/composer.json b/app/code/Magento/LoginAsCustomerQuote/composer.json
index 8d2e34ec5b047..bec1fa177e4e9 100644
--- a/app/code/Magento/LoginAsCustomerQuote/composer.json
+++ b/app/code/Magento/LoginAsCustomerQuote/composer.json
@@ -1,21 +1,21 @@
{
"name": "magento/module-login-as-customer-quote",
- "description": "",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-checkout": "*",
- "magento/module-customer": "*",
- "magento/module-quote": "*"
- },
- "suggest": {
- "magento/module-login-as-customer-api": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.5",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-checkout": "100.4.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-quote": "101.2.*"
+ },
+ "suggest": {
+ "magento/module-login-as-customer-api": "100.4.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -25,3 +25,4 @@
}
}
}
+
diff --git a/app/code/Magento/LoginAsCustomerSales/composer.json b/app/code/Magento/LoginAsCustomerSales/composer.json
index 552e2a532fdb1..d0ef13967273a 100644
--- a/app/code/Magento/LoginAsCustomerSales/composer.json
+++ b/app/code/Magento/LoginAsCustomerSales/composer.json
@@ -1,21 +1,21 @@
{
"name": "magento/module-login-as-customer-sales",
- "description": "",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-user": "*",
- "magento/module-login-as-customer-api": "*"
- },
- "suggest": {
- "magento/module-sales": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.6",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-user": "101.2.*",
+ "magento/module-login-as-customer-api": "100.4.*"
+ },
+ "suggest": {
+ "magento/module-sales": "103.0.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -25,3 +25,4 @@
}
}
}
+
diff --git a/app/code/Magento/Marketplace/composer.json b/app/code/Magento/Marketplace/composer.json
index dc726fdcd3c7b..473a721b1f26a 100644
--- a/app/code/Magento/Marketplace/composer.json
+++ b/app/code/Magento/Marketplace/composer.json
@@ -1,19 +1,20 @@
{
"name": "magento/module-marketplace",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.5",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -23,3 +24,4 @@
}
}
}
+
diff --git a/app/code/Magento/MediaContent/composer.json b/app/code/Magento/MediaContent/composer.json
index 086542ac663c4..0f4c443d0c7bb 100644
--- a/app/code/Magento/MediaContent/composer.json
+++ b/app/code/Magento/MediaContent/composer.json
@@ -1,17 +1,18 @@
{
"name": "magento/module-media-content",
"description": "Magento module provides the implementation for managing relations between content and media files used in that content",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-media-content-api": "*",
- "magento/module-media-gallery-api": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.5",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-media-content-api": "100.4.*",
+ "magento/module-media-gallery-api": "101.0.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -21,3 +22,4 @@
}
}
}
+
diff --git a/app/code/Magento/MediaContentApi/composer.json b/app/code/Magento/MediaContentApi/composer.json
index 195b61294d382..11193432936fa 100644
--- a/app/code/Magento/MediaContentApi/composer.json
+++ b/app/code/Magento/MediaContentApi/composer.json
@@ -1,16 +1,17 @@
{
"name": "magento/module-media-content-api",
"description": "Magento module provides the API interfaces for managing relations between content and media files used in that content",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/module-media-gallery-api": "*",
- "magento/framework": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.6",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/module-media-gallery-api": "101.0.*",
+ "magento/framework": "103.0.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -20,3 +21,4 @@
}
}
}
+
diff --git a/app/code/Magento/MediaContentCatalog/composer.json b/app/code/Magento/MediaContentCatalog/composer.json
index c306ca9b69d90..25e722738f96d 100644
--- a/app/code/Magento/MediaContentCatalog/composer.json
+++ b/app/code/Magento/MediaContentCatalog/composer.json
@@ -1,19 +1,20 @@
{
"name": "magento/module-media-content-catalog",
"description": "Magento module provides the implementation of MediaContent functionality for Magento_Catalog module",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/module-media-content-api": "*",
- "magento/module-catalog": "*",
- "magento/module-eav": "*",
- "magento/module-store": "*",
- "magento/framework": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.5",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/module-media-content-api": "100.4.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-store": "101.1.*",
+ "magento/framework": "103.0.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -23,3 +24,4 @@
}
}
}
+
diff --git a/app/code/Magento/MediaContentCms/composer.json b/app/code/Magento/MediaContentCms/composer.json
index a718d7d1cda0b..dc26438bb450b 100644
--- a/app/code/Magento/MediaContentCms/composer.json
+++ b/app/code/Magento/MediaContentCms/composer.json
@@ -1,17 +1,18 @@
{
"name": "magento/module-media-content-cms",
"description": "Magento module provides the implementation of MediaContent functionality for Magento_Cms module",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/module-media-content-api": "*",
- "magento/module-cms": "*",
- "magento/framework": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.5",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/module-media-content-api": "100.4.*",
+ "magento/module-cms": "104.0.*",
+ "magento/framework": "103.0.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -21,3 +22,4 @@
}
}
}
+
diff --git a/app/code/Magento/MediaContentSynchronization/composer.json b/app/code/Magento/MediaContentSynchronization/composer.json
index a3ea69dd8a6a0..aa76f2902f4de 100644
--- a/app/code/Magento/MediaContentSynchronization/composer.json
+++ b/app/code/Magento/MediaContentSynchronization/composer.json
@@ -1,22 +1,23 @@
{
"name": "magento/module-media-content-synchronization",
"description": "Magento module provides implementation of the media content data synchronization.",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/framework-bulk": "*",
- "magento/module-media-content-synchronization-api": "*",
- "magento/module-media-content-api": "*",
- "magento/module-asynchronous-operations": "*"
- },
- "suggest": {
- "magento/module-media-gallery-synchronization": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.6",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/framework-bulk": "101.0.*",
+ "magento/module-media-content-synchronization-api": "100.4.*",
+ "magento/module-media-content-api": "100.4.*",
+ "magento/module-asynchronous-operations": "100.4.*"
+ },
+ "suggest": {
+ "magento/module-media-gallery-synchronization": "100.4.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -26,3 +27,4 @@
}
}
}
+
diff --git a/app/code/Magento/MediaContentSynchronizationApi/composer.json b/app/code/Magento/MediaContentSynchronizationApi/composer.json
index 36ec44038427a..97aed56a9df4c 100644
--- a/app/code/Magento/MediaContentSynchronizationApi/composer.json
+++ b/app/code/Magento/MediaContentSynchronizationApi/composer.json
@@ -1,16 +1,17 @@
{
"name": "magento/module-media-content-synchronization-api",
"description": "Magento module responsible for the media content synchronization implementation API",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-media-content-api": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.5",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-media-content-api": "100.4.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -20,3 +21,4 @@
}
}
}
+
diff --git a/app/code/Magento/MediaContentSynchronizationCatalog/composer.json b/app/code/Magento/MediaContentSynchronizationCatalog/composer.json
index 7adcad9900634..f12ee8c5f278f 100644
--- a/app/code/Magento/MediaContentSynchronizationCatalog/composer.json
+++ b/app/code/Magento/MediaContentSynchronizationCatalog/composer.json
@@ -1,18 +1,19 @@
{
"name": "magento/module-media-content-synchronization-catalog",
"description": "Magento module provides the implementation of MediaContentSynchronization functionality for Magento_Catalog module",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-media-content-synchronization-api": "*",
- "magento/module-media-gallery-synchronization-api": "*",
- "magento/module-media-content-api": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.4",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-media-content-synchronization-api": "100.4.*",
+ "magento/module-media-gallery-synchronization-api": "100.4.*",
+ "magento/module-media-content-api": "100.4.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -22,3 +23,4 @@
}
}
}
+
diff --git a/app/code/Magento/MediaContentSynchronizationCms/composer.json b/app/code/Magento/MediaContentSynchronizationCms/composer.json
index 1aa33a2c4b05a..a5636fe7d35bb 100644
--- a/app/code/Magento/MediaContentSynchronizationCms/composer.json
+++ b/app/code/Magento/MediaContentSynchronizationCms/composer.json
@@ -1,18 +1,19 @@
{
"name": "magento/module-media-content-synchronization-cms",
"description": "Magento module provides the implementation of MediaContentSynchronization functionality for Magento_Cms module",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-media-content-synchronization-api": "*",
- "magento/module-media-gallery-synchronization-api": "*",
- "magento/module-media-content-api": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.4",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-media-content-synchronization-api": "100.4.*",
+ "magento/module-media-gallery-synchronization-api": "100.4.*",
+ "magento/module-media-content-api": "100.4.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -22,3 +23,4 @@
}
}
}
+
diff --git a/app/code/Magento/MediaGallery/composer.json b/app/code/Magento/MediaGallery/composer.json
index 7f5ce9857c167..f3a162aa40d20 100644
--- a/app/code/Magento/MediaGallery/composer.json
+++ b/app/code/Magento/MediaGallery/composer.json
@@ -1,17 +1,18 @@
{
"name": "magento/module-media-gallery",
"description": "Magento module responsible for media handling",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-media-gallery-api": "*",
- "magento/module-cms": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.6",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-media-gallery-api": "101.0.*",
+ "magento/module-cms": "104.0.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -21,3 +22,4 @@
}
}
}
+
diff --git a/app/code/Magento/MediaGalleryApi/composer.json b/app/code/Magento/MediaGalleryApi/composer.json
index c4aa92b13d37e..ce478d4ab452d 100644
--- a/app/code/Magento/MediaGalleryApi/composer.json
+++ b/app/code/Magento/MediaGalleryApi/composer.json
@@ -1,15 +1,16 @@
{
"name": "magento/module-media-gallery-api",
"description": "Magento module responsible for media gallery asset attributes storage and management",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "101.0.6",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -19,3 +20,4 @@
}
}
}
+
diff --git a/app/code/Magento/MediaGalleryCatalog/composer.json b/app/code/Magento/MediaGalleryCatalog/composer.json
index 6f9dbfaf31d9f..574da6e3a1227 100644
--- a/app/code/Magento/MediaGalleryCatalog/composer.json
+++ b/app/code/Magento/MediaGalleryCatalog/composer.json
@@ -1,17 +1,18 @@
{
"name": "magento/module-media-gallery-catalog",
"description": "Magento module responsible for catalog gallery processor delete operation handling",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-media-gallery-api": "*",
- "magento/module-catalog": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.4",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-media-gallery-api": "101.0.*",
+ "magento/module-catalog": "104.0.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -21,3 +22,4 @@
}
}
}
+
diff --git a/app/code/Magento/MediaGalleryCatalogIntegration/composer.json b/app/code/Magento/MediaGalleryCatalogIntegration/composer.json
index 95f9c54609e9e..66e9e2498c792 100644
--- a/app/code/Magento/MediaGalleryCatalogIntegration/composer.json
+++ b/app/code/Magento/MediaGalleryCatalogIntegration/composer.json
@@ -1,22 +1,23 @@
{
"name": "magento/module-media-gallery-catalog-integration",
"description": "Magento module responsible for extending catalog image uploader functionality",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-cms": "*",
- "magento/module-media-gallery-api": "*",
- "magento/module-media-gallery-synchronization-api": "*",
- "magento/module-media-gallery-ui-api": "*"
- },
- "suggest": {
- "magento/module-catalog": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.4",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-cms": "104.0.*",
+ "magento/module-media-gallery-api": "101.0.*",
+ "magento/module-media-gallery-synchronization-api": "100.4.*",
+ "magento/module-media-gallery-ui-api": "100.4.*"
+ },
+ "suggest": {
+ "magento/module-catalog": "104.0.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -26,3 +27,4 @@
}
}
}
+
diff --git a/app/code/Magento/MediaGalleryCatalogUi/composer.json b/app/code/Magento/MediaGalleryCatalogUi/composer.json
index fd9b17f47ed38..2450804b42f33 100644
--- a/app/code/Magento/MediaGalleryCatalogUi/composer.json
+++ b/app/code/Magento/MediaGalleryCatalogUi/composer.json
@@ -1,20 +1,21 @@
{
"name": "magento/module-media-gallery-catalog-ui",
"description": "Magento module that implement category grid for media gallery.",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-cms": "*",
- "magento/module-backend": "*",
- "magento/module-catalog": "*",
- "magento/module-store": "*",
- "magento/module-ui": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.4",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-cms": "104.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-ui": "101.2.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -24,3 +25,4 @@
}
}
}
+
diff --git a/app/code/Magento/MediaGalleryCmsUi/composer.json b/app/code/Magento/MediaGalleryCmsUi/composer.json
index aefe515590b6d..e3aa525c1b876 100644
--- a/app/code/Magento/MediaGalleryCmsUi/composer.json
+++ b/app/code/Magento/MediaGalleryCmsUi/composer.json
@@ -1,17 +1,18 @@
{
"name": "magento/module-media-gallery-cms-ui",
"description": "Cms related UI elements in the magento media gallery",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-cms": "*",
- "magento/module-backend": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.4",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-cms": "104.0.*",
+ "magento/module-backend": "102.0.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -21,3 +22,4 @@
}
}
}
+
diff --git a/app/code/Magento/MediaGalleryIntegration/composer.json b/app/code/Magento/MediaGalleryIntegration/composer.json
index 01fb345086047..867933e447b65 100644
--- a/app/code/Magento/MediaGalleryIntegration/composer.json
+++ b/app/code/Magento/MediaGalleryIntegration/composer.json
@@ -1,26 +1,24 @@
{
"name": "magento/module-media-gallery-integration",
"description": "Magento module responsible for integration of enhanced media gallery",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-media-gallery-ui-api": "*",
- "magento/module-media-gallery-api": "*",
- "magento/module-media-gallery-synchronization-api": "*",
- "magento/module-ui": "*"
- },
- "require-dev": {
- "magento/module-cms": "*"
- },
- "suggest": {
- "magento/module-catalog": "*",
- "magento/module-cms": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.6",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-media-gallery-ui-api": "100.4.*",
+ "magento/module-media-gallery-api": "101.0.*",
+ "magento/module-media-gallery-synchronization-api": "100.4.*",
+ "magento/module-ui": "101.2.*"
+ },
+ "suggest": {
+ "magento/module-catalog": "104.0.*",
+ "magento/module-cms": "104.0.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -28,5 +26,9 @@
"psr-4": {
"Magento\\MediaGalleryIntegration\\": ""
}
+ },
+ "require-dev": {
+ "magento/module-cms": "*"
}
}
+
diff --git a/app/code/Magento/MediaGalleryMetadata/composer.json b/app/code/Magento/MediaGalleryMetadata/composer.json
index c1fa2deb05b88..e421f3a1f7ddf 100644
--- a/app/code/Magento/MediaGalleryMetadata/composer.json
+++ b/app/code/Magento/MediaGalleryMetadata/composer.json
@@ -1,16 +1,17 @@
{
"name": "magento/module-media-gallery-metadata",
"description": "Magento module responsible for images metadata processing",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-media-gallery-metadata-api": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.5",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-media-gallery-metadata-api": "100.4.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -20,3 +21,4 @@
}
}
}
+
diff --git a/app/code/Magento/MediaGalleryMetadataApi/composer.json b/app/code/Magento/MediaGalleryMetadataApi/composer.json
index c54a28759a067..b07fe6bed9427 100644
--- a/app/code/Magento/MediaGalleryMetadataApi/composer.json
+++ b/app/code/Magento/MediaGalleryMetadataApi/composer.json
@@ -1,15 +1,16 @@
{
"name": "magento/module-media-gallery-metadata-api",
"description": "Magento module responsible for media gallery metadata implementation API",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.4",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -19,3 +20,4 @@
}
}
}
+
diff --git a/app/code/Magento/MediaGalleryRenditions/composer.json b/app/code/Magento/MediaGalleryRenditions/composer.json
index 10c05e9d9cbf1..faee491dd7019 100644
--- a/app/code/Magento/MediaGalleryRenditions/composer.json
+++ b/app/code/Magento/MediaGalleryRenditions/composer.json
@@ -1,22 +1,23 @@
{
"name": "magento/module-media-gallery-renditions",
"description": "Magento module that implements height and width fields for for media gallery items.",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-media-gallery-renditions-api": "*",
- "magento/module-media-gallery-api": "*",
- "magento/framework-message-queue": "*",
- "magento/module-cms": "*"
- },
- "suggest": {
- "magento/module-media-content-api": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.5",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-media-gallery-renditions-api": "100.4.*",
+ "magento/module-media-gallery-api": "101.0.*",
+ "magento/framework-message-queue": "100.4.*",
+ "magento/module-cms": "104.0.*"
+ },
+ "suggest": {
+ "magento/module-media-content-api": "100.4.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -26,3 +27,4 @@
}
}
}
+
diff --git a/app/code/Magento/MediaGalleryRenditionsApi/composer.json b/app/code/Magento/MediaGalleryRenditionsApi/composer.json
index b5f47cf8deebd..42bb314a92bb9 100644
--- a/app/code/Magento/MediaGalleryRenditionsApi/composer.json
+++ b/app/code/Magento/MediaGalleryRenditionsApi/composer.json
@@ -1,15 +1,16 @@
{
"name": "magento/module-media-gallery-renditions-api",
"description": "Magento module that is responsible for the API implementation of Media Gallery Renditions.",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.4",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -19,3 +20,4 @@
}
}
}
+
diff --git a/app/code/Magento/MediaGallerySynchronization/composer.json b/app/code/Magento/MediaGallerySynchronization/composer.json
index 1cfddaa5e8086..eb18149bc6248 100644
--- a/app/code/Magento/MediaGallerySynchronization/composer.json
+++ b/app/code/Magento/MediaGallerySynchronization/composer.json
@@ -1,18 +1,19 @@
{
"name": "magento/module-media-gallery-synchronization",
"description": "Magento module provides implementation of the media gallery data synchronization.",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-media-gallery-api": "*",
- "magento/module-media-gallery-synchronization-api": "*",
- "magento/framework-message-queue": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.6",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-media-gallery-api": "101.0.*",
+ "magento/module-media-gallery-synchronization-api": "100.4.*",
+ "magento/framework-message-queue": "100.4.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -22,3 +23,4 @@
}
}
}
+
diff --git a/app/code/Magento/MediaGallerySynchronizationApi/composer.json b/app/code/Magento/MediaGallerySynchronizationApi/composer.json
index d9087ad230996..4027589d20247 100644
--- a/app/code/Magento/MediaGallerySynchronizationApi/composer.json
+++ b/app/code/Magento/MediaGallerySynchronizationApi/composer.json
@@ -1,16 +1,17 @@
{
"name": "magento/module-media-gallery-synchronization-api",
"description": "Magento module responsible for the media gallery synchronization implementation API",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-media-gallery-api": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.5",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-media-gallery-api": "101.0.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -20,3 +21,4 @@
}
}
}
+
diff --git a/app/code/Magento/MediaGallerySynchronizationMetadata/composer.json b/app/code/Magento/MediaGallerySynchronizationMetadata/composer.json
index d7f3cfd71131e..0600ba26dc3ef 100644
--- a/app/code/Magento/MediaGallerySynchronizationMetadata/composer.json
+++ b/app/code/Magento/MediaGallerySynchronizationMetadata/composer.json
@@ -1,18 +1,19 @@
{
"name": "magento/module-media-gallery-synchronization-metadata",
"description": "Magento module responsible for images metadata synchronization",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-media-gallery-api": "*",
- "magento/module-media-gallery-metadata-api": "*",
- "magento/module-media-gallery-synchronization-api": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.3",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-media-gallery-api": "101.0.*",
+ "magento/module-media-gallery-metadata-api": "100.4.*",
+ "magento/module-media-gallery-synchronization-api": "100.4.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -22,3 +23,4 @@
}
}
}
+
diff --git a/app/code/Magento/MediaGalleryUi/composer.json b/app/code/Magento/MediaGalleryUi/composer.json
index e05a86221ecc9..42c1146d01eec 100644
--- a/app/code/Magento/MediaGalleryUi/composer.json
+++ b/app/code/Magento/MediaGalleryUi/composer.json
@@ -1,26 +1,27 @@
{
"name": "magento/module-media-gallery-ui",
"description": "Magento module responsible for the media gallery UI implementation",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-ui": "*",
- "magento/module-store": "*",
- "magento/module-media-gallery-ui-api": "*",
- "magento/module-media-gallery-api": "*",
- "magento/module-media-gallery-metadata-api": "*",
- "magento/module-media-gallery-synchronization-api": "*",
- "magento/module-media-content-api": "*",
- "magento/module-cms": "*",
- "magento/module-directory": "*",
- "magento/module-authorization": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.6",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-ui": "101.2.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-media-gallery-ui-api": "100.4.*",
+ "magento/module-media-gallery-api": "101.0.*",
+ "magento/module-media-gallery-metadata-api": "100.4.*",
+ "magento/module-media-gallery-synchronization-api": "100.4.*",
+ "magento/module-media-content-api": "100.4.*",
+ "magento/module-cms": "104.0.*",
+ "magento/module-directory": "100.4.*",
+ "magento/module-authorization": "100.4.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -30,3 +31,4 @@
}
}
}
+
diff --git a/app/code/Magento/MediaGalleryUiApi/composer.json b/app/code/Magento/MediaGalleryUiApi/composer.json
index 480f8b32bf5ba..84102dc6efdc4 100644
--- a/app/code/Magento/MediaGalleryUiApi/composer.json
+++ b/app/code/Magento/MediaGalleryUiApi/composer.json
@@ -1,18 +1,19 @@
{
"name": "magento/module-media-gallery-ui-api",
"description": "Magento module responsible for the media gallery UI implementation API",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*"
- },
- "suggest": {
- "magento/module-cms": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.5",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*"
+ },
+ "suggest": {
+ "magento/module-cms": "104.0.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -22,3 +23,4 @@
}
}
}
+
diff --git a/app/code/Magento/MediaStorage/composer.json b/app/code/Magento/MediaStorage/composer.json
index 740ab31740b59..c5cb5fbe700fb 100644
--- a/app/code/Magento/MediaStorage/composer.json
+++ b/app/code/Magento/MediaStorage/composer.json
@@ -1,26 +1,27 @@
{
"name": "magento/module-media-storage",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.6",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/framework-bulk": "*",
- "magento/module-backend": "*",
- "magento/module-config": "*",
- "magento/module-store": "*",
- "magento/module-catalog": "*",
- "magento/module-theme": "*",
- "magento/module-asynchronous-operations": "*",
- "magento/module-authorization": "*"
+ "magento/framework": "103.0.*",
+ "magento/framework-bulk": "101.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-theme": "101.1.*",
+ "magento/module-asynchronous-operations": "100.4.*",
+ "magento/module-authorization": "100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -30,3 +31,4 @@
}
}
}
+
diff --git a/app/code/Magento/MessageQueue/composer.json b/app/code/Magento/MessageQueue/composer.json
index 61ff7635bf698..2e4238f13788b 100644
--- a/app/code/Magento/MessageQueue/composer.json
+++ b/app/code/Magento/MessageQueue/composer.json
@@ -1,20 +1,21 @@
{
"name": "magento/module-message-queue",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7",
"require": {
- "magento/framework": "*",
- "magento/framework-message-queue": "*",
+ "magento/framework": "103.0.*",
+ "magento/framework-message-queue": "100.4.*",
"magento/magento-composer-installer": "*",
"php": "~8.1.0||~8.2.0||~8.3.0"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -24,3 +25,4 @@
}
}
}
+
diff --git a/app/code/Magento/Msrp/composer.json b/app/code/Magento/Msrp/composer.json
index bb953190e6a63..695f166686532 100644
--- a/app/code/Magento/Msrp/composer.json
+++ b/app/code/Magento/Msrp/composer.json
@@ -1,27 +1,28 @@
{
"name": "magento/module-msrp",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.6",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-catalog": "*",
- "magento/module-downloadable": "*",
- "magento/module-eav": "*",
- "magento/module-store": "*",
- "magento/module-tax": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-downloadable": "100.4.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-tax": "100.4.*"
},
"suggest": {
- "magento/module-bundle": "*",
- "magento/module-msrp-sample-data": "*"
+ "magento/module-bundle": "101.0.*",
+ "magento/module-msrp-sample-data": "Sample Data version: 100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -31,3 +32,4 @@
}
}
}
+
diff --git a/app/code/Magento/MsrpConfigurableProduct/composer.json b/app/code/Magento/MsrpConfigurableProduct/composer.json
index e7ac460ac4903..5bb45b789a382 100644
--- a/app/code/Magento/MsrpConfigurableProduct/composer.json
+++ b/app/code/Magento/MsrpConfigurableProduct/composer.json
@@ -1,21 +1,22 @@
{
"name": "magento/module-msrp-configurable-product",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.4",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-catalog": "*",
- "magento/module-msrp": "*",
- "magento/module-configurable-product": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-msrp": "100.4.*",
+ "magento/module-configurable-product": "100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -25,3 +26,4 @@
}
}
}
+
diff --git a/app/code/Magento/MsrpGroupedProduct/composer.json b/app/code/Magento/MsrpGroupedProduct/composer.json
index 417863407df37..e6664689fed17 100644
--- a/app/code/Magento/MsrpGroupedProduct/composer.json
+++ b/app/code/Magento/MsrpGroupedProduct/composer.json
@@ -1,21 +1,22 @@
{
"name": "magento/module-msrp-grouped-product",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.4",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-catalog": "*",
- "magento/module-msrp": "*",
- "magento/module-grouped-product": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-msrp": "100.4.*",
+ "magento/module-grouped-product": "100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -25,3 +26,4 @@
}
}
}
+
diff --git a/app/code/Magento/Multishipping/composer.json b/app/code/Magento/Multishipping/composer.json
index ceb2c391ff277..261f70097d849 100644
--- a/app/code/Magento/Multishipping/composer.json
+++ b/app/code/Magento/Multishipping/composer.json
@@ -1,28 +1,29 @@
{
"name": "magento/module-multishipping",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-checkout": "*",
- "magento/module-customer": "*",
- "magento/module-directory": "*",
- "magento/module-payment": "*",
- "magento/module-quote": "*",
- "magento/module-sales": "*",
- "magento/module-store": "*",
- "magento/module-tax": "*",
- "magento/module-theme": "*",
- "magento/module-captcha": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-checkout": "100.4.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-directory": "100.4.*",
+ "magento/module-payment": "100.4.*",
+ "magento/module-quote": "101.2.*",
+ "magento/module-sales": "103.0.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-tax": "100.4.*",
+ "magento/module-theme": "101.1.*",
+ "magento/module-captcha": "100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -32,3 +33,4 @@
}
}
}
+
diff --git a/app/code/Magento/MysqlMq/composer.json b/app/code/Magento/MysqlMq/composer.json
index 3c98304cbfcc7..d0474172b54f5 100644
--- a/app/code/Magento/MysqlMq/composer.json
+++ b/app/code/Magento/MysqlMq/composer.json
@@ -1,21 +1,22 @@
{
"name": "magento/module-mysql-mq",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.5",
"require": {
- "magento/framework": "*",
- "magento/framework-message-queue": "*",
+ "magento/framework": "103.0.*",
+ "magento/framework-message-queue": "100.4.*",
"magento/magento-composer-installer": "*",
- "magento/module-store": "*",
+ "magento/module-store": "101.1.*",
"php": "~8.1.0||~8.2.0||~8.3.0"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -25,3 +26,4 @@
}
}
}
+
diff --git a/app/code/Magento/NewRelicReporting/composer.json b/app/code/Magento/NewRelicReporting/composer.json
index e5e864af08c0c..4b187a6edf010 100644
--- a/app/code/Magento/NewRelicReporting/composer.json
+++ b/app/code/Magento/NewRelicReporting/composer.json
@@ -1,25 +1,26 @@
{
"name": "magento/module-new-relic-reporting",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.5",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
+ "magento/framework": "103.0.*",
"magento/magento-composer-installer": "*",
- "magento/module-backend": "*",
- "magento/module-catalog": "*",
- "magento/module-config": "*",
- "magento/module-configurable-product": "*",
- "magento/module-customer": "*",
- "magento/module-store": "*"
+ "magento/module-backend": "102.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-configurable-product": "100.4.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-store": "101.1.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -29,3 +30,4 @@
}
}
}
+
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue.php
index 7ed184aaa3849..cc2577e24e40d 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue.php
@@ -18,5 +18,14 @@ abstract class Queue extends \Magento\Backend\App\Action
*
* @see _isAllowed()
*/
- const ADMIN_RESOURCE = 'Magento_Newsletter::queue';
+ public const ADMIN_RESOURCE = 'Magento_Newsletter::queue';
+
+ /**
+ * @inheritDoc
+ */
+ protected function _isAllowed()
+ {
+ return ($this->_authorization->isAllowed(self::ADMIN_RESOURCE) &&
+ $this->_authorization->isAllowed('Magento_Newsletter::template'));
+ }
}
diff --git a/app/code/Magento/Newsletter/composer.json b/app/code/Magento/Newsletter/composer.json
index 61fb75fcb054e..48a9bd1e37ee1 100644
--- a/app/code/Magento/Newsletter/composer.json
+++ b/app/code/Magento/Newsletter/composer.json
@@ -1,27 +1,28 @@
{
"name": "magento/module-newsletter",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7-p2",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-cms": "*",
- "magento/module-customer": "*",
- "magento/module-eav": "*",
- "magento/module-email": "*",
- "magento/module-require-js": "*",
- "magento/module-store": "*",
- "magento/module-widget": "*",
- "magento/module-ui": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-cms": "104.0.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-email": "101.1.*",
+ "magento/module-require-js": "100.4.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-widget": "101.2.*",
+ "magento/module-ui": "101.2.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -31,3 +32,4 @@
}
}
}
+
diff --git a/app/code/Magento/NewsletterGraphQl/composer.json b/app/code/Magento/NewsletterGraphQl/composer.json
index aa8f8b9d1bff9..b26e51cb3e362 100644
--- a/app/code/Magento/NewsletterGraphQl/composer.json
+++ b/app/code/Magento/NewsletterGraphQl/composer.json
@@ -1,23 +1,24 @@
{
"name": "magento/module-newsletter-graph-ql",
"description": "Provides GraphQl functionality for the newsletter subscriptions.",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
- "type": "magento2-module",
+ "version": "100.4.4",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-customer": "*",
- "magento/module-newsletter": "*",
- "magento/module-store": "*",
- "magento/module-graph-ql": "*",
- "magento/module-graph-ql-resolver-cache": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-newsletter": "100.4.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-graph-ql": "100.4.*",
+ "magento/module-graph-ql-resolver-cache": "100.4.*"
},
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -27,3 +28,4 @@
}
}
}
+
diff --git a/app/code/Magento/OfflinePayments/composer.json b/app/code/Magento/OfflinePayments/composer.json
index 012082c4c2246..85e14b6bcc0e7 100644
--- a/app/code/Magento/OfflinePayments/composer.json
+++ b/app/code/Magento/OfflinePayments/composer.json
@@ -1,24 +1,25 @@
{
"name": "magento/module-offline-payments",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.5",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-checkout": "*",
- "magento/module-payment": "*",
- "magento/module-quote": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-checkout": "100.4.*",
+ "magento/module-payment": "100.4.*",
+ "magento/module-quote": "101.2.*"
},
"suggest": {
- "magento/module-config": "*"
+ "magento/module-config": "101.2.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -28,3 +29,4 @@
}
}
}
+
diff --git a/app/code/Magento/OfflineShipping/composer.json b/app/code/Magento/OfflineShipping/composer.json
index 2b6eb7e41f5bd..bec9e98fcc19f 100644
--- a/app/code/Magento/OfflineShipping/composer.json
+++ b/app/code/Magento/OfflineShipping/composer.json
@@ -1,32 +1,33 @@
{
"name": "magento/module-offline-shipping",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.6",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-catalog": "*",
- "magento/module-config": "*",
- "magento/module-directory": "*",
- "magento/module-quote": "*",
- "magento/module-sales": "*",
- "magento/module-sales-rule": "*",
- "magento/module-shipping": "*",
- "magento/module-store": "*",
- "magento/module-async-config": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-directory": "100.4.*",
+ "magento/module-quote": "101.2.*",
+ "magento/module-sales": "103.0.*",
+ "magento/module-sales-rule": "101.2.*",
+ "magento/module-shipping": "100.4.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-async-config": "100.4.*"
},
"suggest": {
- "magento/module-checkout": "*",
- "magento/module-offline-shipping-sample-data": "*"
+ "magento/module-checkout": "100.4.*",
+ "magento/module-offline-shipping-sample-data": "Sample Data version: 100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -36,3 +37,4 @@
}
}
}
+
diff --git a/app/code/Magento/OpenSearch/composer.json b/app/code/Magento/OpenSearch/composer.json
index 6979f1b4ce651..33daeb19bb16f 100644
--- a/app/code/Magento/OpenSearch/composer.json
+++ b/app/code/Magento/OpenSearch/composer.json
@@ -1,21 +1,22 @@
{
"name": "magento/module-open-search",
"description": "N/A",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-advanced-search": "*",
- "magento/module-catalog-search": "*",
- "magento/module-elasticsearch": "*",
- "magento/module-search": "*",
- "magento/module-config": "*",
- "opensearch-project/opensearch-php": "^1.0 || ^2.0"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.1",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-advanced-search": "100.4.*",
+ "magento/module-catalog-search": "102.0.*",
+ "magento/module-elasticsearch": "101.0.*",
+ "magento/module-search": "101.1.*",
+ "magento/module-config": "101.2.*",
+ "opensearch-project/opensearch-php": "^1.0 || ^2.0"
+ },
"autoload": {
"files": [
"registration.php"
@@ -25,3 +26,4 @@
}
}
}
+
diff --git a/app/code/Magento/OrderCancellation/composer.json b/app/code/Magento/OrderCancellation/composer.json
index 58e95d5a22880..cebf9106c59e2 100644
--- a/app/code/Magento/OrderCancellation/composer.json
+++ b/app/code/Magento/OrderCancellation/composer.json
@@ -1,21 +1,22 @@
{
"name": "magento/module-order-cancellation",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.0",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-config": "*",
- "magento/module-store": "*",
- "magento/module-sales": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-sales": "103.0.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -25,3 +26,4 @@
}
}
}
+
diff --git a/app/code/Magento/OrderCancellationGraphQl/composer.json b/app/code/Magento/OrderCancellationGraphQl/composer.json
index d38fc3a2dc3e4..301727d5081db 100644
--- a/app/code/Magento/OrderCancellationGraphQl/composer.json
+++ b/app/code/Magento/OrderCancellationGraphQl/composer.json
@@ -1,21 +1,22 @@
{
"name": "magento/module-order-cancellation-graph-ql",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.0",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-sales": "*",
- "magento/module-sales-graph-ql": "*",
- "magento/module-order-cancellation": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-sales": "103.0.*",
+ "magento/module-sales-graph-ql": "100.4.*",
+ "magento/module-order-cancellation": "100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -25,3 +26,4 @@
}
}
}
+
diff --git a/app/code/Magento/OrderCancellationUi/composer.json b/app/code/Magento/OrderCancellationUi/composer.json
index cb55ad9d9c110..e54618d5dc365 100644
--- a/app/code/Magento/OrderCancellationUi/composer.json
+++ b/app/code/Magento/OrderCancellationUi/composer.json
@@ -1,18 +1,19 @@
{
"name": "magento/module-order-cancellation-ui",
"description": "Magento module that implements order cancellation UI.",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-customer": "*",
- "magento/module-order-cancellation": "*",
- "magento/module-sales": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.0",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-order-cancellation": "100.4.*",
+ "magento/module-sales": "103.0.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -22,3 +23,4 @@
}
}
}
+
diff --git a/app/code/Magento/PageCache/composer.json b/app/code/Magento/PageCache/composer.json
index 98e904c24c7d5..40cccb48c7e11 100644
--- a/app/code/Magento/PageCache/composer.json
+++ b/app/code/Magento/PageCache/composer.json
@@ -1,22 +1,23 @@
{
"name": "magento/module-page-cache",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-config": "*",
- "magento/module-store": "*",
- "magento/module-catalog": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-catalog": "104.0.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -26,3 +27,4 @@
}
}
}
+
diff --git a/app/code/Magento/Payment/composer.json b/app/code/Magento/Payment/composer.json
index 4e716166ced01..7e466547d2bd4 100644
--- a/app/code/Magento/Payment/composer.json
+++ b/app/code/Magento/Payment/composer.json
@@ -1,25 +1,26 @@
{
"name": "magento/module-payment",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-checkout": "*",
- "magento/module-config": "*",
- "magento/module-directory": "*",
- "magento/module-quote": "*",
- "magento/module-sales": "*",
- "magento/module-store": "*",
- "magento/module-ui": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-checkout": "100.4.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-directory": "100.4.*",
+ "magento/module-quote": "101.2.*",
+ "magento/module-sales": "103.0.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-ui": "101.2.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -29,3 +30,4 @@
}
}
}
+
diff --git a/app/code/Magento/PaymentGraphQl/composer.json b/app/code/Magento/PaymentGraphQl/composer.json
index c5fb73f611216..3e66e26a130c0 100644
--- a/app/code/Magento/PaymentGraphQl/composer.json
+++ b/app/code/Magento/PaymentGraphQl/composer.json
@@ -2,19 +2,20 @@
"name": "magento/module-payment-graph-ql",
"description": "N/A",
"type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
+ "version": "100.4.2",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-payment": "*",
- "magento/module-graph-ql": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-payment": "100.4.*",
+ "magento/module-graph-ql": "100.4.*"
},
"suggest": {
- "magento/module-store-graph-ql": "*"
+ "magento/module-store-graph-ql": "100.4.*"
},
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -24,3 +25,4 @@
}
}
}
+
diff --git a/app/code/Magento/Paypal/Test/Mftf/ActionGroup/AdminPayPalPayflowProWithValutActionGroup.xml b/app/code/Magento/Paypal/Test/Mftf/ActionGroup/AdminPayPalPayflowProWithValutActionGroup.xml
index 26a19d6e2957a..38e48f93a4758 100644
--- a/app/code/Magento/Paypal/Test/Mftf/ActionGroup/AdminPayPalPayflowProWithValutActionGroup.xml
+++ b/app/code/Magento/Paypal/Test/Mftf/ActionGroup/AdminPayPalPayflowProWithValutActionGroup.xml
@@ -25,10 +25,10 @@
-
-
-
-
+
+
+
+
diff --git a/app/code/Magento/Paypal/Test/Mftf/Test/DeleteSavedWithPayflowProCreditCardFromCustomerAccountTest.xml b/app/code/Magento/Paypal/Test/Mftf/Test/DeleteSavedWithPayflowProCreditCardFromCustomerAccountTest.xml
index e1ec8ec69c230..6cb29988df0da 100644
--- a/app/code/Magento/Paypal/Test/Mftf/Test/DeleteSavedWithPayflowProCreditCardFromCustomerAccountTest.xml
+++ b/app/code/Magento/Paypal/Test/Mftf/Test/DeleteSavedWithPayflowProCreditCardFromCustomerAccountTest.xml
@@ -23,9 +23,7 @@
-
-
-
+
diff --git a/app/code/Magento/Paypal/Test/Mftf/Test/EditOrderFromAdminWithSavedWithinPayPalPayflowProCreditCardForRegisteredCustomerTest.xml b/app/code/Magento/Paypal/Test/Mftf/Test/EditOrderFromAdminWithSavedWithinPayPalPayflowProCreditCardForRegisteredCustomerTest.xml
index 931be9866331b..a9bdf7103ee23 100644
--- a/app/code/Magento/Paypal/Test/Mftf/Test/EditOrderFromAdminWithSavedWithinPayPalPayflowProCreditCardForRegisteredCustomerTest.xml
+++ b/app/code/Magento/Paypal/Test/Mftf/Test/EditOrderFromAdminWithSavedWithinPayPalPayflowProCreditCardForRegisteredCustomerTest.xml
@@ -28,9 +28,7 @@
-
-
-
+
diff --git a/app/code/Magento/Paypal/Test/Mftf/Test/StoreFrontGuestCheckoutWithPayPalPayflowProCreditCardWithSeveralProductsTest.xml b/app/code/Magento/Paypal/Test/Mftf/Test/StoreFrontGuestCheckoutWithPayPalPayflowProCreditCardWithSeveralProductsTest.xml
index d6d2f921cb695..de3a3f6f64df5 100644
--- a/app/code/Magento/Paypal/Test/Mftf/Test/StoreFrontGuestCheckoutWithPayPalPayflowProCreditCardWithSeveralProductsTest.xml
+++ b/app/code/Magento/Paypal/Test/Mftf/Test/StoreFrontGuestCheckoutWithPayPalPayflowProCreditCardWithSeveralProductsTest.xml
@@ -15,6 +15,8 @@
+
+
diff --git a/app/code/Magento/Paypal/Test/Mftf/Test/StorefrontAddProductToCartAndGoToCheckoutWithInvalidCreditCardTest.xml b/app/code/Magento/Paypal/Test/Mftf/Test/StorefrontAddProductToCartAndGoToCheckoutWithInvalidCreditCardTest.xml
index 34fd40095291d..7f6cbdcfca96a 100644
--- a/app/code/Magento/Paypal/Test/Mftf/Test/StorefrontAddProductToCartAndGoToCheckoutWithInvalidCreditCardTest.xml
+++ b/app/code/Magento/Paypal/Test/Mftf/Test/StorefrontAddProductToCartAndGoToCheckoutWithInvalidCreditCardTest.xml
@@ -15,6 +15,8 @@
+
+
diff --git a/app/code/Magento/Paypal/composer.json b/app/code/Magento/Paypal/composer.json
index d419b62aff88c..a4a591eab640d 100644
--- a/app/code/Magento/Paypal/composer.json
+++ b/app/code/Magento/Paypal/composer.json
@@ -1,40 +1,41 @@
{
"name": "magento/module-paypal",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "101.0.7-p3",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
"lib-libxml": "*",
- "magento/framework": "*",
- "magento/module-authorization": "*",
- "magento/module-backend": "*",
- "magento/module-catalog": "*",
- "magento/module-checkout": "*",
- "magento/module-config": "*",
- "magento/module-customer": "*",
- "magento/module-directory": "*",
- "magento/module-eav": "*",
- "magento/module-instant-purchase": "*",
- "magento/module-payment": "*",
- "magento/module-quote": "*",
- "magento/module-sales": "*",
- "magento/module-store": "*",
- "magento/module-tax": "*",
- "magento/module-theme": "*",
- "magento/module-ui": "*",
- "magento/module-vault": "*",
- "magento/module-csp": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-authorization": "100.4.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-checkout": "100.4.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-directory": "100.4.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-instant-purchase": "100.4.*",
+ "magento/module-payment": "100.4.*",
+ "magento/module-quote": "101.2.*",
+ "magento/module-sales": "103.0.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-tax": "100.4.*",
+ "magento/module-theme": "101.1.*",
+ "magento/module-ui": "101.2.*",
+ "magento/module-vault": "101.2.*",
+ "magento/module-csp": "100.4.*"
},
"suggest": {
- "magento/module-checkout-agreements": "*"
+ "magento/module-checkout-agreements": "100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -44,3 +45,4 @@
}
}
}
+
diff --git a/app/code/Magento/PaypalCaptcha/composer.json b/app/code/Magento/PaypalCaptcha/composer.json
index 4ed1baea00a27..6a2b27d7e9b14 100644
--- a/app/code/Magento/PaypalCaptcha/composer.json
+++ b/app/code/Magento/PaypalCaptcha/composer.json
@@ -1,24 +1,25 @@
{
"name": "magento/module-paypal-captcha",
"description": "Provides CAPTCHA validation for PayPal Payflow Pro",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.4",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-captcha": "*",
- "magento/module-checkout": "*",
- "magento/module-store": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-captcha": "100.4.*",
+ "magento/module-checkout": "100.4.*",
+ "magento/module-store": "101.1.*"
},
"suggest": {
- "magento/module-paypal": "*"
+ "magento/module-paypal": "101.0.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -28,3 +29,4 @@
}
}
}
+
diff --git a/app/code/Magento/PaypalGraphQl/composer.json b/app/code/Magento/PaypalGraphQl/composer.json
index d27ad0ada2c14..d0726c6736092 100644
--- a/app/code/Magento/PaypalGraphQl/composer.json
+++ b/app/code/Magento/PaypalGraphQl/composer.json
@@ -1,30 +1,31 @@
{
"name": "magento/module-paypal-graph-ql",
"description": "GraphQl support for Paypal",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.5",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-quote": "*",
- "magento/module-checkout": "*",
- "magento/module-paypal": "*",
- "magento/module-quote-graph-ql": "*",
- "magento/module-sales": "*",
- "magento/module-payment": "*",
- "magento/module-store": "*",
- "magento/module-vault": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-quote": "101.2.*",
+ "magento/module-checkout": "100.4.*",
+ "magento/module-paypal": "101.0.*",
+ "magento/module-quote-graph-ql": "100.4.*",
+ "magento/module-sales": "103.0.*",
+ "magento/module-payment": "100.4.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-vault": "101.2.*"
},
"suggest": {
- "magento/module-graph-ql": "*",
- "magento/module-store-graph-ql": "*"
+ "magento/module-graph-ql": "100.4.*",
+ "magento/module-store-graph-ql": "100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -34,3 +35,4 @@
}
}
}
+
diff --git a/app/code/Magento/Persistent/composer.json b/app/code/Magento/Persistent/composer.json
index 4f64d28ef13f3..529d10426962e 100644
--- a/app/code/Magento/Persistent/composer.json
+++ b/app/code/Magento/Persistent/composer.json
@@ -1,27 +1,28 @@
{
"name": "magento/module-persistent",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-checkout": "*",
- "magento/module-cron": "*",
- "magento/module-customer": "*",
- "magento/module-page-cache": "*",
- "magento/module-quote": "*",
- "magento/module-store": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-checkout": "100.4.*",
+ "magento/module-cron": "100.4.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-page-cache": "100.4.*",
+ "magento/module-quote": "101.2.*",
+ "magento/module-store": "101.1.*"
},
"suggest": {
- "magento/module-login-as-customer-api": "*"
+ "magento/module-login-as-customer-api": "100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -31,3 +32,4 @@
}
}
}
+
diff --git a/app/code/Magento/ProductAlert/composer.json b/app/code/Magento/ProductAlert/composer.json
index ef86db218fc9b..81233b3061991 100644
--- a/app/code/Magento/ProductAlert/composer.json
+++ b/app/code/Magento/ProductAlert/composer.json
@@ -1,29 +1,30 @@
{
"name": "magento/module-product-alert",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.6",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/framework-bulk": "*",
- "magento/module-asynchronous-operations": "*",
- "magento/module-authorization": "*",
- "magento/module-backend": "*",
- "magento/module-catalog": "*",
- "magento/module-customer": "*",
- "magento/module-store": "*",
- "magento/module-theme": "*"
+ "magento/framework": "103.0.*",
+ "magento/framework-bulk": "101.0.*",
+ "magento/module-asynchronous-operations": "100.4.*",
+ "magento/module-authorization": "100.4.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-theme": "101.1.*"
},
"suggest": {
- "magento/module-config": "*"
+ "magento/module-config": "101.2.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -33,3 +34,4 @@
}
}
}
+
diff --git a/app/code/Magento/ProductVideo/composer.json b/app/code/Magento/ProductVideo/composer.json
index 9f8bc23409bac..29e1d817f7040 100644
--- a/app/code/Magento/ProductVideo/composer.json
+++ b/app/code/Magento/ProductVideo/composer.json
@@ -1,29 +1,30 @@
{
"name": "magento/module-product-video",
"description": "Add Video to Products",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
+ "magento/framework": "103.0.*",
"magento/magento-composer-installer": "*",
- "magento/module-backend": "*",
- "magento/module-catalog": "*",
- "magento/module-eav": "*",
- "magento/module-media-storage": "*",
- "magento/module-store": "*"
+ "magento/module-backend": "102.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-media-storage": "100.4.*",
+ "magento/module-store": "101.1.*"
},
"suggest": {
- "magento/module-customer": "*",
- "magento/module-config": "*",
- "magento/module-theme": "*"
+ "magento/module-customer": "103.0.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-theme": "101.1.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -33,3 +34,4 @@
}
}
}
+
diff --git a/app/code/Magento/Quote/Model/BillingAddressManagement.php b/app/code/Magento/Quote/Model/BillingAddressManagement.php
index 9ed4f5ecd516b..066a1829625f7 100644
--- a/app/code/Magento/Quote/Model/BillingAddressManagement.php
+++ b/app/code/Magento/Quote/Model/BillingAddressManagement.php
@@ -77,10 +77,6 @@ public function assign($cartId, AddressInterface $address, $useForShipping = fal
{
/** @var \Magento\Quote\Model\Quote $quote */
$quote = $this->quoteRepository->getActive($cartId);
-
- // validate the address
- $this->addressValidator->validateWithExistingAddress($quote, $address);
-
$address->setCustomerId($quote->getCustomerId());
$quote->removeAddress($quote->getBillingAddress()->getId());
$quote->setBillingAddress($address);
diff --git a/app/code/Magento/Quote/Model/QuoteAddressValidator.php b/app/code/Magento/Quote/Model/QuoteAddressValidator.php
index f8e7141b3bb00..ff57cb2482219 100644
--- a/app/code/Magento/Quote/Model/QuoteAddressValidator.php
+++ b/app/code/Magento/Quote/Model/QuoteAddressValidator.php
@@ -121,27 +121,6 @@ public function validate(AddressInterface $addressData): bool
return true;
}
- /**
- * Validate Quest Address for guest user
- *
- * @param AddressInterface $address
- * @param CartInterface $cart
- * @return void
- * @throws NoSuchEntityException
- */
- private function doValidateForGuestQuoteAddress(AddressInterface $address, CartInterface $cart): void
- {
- //validate guest cart address
- if ($address->getId() !== null) {
- $old = $cart->getAddressById($address->getId());
- if ($old === false) {
- throw new NoSuchEntityException(
- __('Invalid quote address id %1', $address->getId())
- );
- }
- }
- }
-
/**
* Validate address to be used for cart.
*
@@ -153,9 +132,6 @@ private function doValidateForGuestQuoteAddress(AddressInterface $address, CartI
*/
public function validateForCart(CartInterface $cart, AddressInterface $address): void
{
- if ($cart->getCustomerIsGuest()) {
- $this->doValidateForGuestQuoteAddress($address, $cart);
- }
$this->doValidate($address, $cart->getCustomerIsGuest() ? null : (int) $cart->getCustomer()->getId());
}
@@ -171,8 +147,8 @@ public function validateWithExistingAddress(CartInterface $cart, AddressInterfac
{
// check if address belongs to quote.
if ($address->getId() !== null) {
- $old = $cart->getAddressesCollection()->getItemById($address->getId());
- if ($old === null) {
+ $old = $cart->getAddressById($address->getId());
+ if (empty($old)) {
throw new NoSuchEntityException(
__('Invalid quote address id %1', $address->getId())
);
diff --git a/app/code/Magento/Quote/Plugin/QuoteAddress.php b/app/code/Magento/Quote/Plugin/QuoteAddress.php
new file mode 100644
index 0000000000000..2bcbc8a9010bb
--- /dev/null
+++ b/app/code/Magento/Quote/Plugin/QuoteAddress.php
@@ -0,0 +1,67 @@
+addressValidator = $addressValidator;
+ }
+
+ /**
+ * Validate address before setting billing address
+ *
+ * @param Quote $subject
+ * @param AddressInterface|null $address
+ * @return array
+ * @throws NoSuchEntityException
+ */
+ public function beforeSetBillingAddress(Quote $subject, AddressInterface $address = null): array
+ {
+ if ($address !== null) {
+ $this->addressValidator->validateWithExistingAddress($subject, $address);
+ }
+
+ return [$address];
+ }
+
+ /**
+ * Validate address before setting shipping address
+ *
+ * @param Quote $subject
+ * @param AddressInterface|null $address
+ * @return array
+ * @throws NoSuchEntityException
+ */
+ public function beforeSetShippingAddress(Quote $subject, AddressInterface $address = null): array
+ {
+ if ($address !== null) {
+ $this->addressValidator->validateWithExistingAddress($subject, $address);
+ }
+
+ return [$address];
+ }
+}
diff --git a/app/code/Magento/Quote/Plugin/ValidateQuoteOrigOrder.php b/app/code/Magento/Quote/Plugin/ValidateQuoteOrigOrder.php
new file mode 100644
index 0000000000000..d518c5c981104
--- /dev/null
+++ b/app/code/Magento/Quote/Plugin/ValidateQuoteOrigOrder.php
@@ -0,0 +1,65 @@
+request = $request;
+ $this->orderRepository = $orderRepository;
+ }
+
+ /**
+ * Validate the user authorization to order
+ *
+ * @param CartRepositoryInterface $cartRepository
+ * @param CartInterface $quote
+ * @return void
+ * @throws NoSuchEntityException
+ * @SuppressWarnings(PHPMD.UnusedFormalParameter)
+ */
+ public function beforeSave(
+ CartRepositoryInterface $cartRepository,
+ CartInterface $quote
+ ): void {
+ $params = $this->request->getBodyParams();
+ if (!empty($params) && isset($params['quote']['orig_order_id'])) {
+ $orderId = $params['quote']['orig_order_id'];
+ $order = $this->orderRepository->get($orderId);
+ $orderCustomer = (int)$order->getCustomerId();
+ if ($quote->getCustomerId() !== $orderCustomer) {
+ throw new NoSuchEntityException(__('Please check input parameters.'));
+ }
+ }
+ }
+}
diff --git a/app/code/Magento/Quote/Plugin/Webapi/Controller/Rest/ValidateQuoteData.php b/app/code/Magento/Quote/Plugin/Webapi/Controller/Rest/ValidateQuoteData.php
deleted file mode 100644
index d27d49571e04c..0000000000000
--- a/app/code/Magento/Quote/Plugin/Webapi/Controller/Rest/ValidateQuoteData.php
+++ /dev/null
@@ -1,56 +0,0 @@
-validateInputData($inputData[self:: QUOTE_KEY]);
- };
- return [$inputData, $parameters];
- }
-
- /**
- * Validates InputData
- *
- * @param array $inputData
- * @return array
- */
- private function validateInputData(array $inputData): array
- {
- $result = [];
-
- $data = array_filter($inputData, function ($k) use (&$result) {
- $key = is_string($k) ? strtolower($k) : $k;
- return !isset($result[$key]) && ($result[$key] = true);
- }, ARRAY_FILTER_USE_KEY);
-
- return array_map(function ($value) {
- return is_array($value) ? $this->validateInputData($value) : $value;
- }, $data);
- }
-}
diff --git a/app/code/Magento/Quote/Test/Unit/Plugin/Webapi/Controller/Rest/ValidateQuoteDataTest.php b/app/code/Magento/Quote/Test/Unit/Plugin/Webapi/Controller/Rest/ValidateQuoteDataTest.php
deleted file mode 100644
index 8f01cbcddd418..0000000000000
--- a/app/code/Magento/Quote/Test/Unit/Plugin/Webapi/Controller/Rest/ValidateQuoteDataTest.php
+++ /dev/null
@@ -1,114 +0,0 @@
-validateQuoteDataObject = ObjectManager::getInstance()->get(ValidateQuoteData::class);
- $this->reflectionObject = new ReflectionClass(get_class($this->validateQuoteDataObject));
- }
- /**
- * Test if the quote array is valid
- *
- * @param array $array
- * @param array $result
- * @dataProvider dataProviderInputData
- * @throws Exception
- */
- public function testValidateInputData(array $array, array $result)
- {
- $this->assertEquals(
- $result,
- $this->invokeValidateInputData('validateInputData', [$array])
- );
- }
-
- /**
- * @param string $methodName
- * @param array $arguments
- * @return mixed
- * @throws Exception
- */
- private function invokeValidateInputData(string $methodName, array $arguments = [])
- {
- $validateInputDataMethod = $this->reflectionObject->getMethod($methodName);
- $validateInputDataMethod->setAccessible(true);
- return $validateInputDataMethod->invokeArgs($this->validateQuoteDataObject, $arguments);
- }
-
- /**
- * @return array
- */
- public function dataProviderInputData(): array
- {
- return [
- [
- ['person' =>
- [
- 'id' => -1,
- 'Id' => 1,
- 'name' =>
- [
- 'firstName' => 'John',
- 'LastName' => 'S'
- ],
- 'isHavingVehicle' => 1,
- 'address' =>
- [
- 'street' => '4th Street',
- 'Street' => '2nd Street',
- 'city' => 'Atlanta'
- ],
- ]
- ],
- ['person' =>
- [
- 'id' => -1,
- 'name' =>
- [
- 'firstName' => 'John',
- 'LastName' => 'S'
- ],
- 'isHavingVehicle' => 1,
- 'address' =>
- [
- 'street' => '4th Street',
- 'city' => 'Atlanta'
- ],
- ]
- ],
- ]
- ];
- }
-}
diff --git a/app/code/Magento/Quote/composer.json b/app/code/Magento/Quote/composer.json
index 5eda3810bd3f8..55894ab3b5037 100644
--- a/app/code/Magento/Quote/composer.json
+++ b/app/code/Magento/Quote/composer.json
@@ -1,35 +1,36 @@
{
"name": "magento/module-quote",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "101.2.7-p1",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-authorization": "*",
- "magento/module-backend": "*",
- "magento/module-catalog": "*",
- "magento/module-catalog-inventory": "*",
- "magento/module-checkout": "*",
- "magento/module-customer": "*",
- "magento/module-directory": "*",
- "magento/module-eav": "*",
- "magento/module-payment": "*",
- "magento/module-sales": "*",
- "magento/module-sales-sequence": "*",
- "magento/module-shipping": "*",
- "magento/module-store": "*",
- "magento/module-tax": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-authorization": "100.4.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-catalog-inventory": "100.4.*",
+ "magento/module-checkout": "100.4.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-directory": "100.4.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-payment": "100.4.*",
+ "magento/module-sales": "103.0.*",
+ "magento/module-sales-sequence": "100.4.*",
+ "magento/module-shipping": "100.4.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-tax": "100.4.*"
},
"suggest": {
- "magento/module-webapi": "*"
+ "magento/module-webapi": "100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -39,3 +40,4 @@
}
}
}
+
diff --git a/app/code/Magento/Quote/etc/webapi_rest/di.xml b/app/code/Magento/Quote/etc/webapi_rest/di.xml
index d5893f7d16d8b..a3f481bd49463 100644
--- a/app/code/Magento/Quote/etc/webapi_rest/di.xml
+++ b/app/code/Magento/Quote/etc/webapi_rest/di.xml
@@ -18,8 +18,9 @@
+
-
-
+
+
diff --git a/app/code/Magento/Quote/i18n/en_US.csv b/app/code/Magento/Quote/i18n/en_US.csv
index 483b29a9fdbce..6563651ba5acd 100644
--- a/app/code/Magento/Quote/i18n/en_US.csv
+++ b/app/code/Magento/Quote/i18n/en_US.csv
@@ -74,3 +74,4 @@ Carts,Carts
"Please select a valid rate limit period in seconds: %1.","Please select a valid rate limit period in seconds: %1."
"Identity type not found","Identity type not found"
"Invalid order backpressure limit config","Invalid order backpressure limit config"
+"Please check input parameters.","Please check input parameters."
diff --git a/app/code/Magento/QuoteAnalytics/composer.json b/app/code/Magento/QuoteAnalytics/composer.json
index 41313f329760b..0f579409a63f9 100644
--- a/app/code/Magento/QuoteAnalytics/composer.json
+++ b/app/code/Magento/QuoteAnalytics/composer.json
@@ -1,17 +1,18 @@
{
"name": "magento/module-quote-analytics",
"description": "N/A",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-quote": "*",
- "magento/module-analytics": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.6",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-quote": "101.2.*",
+ "magento/module-analytics": "100.4.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -21,3 +22,4 @@
}
}
}
+
diff --git a/app/code/Magento/QuoteBundleOptions/composer.json b/app/code/Magento/QuoteBundleOptions/composer.json
index 579269796dde1..e11a592abd1f2 100644
--- a/app/code/Magento/QuoteBundleOptions/composer.json
+++ b/app/code/Magento/QuoteBundleOptions/composer.json
@@ -1,16 +1,17 @@
{
"name": "magento/module-quote-bundle-options",
"description": "Magento module provides data provider for creating buy request for bundle products",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-quote": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.3",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-quote": "101.2.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -20,3 +21,4 @@
}
}
}
+
diff --git a/app/code/Magento/QuoteConfigurableOptions/composer.json b/app/code/Magento/QuoteConfigurableOptions/composer.json
index 68d02034481df..1a2546c3134f8 100644
--- a/app/code/Magento/QuoteConfigurableOptions/composer.json
+++ b/app/code/Magento/QuoteConfigurableOptions/composer.json
@@ -1,16 +1,17 @@
{
"name": "magento/module-quote-configurable-options",
"description": "Magento module provides data provider for creating buy request for configurable products",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-quote": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.3",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-quote": "101.2.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -20,3 +21,4 @@
}
}
}
+
diff --git a/app/code/Magento/QuoteDownloadableLinks/composer.json b/app/code/Magento/QuoteDownloadableLinks/composer.json
index ea3f0b0c1a753..6164208d11b74 100644
--- a/app/code/Magento/QuoteDownloadableLinks/composer.json
+++ b/app/code/Magento/QuoteDownloadableLinks/composer.json
@@ -1,16 +1,17 @@
{
"name": "magento/module-quote-downloadable-links",
"description": "Magento module provides data provider for creating buy request for links of downloadable products",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-quote": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.3",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-quote": "101.2.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -20,3 +21,4 @@
}
}
}
+
diff --git a/app/code/Magento/QuoteGraphQl/composer.json b/app/code/Magento/QuoteGraphQl/composer.json
index 0ef40e0b4bc4f..2b54c5a5d57dc 100644
--- a/app/code/Magento/QuoteGraphQl/composer.json
+++ b/app/code/Magento/QuoteGraphQl/composer.json
@@ -2,32 +2,33 @@
"name": "magento/module-quote-graph-ql",
"description": "N/A",
"type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-quote": "*",
- "magento/module-checkout": "*",
- "magento/module-catalog": "*",
- "magento/module-store": "*",
- "magento/module-customer": "*",
- "magento/module-customer-graph-ql": "*",
- "magento/module-sales": "*",
- "magento/module-sales-graph-ql": "*",
- "magento/module-directory": "*",
- "magento/module-graph-ql": "*",
- "magento/module-gift-message": "*",
- "magento/module-catalog-inventory": "*",
- "magento/module-eav-graph-ql": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-quote": "101.2.*",
+ "magento/module-checkout": "100.4.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-customer-graph-ql": "100.4.*",
+ "magento/module-sales": "103.0.*",
+ "magento/module-sales-graph-ql": "100.4.*",
+ "magento/module-directory": "100.4.*",
+ "magento/module-graph-ql": "100.4.*",
+ "magento/module-gift-message": "100.4.*",
+ "magento/module-catalog-inventory": "100.4.*",
+ "magento/module-eav-graph-ql": "100.4.*"
},
"suggest": {
- "magento/module-graph-ql-cache": "*",
- "magento/module-catalog-inventory-graph-ql": "*",
- "magento/module-payment-graph-ql": "*"
+ "magento/module-graph-ql-cache": "100.4.*",
+ "magento/module-catalog-inventory-graph-ql": "100.4.*",
+ "magento/module-payment-graph-ql": "100.4.*"
},
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -37,3 +38,4 @@
}
}
}
+
diff --git a/app/code/Magento/RelatedProductGraphQl/composer.json b/app/code/Magento/RelatedProductGraphQl/composer.json
index d78f532e785dd..10b901909be6c 100644
--- a/app/code/Magento/RelatedProductGraphQl/composer.json
+++ b/app/code/Magento/RelatedProductGraphQl/composer.json
@@ -2,19 +2,20 @@
"name": "magento/module-related-product-graph-ql",
"description": "N/A",
"type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
+ "version": "100.4.4",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/module-catalog": "*",
- "magento/module-catalog-graph-ql": "*",
- "magento/framework": "*"
+ "magento/module-catalog": "104.0.*",
+ "magento/module-catalog-graph-ql": "100.4.*",
+ "magento/framework": "103.0.*"
},
"suggest": {
- "magento/module-graph-ql": "*"
+ "magento/module-graph-ql": "100.4.*"
},
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -24,3 +25,4 @@
}
}
}
+
diff --git a/app/code/Magento/ReleaseNotification/composer.json b/app/code/Magento/ReleaseNotification/composer.json
index 4f25e855218f4..aab1df15d8c4a 100644
--- a/app/code/Magento/ReleaseNotification/composer.json
+++ b/app/code/Magento/ReleaseNotification/composer.json
@@ -1,21 +1,22 @@
{
"name": "magento/module-release-notification",
"description": "N/A",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/module-user": "*",
- "magento/module-backend": "*",
- "magento/module-ui": "*",
- "magento/framework": "*"
- },
- "suggest": {
- "magento/module-config": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.5",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/module-user": "101.2.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-ui": "101.2.*",
+ "magento/framework": "103.0.*"
+ },
+ "suggest": {
+ "magento/module-config": "101.2.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -25,3 +26,4 @@
}
}
}
+
diff --git a/app/code/Magento/RemoteStorage/composer.json b/app/code/Magento/RemoteStorage/composer.json
index 418cc1107554e..c4d886c473e5a 100644
--- a/app/code/Magento/RemoteStorage/composer.json
+++ b/app/code/Magento/RemoteStorage/composer.json
@@ -1,31 +1,32 @@
{
"name": "magento/module-remote-storage",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
+ "version": "100.4.5",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
+ "magento/framework": "103.0.*",
"league/flysystem": "^2.4",
"league/flysystem-aws-s3-v3": "^2.4"
},
"suggest": {
- "magento/module-backend": "*",
- "magento/module-sitemap": "*",
- "magento/module-cms": "*",
- "magento/module-downloadable": "*",
- "magento/module-catalog": "*",
- "magento/module-media-storage": "*",
- "magento/module-media-gallery-metadata": "*",
- "magento/module-media-gallery-synchronization": "*",
- "magento/module-import-export": "*",
- "magento/module-catalog-import-export": "*",
- "magento/module-downloadable-import-export": "*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-sitemap": "100.4.*",
+ "magento/module-cms": "104.0.*",
+ "magento/module-downloadable": "100.4.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-media-storage": "100.4.*",
+ "magento/module-media-gallery-metadata": "100.4.*",
+ "magento/module-media-gallery-synchronization": "100.4.*",
+ "magento/module-import-export": "101.0.*",
+ "magento/module-catalog-import-export": "101.1.*",
+ "magento/module-downloadable-import-export": "100.4.*",
"predis/predis": "*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -35,3 +36,4 @@
}
}
}
+
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer.php
index e3db101b96114..751f6e121560f 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer.php
@@ -3,33 +3,38 @@
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
+declare(strict_types=1);
/**
*
* Customer reports admin controller
*
- * @author Magento Core Team
*/
namespace Magento\Reports\Controller\Adminhtml\Report;
+use Magento\Backend\App\Action;
+use Magento\Backend\App\Action\Context;
+use Magento\Framework\App\Response\Http\FileFactory;
+
/**
+ * phpcs:disable Magento2.Classes.AbstractApi
* @api
* @since 100.0.2
*/
-abstract class Customer extends \Magento\Backend\App\Action
+abstract class Customer extends Action
{
/**
- * @var \Magento\Framework\App\Response\Http\FileFactory
+ * @var FileFactory
*/
protected $_fileFactory;
/**
- * @param \Magento\Backend\App\Action\Context $context
- * @param \Magento\Framework\App\Response\Http\FileFactory $fileFactory
+ * @param Context $context
+ * @param FileFactory $fileFactory
*/
public function __construct(
- \Magento\Backend\App\Action\Context $context,
- \Magento\Framework\App\Response\Http\FileFactory $fileFactory
+ Context $context,
+ FileFactory $fileFactory
) {
$this->_fileFactory = $fileFactory;
parent::__construct($context);
@@ -60,19 +65,15 @@ public function _initAction()
*/
protected function _isAllowed()
{
- switch ($this->getRequest()->getActionName()) {
- case 'accounts':
- return $this->_authorization->isAllowed('Magento_Reports::accounts');
- break;
- case 'orders':
- return $this->_authorization->isAllowed('Magento_Reports::customers_orders');
- break;
- case 'totals':
- return $this->_authorization->isAllowed('Magento_Reports::totals');
- break;
- default:
- return $this->_authorization->isAllowed('Magento_Reports::customers');
- break;
- }
+ return match ($this->getRequest()->getActionName()) {
+ 'exportAccountsCsv', 'exportAccountsExcel', 'accounts' =>
+ $this->_authorization->isAllowed('Magento_Reports::accounts'),
+ 'exportOrdersCsv', 'exportOrdersExcel','orders' =>
+ $this->_authorization->isAllowed('Magento_Reports::customers_orders'),
+ 'exportTotalsCsv', 'exportTotalsExcel', 'totals' =>
+ $this->_authorization->isAllowed('Magento_Reports::totals'),
+ default =>
+ $this->_authorization->isAllowed('Magento_Reports::customers'),
+ };
}
}
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportSoldCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportSoldCsv.php
index 409cf05c0f25e..33ab4427254b1 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportSoldCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportSoldCsv.php
@@ -4,20 +4,24 @@
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
+declare(strict_types=1);
+
namespace Magento\Reports\Controller\Adminhtml\Report\Product;
use Magento\Backend\Block\Widget\Grid\ExportInterface;
+use Magento\Framework\App\Action\HttpPostActionInterface;
use Magento\Framework\App\ResponseInterface;
use Magento\Framework\App\Filesystem\DirectoryList;
+use Magento\Reports\Controller\Adminhtml\Report\Product;
-class ExportSoldCsv extends \Magento\Reports\Controller\Adminhtml\Report\Product
+class ExportSoldCsv extends Product implements HttpPostActionInterface
{
/**
* Authorization level of a basic admin session
*
* @see _isAllowed()
*/
- const ADMIN_RESOURCE = 'Magento_Reports::report_products';
+ public const ADMIN_RESOURCE = 'Magento_Reports::sold';
/**
* Export Sold Products report to CSV format action
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportSoldExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportSoldExcel.php
index 4031c721b8fed..1851e2ce2a268 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportSoldExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportSoldExcel.php
@@ -4,20 +4,24 @@
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
+declare(strict_types=1);
+
namespace Magento\Reports\Controller\Adminhtml\Report\Product;
use Magento\Backend\Block\Widget\Grid\ExportInterface;
+use Magento\Framework\App\Action\HttpPostActionInterface;
use Magento\Framework\App\ResponseInterface;
use Magento\Framework\App\Filesystem\DirectoryList;
+use Magento\Reports\Controller\Adminhtml\Report\Product;
-class ExportSoldExcel extends \Magento\Reports\Controller\Adminhtml\Report\Product
+class ExportSoldExcel extends Product implements HttpPostActionInterface
{
/**
* Authorization level of a basic admin session
*
* @see _isAllowed()
*/
- const ADMIN_RESOURCE = 'Magento_Reports::report_products';
+ public const ADMIN_RESOURCE = 'Magento_Reports::sold';
/**
* Export Sold Products report to XML format action
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review.php
index e42fbc1c754f6..05c398864cccb 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review.php
@@ -3,6 +3,7 @@
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
+declare(strict_types=1);
/**
* Review reports admin controller
@@ -11,24 +12,29 @@
*/
namespace Magento\Reports\Controller\Adminhtml\Report;
+use Magento\Backend\App\Action;
+use Magento\Backend\App\Action\Context;
+use Magento\Framework\App\Response\Http\FileFactory;
+
/**
+ * phpcs:disable Magento2.Classes.AbstractApi
* @api
* @since 100.0.2
*/
-abstract class Review extends \Magento\Backend\App\Action
+abstract class Review extends Action
{
/**
- * @var \Magento\Framework\App\Response\Http\FileFactory
+ * @var FileFactory
*/
protected $_fileFactory;
/**
- * @param \Magento\Backend\App\Action\Context $context
- * @param \Magento\Framework\App\Response\Http\FileFactory $fileFactory
+ * @param Context $context
+ * @param FileFactory $fileFactory
*/
public function __construct(
- \Magento\Backend\App\Action\Context $context,
- \Magento\Framework\App\Response\Http\FileFactory $fileFactory
+ Context $context,
+ FileFactory $fileFactory
) {
$this->_fileFactory = $fileFactory;
parent::__construct($context);
@@ -54,16 +60,20 @@ public function _initAction()
*/
protected function _isAllowed()
{
- switch ($this->getRequest()->getActionName()) {
- case 'customer':
- return $this->_authorization->isAllowed('Magento_Reports::review_customer');
- break;
- case 'product':
- return $this->_authorization->isAllowed('Magento_Reports::review_product');
- break;
- default:
- return $this->_authorization->isAllowed('Magento_Reports::review');
- break;
- }
+ return match ($this->getRequest()->getActionName()) {
+ 'exportCustomerCsv',
+ 'exportCustomerExcel',
+ 'customer' =>
+ $this->_authorization->isAllowed('Magento_Reports::review_customer'),
+ 'exportProductCsv',
+ 'exportProductExcel',
+ 'exportProductDetailCsv',
+ 'exportProductDetailExcel',
+ 'productDetail',
+ 'product' =>
+ $this->_authorization->isAllowed('Magento_Reports::review_product'),
+ default =>
+ $this->_authorization->isAllowed('Magento_Reports::review'),
+ };
}
}
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales.php
index c77ff5c26b04e..ac5b1db760457 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales.php
@@ -3,6 +3,7 @@
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
+declare(strict_types=1);
/**
* Sales report admin controller
@@ -13,6 +14,7 @@
/**
* @SuppressWarnings(PHPMD.NumberOfChildren)
+ * phpcs:disable Magento2.Classes.AbstractApi
* @api
* @since 100.0.2
*/
@@ -37,31 +39,23 @@ public function _initAction()
*/
protected function _isAllowed()
{
- switch ($this->getRequest()->getActionName()) {
- case 'sales':
- return $this->_authorization->isAllowed('Magento_Reports::salesroot_sales');
- break;
- case 'tax':
- return $this->_authorization->isAllowed('Magento_Reports::tax');
- break;
- case 'shipping':
- return $this->_authorization->isAllowed('Magento_Reports::shipping');
- break;
- case 'invoiced':
- return $this->_authorization->isAllowed('Magento_Reports::invoiced');
- break;
- case 'refunded':
- return $this->_authorization->isAllowed('Magento_Reports::refunded');
- break;
- case 'coupons':
- return $this->_authorization->isAllowed('Magento_Reports::coupons');
- break;
- case 'bestsellers':
- return $this->_authorization->isAllowed('Magento_Reports::bestsellers');
- break;
- default:
- return $this->_authorization->isAllowed('Magento_Reports::salesroot');
- break;
- }
+ return match (strtolower($this->getRequest()->getActionName())) {
+ 'exportsalescsv', 'exportsalesexcel', 'sales' =>
+ $this->_authorization->isAllowed('Magento_Reports::salesroot_sales'),
+ 'exporttaxcsv', 'exporttaxexcel', 'tax' =>
+ $this->_authorization->isAllowed('Magento_Reports::tax'),
+ 'exportshippingcsv', 'exportshippingexcel', 'shipping' =>
+ $this->_authorization->isAllowed('Magento_Reports::shipping'),
+ 'exportinvoicedcsv', 'exportinvoicedexcel', 'invoiced' =>
+ $this->_authorization->isAllowed('Magento_Reports::invoiced'),
+ 'exportrefundedcsv', 'exportrefundedexcel', 'refunded' =>
+ $this->_authorization->isAllowed('Magento_Reports::refunded'),
+ 'exportcouponscsv', 'exportcouponsexcel', 'coupons' =>
+ $this->_authorization->isAllowed('Magento_Reports::coupons'),
+ 'exportbestsellerscsv', 'exportbestsellersexcel', 'bestsellers' =>
+ $this->_authorization->isAllowed('Magento_Reports::bestsellers'),
+ default =>
+ $this->_authorization->isAllowed('Magento_Reports::salesroot'),
+ };
}
}
diff --git a/app/code/Magento/Reports/composer.json b/app/code/Magento/Reports/composer.json
index 1acae9328acf5..89fbdb91badc7 100644
--- a/app/code/Magento/Reports/composer.json
+++ b/app/code/Magento/Reports/composer.json
@@ -1,35 +1,36 @@
{
"name": "magento/module-reports",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7-p3",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-catalog": "*",
- "magento/module-catalog-inventory": "*",
- "magento/module-cms": "*",
- "magento/module-config": "*",
- "magento/module-customer": "*",
- "magento/module-downloadable": "*",
- "magento/module-eav": "*",
- "magento/module-quote": "*",
- "magento/module-review": "*",
- "magento/module-sales": "*",
- "magento/module-sales-rule": "*",
- "magento/module-store": "*",
- "magento/module-tax": "*",
- "magento/module-widget": "*",
- "magento/module-wishlist": "*",
- "magento/module-directory": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-catalog-inventory": "100.4.*",
+ "magento/module-cms": "104.0.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-downloadable": "100.4.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-quote": "101.2.*",
+ "magento/module-review": "100.4.*",
+ "magento/module-sales": "103.0.*",
+ "magento/module-sales-rule": "101.2.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-tax": "100.4.*",
+ "magento/module-widget": "101.2.*",
+ "magento/module-wishlist": "101.2.*",
+ "magento/module-directory": "100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -39,3 +40,4 @@
}
}
}
+
diff --git a/app/code/Magento/RequireJs/composer.json b/app/code/Magento/RequireJs/composer.json
index 7e3a31bc22445..d0317e7fda034 100644
--- a/app/code/Magento/RequireJs/composer.json
+++ b/app/code/Magento/RequireJs/composer.json
@@ -1,18 +1,19 @@
{
"name": "magento/module-require-js",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.3",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*"
+ "magento/framework": "103.0.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -22,3 +23,4 @@
}
}
}
+
diff --git a/app/code/Magento/Review/composer.json b/app/code/Magento/Review/composer.json
index 265bc3e2e1e5e..fe8ba93e74b5c 100644
--- a/app/code/Magento/Review/composer.json
+++ b/app/code/Magento/Review/composer.json
@@ -1,30 +1,31 @@
{
"name": "magento/module-review",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.7",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-catalog": "*",
- "magento/module-customer": "*",
- "magento/module-eav": "*",
- "magento/module-newsletter": "*",
- "magento/module-store": "*",
- "magento/module-theme": "*",
- "magento/module-ui": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-newsletter": "100.4.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-theme": "101.1.*",
+ "magento/module-ui": "101.2.*"
},
"suggest": {
- "magento/module-cookie": "*",
- "magento/module-review-sample-data": "*"
+ "magento/module-cookie": "100.4.*",
+ "magento/module-review-sample-data": "Sample Data version: 100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -34,3 +35,4 @@
}
}
}
+
diff --git a/app/code/Magento/ReviewAnalytics/composer.json b/app/code/Magento/ReviewAnalytics/composer.json
index 9fadd15d38845..57a5097a532cd 100644
--- a/app/code/Magento/ReviewAnalytics/composer.json
+++ b/app/code/Magento/ReviewAnalytics/composer.json
@@ -1,17 +1,18 @@
{
"name": "magento/module-review-analytics",
"description": "N/A",
- "require": {
- "php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-review": "*",
- "magento/module-analytics": "*"
- },
"type": "magento2-module",
"license": [
"OSL-3.0",
"AFL-3.0"
],
+ "version": "100.4.4",
+ "require": {
+ "php": "~8.1.0||~8.2.0||~8.3.0",
+ "magento/framework": "103.0.*",
+ "magento/module-review": "100.4.*",
+ "magento/module-analytics": "100.4.*"
+ },
"autoload": {
"files": [
"registration.php"
@@ -21,3 +22,4 @@
}
}
}
+
diff --git a/app/code/Magento/ReviewGraphQl/composer.json b/app/code/Magento/ReviewGraphQl/composer.json
index 6425278bd8c6f..16f83fe8303d1 100644
--- a/app/code/Magento/ReviewGraphQl/composer.json
+++ b/app/code/Magento/ReviewGraphQl/composer.json
@@ -2,21 +2,22 @@
"name": "magento/module-review-graph-ql",
"description": "N/A",
"type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
+ "version": "100.4.3",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/module-catalog": "*",
- "magento/module-review": "*",
- "magento/module-store": "*",
- "magento/framework": "*"
+ "magento/module-catalog": "104.0.*",
+ "magento/module-review": "100.4.*",
+ "magento/module-store": "101.1.*",
+ "magento/framework": "103.0.*"
},
"suggest": {
- "magento/module-graph-ql": "*",
- "magento/module-graph-ql-cache": "*"
+ "magento/module-graph-ql": "100.4.*",
+ "magento/module-graph-ql-cache": "100.4.*"
},
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -26,3 +27,4 @@
}
}
}
+
diff --git a/app/code/Magento/Robots/composer.json b/app/code/Magento/Robots/composer.json
index 12b47fd87b1b2..4f012c2afafbf 100644
--- a/app/code/Magento/Robots/composer.json
+++ b/app/code/Magento/Robots/composer.json
@@ -1,22 +1,23 @@
{
"name": "magento/module-robots",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "101.1.3",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-store": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-store": "101.1.*"
},
"suggest": {
- "magento/module-theme": "*"
+ "magento/module-theme": "101.1.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -26,3 +27,4 @@
}
}
}
+
diff --git a/app/code/Magento/Rss/composer.json b/app/code/Magento/Rss/composer.json
index 773a9040782a9..70c4fe3ff38d6 100644
--- a/app/code/Magento/Rss/composer.json
+++ b/app/code/Magento/Rss/composer.json
@@ -1,21 +1,22 @@
{
"name": "magento/module-rss",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.5",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-customer": "*",
- "magento/module-store": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-store": "101.1.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -25,3 +26,4 @@
}
}
}
+
diff --git a/app/code/Magento/Rule/composer.json b/app/code/Magento/Rule/composer.json
index e1c529193e184..93ea2ae7e05e8 100644
--- a/app/code/Magento/Rule/composer.json
+++ b/app/code/Magento/Rule/composer.json
@@ -1,23 +1,24 @@
{
"name": "magento/module-rule",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "100.4.6",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
"lib-libxml": "*",
- "magento/framework": "*",
- "magento/module-backend": "*",
- "magento/module-catalog": "*",
- "magento/module-eav": "*",
- "magento/module-store": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-store": "101.1.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -27,3 +28,4 @@
}
}
}
+
diff --git a/app/code/Magento/Sales/Block/Adminhtml/Order/View.php b/app/code/Magento/Sales/Block/Adminhtml/Order/View.php
index d70df80038193..fc6edd9b6adce 100644
--- a/app/code/Magento/Sales/Block/Adminhtml/Order/View.php
+++ b/app/code/Magento/Sales/Block/Adminhtml/Order/View.php
@@ -16,29 +16,21 @@
class View extends \Magento\Backend\Block\Widget\Form\Container
{
/**
- * Block group
- *
* @var string
*/
protected $_blockGroup = 'Magento_Sales';
/**
- * Core registry
- *
* @var \Magento\Framework\Registry
*/
protected $_coreRegistry = null;
/**
- * Sales config
- *
* @var \Magento\Sales\Model\Config
*/
protected $_salesConfig;
/**
- * Reorder helper
- *
* @var \Magento\Sales\Helper\Reorder
*/
protected $_reorderHelper;
@@ -121,7 +113,7 @@ protected function _construct()
);
}
- if ($this->_isAllowedAction('Magento_Sales::emails') && !$order->isCanceled()) {
+ if ($this->_isAllowedAction('Magento_Sales::email') && !$order->isCanceled()) {
$message = __('Are you sure you want to send an order email to customer?');
$this->addButton(
'send_notification',
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create.php
index 79ec223253a5c..8e2e854061390 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create.php
@@ -26,6 +26,10 @@ abstract class Create extends \Magento\Backend\App\Action
* Indicates how to process post data
*/
private const ACTION_SAVE = 'save';
+ /**
+ * Controller name for edit actions
+ */
+ private const CONTROLLER_NAME_ORDER_EDIT = 'order_edit';
/**
* @var \Magento\Framework\Escaper
*/
@@ -380,6 +384,9 @@ protected function _getAclResource()
if (in_array($action, ['index', 'save', 'cancel']) && $this->_getSession()->getReordered()) {
$action = 'reorder';
}
+ if (strtolower($this->getRequest()->getControllerName() ?? '') === self::CONTROLLER_NAME_ORDER_EDIT) {
+ $action = 'actions_edit';
+ }
switch ($action) {
case 'index':
case 'save':
@@ -391,6 +398,9 @@ protected function _getAclResource()
case 'cancel':
$aclResource = 'Magento_Sales::cancel';
break;
+ case 'actions_edit':
+ $aclResource = 'Magento_Sales::actions_edit';
+ break;
default:
$aclResource = 'Magento_Sales::actions';
break;
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Cancel.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Cancel.php
index 1ca0b53ee8784..0da7c4d8cb5af 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Cancel.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Cancel.php
@@ -6,15 +6,16 @@
namespace Magento\Sales\Controller\Adminhtml\Order\Creditmemo;
use Magento\Backend\App\Action;
+use Magento\Framework\App\Action\HttpPostActionInterface;
-class Cancel extends \Magento\Backend\App\Action
+class Cancel extends \Magento\Backend\App\Action implements HttpPostActionInterface
{
/**
* Authorization level of a basic admin session
*
* @see _isAllowed()
*/
- const ADMIN_RESOURCE = 'Magento_Sales::sales_creditmemo';
+ public const ADMIN_RESOURCE = 'Magento_Sales::creditmemo';
/**
* @var \Magento\Backend\Model\View\Result\ForwardFactory
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/NewAction.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/NewAction.php
index 3ac3abda82cd1..e071444fef0a2 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/NewAction.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/NewAction.php
@@ -15,7 +15,7 @@ class NewAction extends \Magento\Backend\App\Action implements HttpGetActionInte
*
* @see _isAllowed()
*/
- const ADMIN_RESOURCE = 'Magento_Sales::sales_creditmemo';
+ public const ADMIN_RESOURCE = 'Magento_Sales::creditmemo';
/**
* @var \Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Save.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Save.php
index 63558c0290e2c..a0cb5a4dc8ac8 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Save.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Save.php
@@ -5,10 +5,9 @@
*/
namespace Magento\Sales\Controller\Adminhtml\Order\Creditmemo;
-use Magento\Framework\App\Action\HttpPostActionInterface as HttpPostActionInterface;
+use Magento\Framework\App\Action\HttpPostActionInterface;
use Magento\Backend\App\Action;
use Magento\Sales\Helper\Data as SalesData;
-use Magento\Sales\Model\Order;
use Magento\Sales\Model\Order\Email\Sender\CreditmemoSender;
class Save extends \Magento\Backend\App\Action implements HttpPostActionInterface
@@ -18,7 +17,7 @@ class Save extends \Magento\Backend\App\Action implements HttpPostActionInterfac
*
* @see _isAllowed()
*/
- const ADMIN_RESOURCE = 'Magento_Sales::sales_creditmemo';
+ public const ADMIN_RESOURCE = 'Magento_Sales::creditmemo';
/**
* @var \Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Start.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Start.php
index 3dc4aa6dcd500..0fc96d4cfc8f2 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Start.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Start.php
@@ -14,7 +14,7 @@ class Start extends \Magento\Backend\App\Action implements HttpGetActionInterfac
*
* @see _isAllowed()
*/
- const ADMIN_RESOURCE = 'Magento_Sales::sales_creditmemo';
+ public const ADMIN_RESOURCE = 'Magento_Sales::creditmemo';
/**
* Start create creditmemo action
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/UpdateQty.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/UpdateQty.php
index 47a9366727910..8d1e627b43393 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/UpdateQty.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/UpdateQty.php
@@ -15,7 +15,7 @@ class UpdateQty extends \Magento\Backend\App\Action implements HttpPostActionInt
*
* @see _isAllowed()
*/
- const ADMIN_RESOURCE = 'Magento_Sales::sales_creditmemo';
+ public const ADMIN_RESOURCE = 'Magento_Sales::creditmemo';
/**
* @var \Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/VoidAction.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/VoidAction.php
index 146514265517a..225f57251bf25 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/VoidAction.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/VoidAction.php
@@ -6,15 +6,16 @@
namespace Magento\Sales\Controller\Adminhtml\Order\Creditmemo;
use Magento\Backend\App\Action;
+use Magento\Framework\App\Action\HttpPostActionInterface;
-class VoidAction extends Action
+class VoidAction extends Action implements HttpPostActionInterface
{
/**
* Authorization level of a basic admin session
*
* @see _isAllowed()
*/
- const ADMIN_RESOURCE = 'Magento_Sales::sales_creditmemo';
+ public const ADMIN_RESOURCE = 'Magento_Sales::creditmemo';
/**
* @var \Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Cancel.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Cancel.php
index e4a74329502f1..14c52ba7f66e6 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Cancel.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Cancel.php
@@ -6,8 +6,18 @@
*/
namespace Magento\Sales\Controller\Adminhtml\Order\Invoice;
-class Cancel extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice\View
+use Magento\Framework\App\Action\HttpPostActionInterface;
+use Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice\View;
+
+class Cancel extends View implements HttpPostActionInterface
{
+ /**
+ * Authorization level of a basic admin session
+ *
+ * @see _isAllowed()
+ */
+ public const ADMIN_RESOURCE = 'Magento_Sales::invoice';
+
/**
* Cancel invoice action
*
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Capture.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Capture.php
index 43270264ecbda..ea53a8b9bc84a 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Capture.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Capture.php
@@ -6,8 +6,18 @@
*/
namespace Magento\Sales\Controller\Adminhtml\Order\Invoice;
-class Capture extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice\View
+use Magento\Framework\App\Action\HttpPostActionInterface;
+use Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice\View;
+
+class Capture extends View implements HttpPostActionInterface
{
+ /**
+ * Authorization level of a basic admin session
+ *
+ * @see _isAllowed()
+ */
+ public const ADMIN_RESOURCE = 'Magento_Sales::invoice';
+
/**
* Capture invoice action
*
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/NewAction.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/NewAction.php
index ceb231248ef5e..b2a82d8bb9734 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/NewAction.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/NewAction.php
@@ -23,7 +23,7 @@ class NewAction extends \Magento\Backend\App\Action implements HttpGetActionInte
*
* @see _isAllowed()
*/
- const ADMIN_RESOURCE = 'Magento_Sales::sales_invoice';
+ public const ADMIN_RESOURCE = 'Magento_Sales::invoice';
/**
* @var Registry
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Save.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Save.php
index 1ac2cfd5828c5..8078fcd247d22 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Save.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Save.php
@@ -30,7 +30,7 @@ class Save extends \Magento\Backend\App\Action implements HttpPostActionInterfac
*
* @see _isAllowed()
*/
- public const ADMIN_RESOURCE = 'Magento_Sales::sales_invoice';
+ public const ADMIN_RESOURCE = 'Magento_Sales::invoice';
/**
* @var InvoiceSender
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Start.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Start.php
index 4648656a3253f..29172e7b9af1e 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Start.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Start.php
@@ -10,6 +10,13 @@
class Start extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice\View implements HttpGetActionInterface
{
+ /**
+ * Authorization level of a basic admin session
+ *
+ * @see _isAllowed()
+ */
+ public const ADMIN_RESOURCE = 'Magento_Sales::invoice';
+
/**
* Start create invoice action
*
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/UpdateQty.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/UpdateQty.php
index c94afa3cc8057..54122fc7dcd78 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/UpdateQty.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/UpdateQty.php
@@ -18,11 +18,19 @@
use Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice\View as AbstractView;
/**
- * Class UpdateQty
+ * Class UpdateQty to update invoice items qty
+ *
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
*/
class UpdateQty extends AbstractView implements HttpPostActionInterface
{
+ /**
+ * Authorization level of a basic admin session
+ *
+ * @see _isAllowed()
+ */
+ public const ADMIN_RESOURCE = 'Magento_Sales::invoice';
+
/**
* @var JsonFactory
*/
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/VoidAction.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/VoidAction.php
index 4888ed555234c..b69a4d78c7a81 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/VoidAction.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/VoidAction.php
@@ -6,8 +6,18 @@
*/
namespace Magento\Sales\Controller\Adminhtml\Order\Invoice;
-class VoidAction extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice\View
+use Magento\Framework\App\Action\HttpPostActionInterface;
+use Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice\View;
+
+class VoidAction extends View implements HttpPostActionInterface
{
+ /**
+ * Authorization level of a basic admin session
+ *
+ * @see _isAllowed()
+ */
+ public const ADMIN_RESOURCE = 'Magento_Sales::invoice';
+
/**
* Void invoice action
*
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Pdfdocs.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Pdfdocs.php
index f641a7bde7335..84b154a383b71 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Pdfdocs.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Pdfdocs.php
@@ -5,6 +5,7 @@
*/
namespace Magento\Sales\Controller\Adminhtml\Order;
+use Magento\Framework\App\Action\HttpPostActionInterface;
use Magento\Framework\App\ResponseInterface;
use Magento\Framework\App\Filesystem\DirectoryList;
use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection;
@@ -21,10 +22,11 @@
use Magento\Sales\Model\ResourceModel\Order\Creditmemo\CollectionFactory as CreditmemoCollectionFactory;
/**
- * Class Pdfdocs
+ * Export all docs in pdf
+ *
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
*/
-class Pdfdocs extends \Magento\Sales\Controller\Adminhtml\Order\AbstractMassAction
+class Pdfdocs extends \Magento\Sales\Controller\Adminhtml\Order\AbstractMassAction implements HttpPostActionInterface
{
/**
* @var \Magento\Framework\App\Response\Http\FileFactory
@@ -124,13 +126,13 @@ protected function massAction(AbstractCollection $collection)
$creditmemos = $this->creditmemoCollectionFactory->create()->setOrderFilter(['in' => $orderIds]);
$documents = [];
- if ($invoices->getSize()) {
+ if ($this->_authorization->isAllowed('Magento_Sales::invoice') && $invoices->getSize()) {
$documents[] = $this->pdfInvoice->getPdf($invoices);
}
- if ($shipments->getSize()) {
+ if ($this->_authorization->isAllowed('Magento_Sales::ship') && $shipments->getSize()) {
$documents[] = $this->pdfShipment->getPdf($shipments);
}
- if ($creditmemos->getSize()) {
+ if ($this->_authorization->isAllowed('Magento_Sales::creditmemo') && $creditmemos->getSize()) {
$documents[] = $this->pdfCreditmemo->getPdf($creditmemos);
}
@@ -140,9 +142,13 @@ protected function massAction(AbstractCollection $collection)
}
$pdf = array_shift($documents);
+ $documentList = [];
foreach ($documents as $document) {
- $pdf->pages = array_merge($pdf->pages, $document->pages);
+ $documentList[] = $document->pages;
}
+
+ $pdf->pages = array_merge($pdf->pages, array_merge(...$documentList));
+
$fileContent = ['type' => 'string', 'value' => $pdf->render(), 'rm' => true];
return $this->fileFactory->create(
diff --git a/app/code/Magento/Sales/Helper/Admin.php b/app/code/Magento/Sales/Helper/Admin.php
index 1e2e5dfb79668..cc6e62bc710b5 100644
--- a/app/code/Magento/Sales/Helper/Admin.php
+++ b/app/code/Magento/Sales/Helper/Admin.php
@@ -160,84 +160,6 @@ public function applySalableProductTypesFilter($collection)
*/
public function escapeHtmlWithLinks($data, $allowedTags = null)
{
- if (!empty($data) && is_array($allowedTags) && in_array('a', $allowedTags)) {
- $wrapperElementId = uniqid();
- $domDocument = $this->domDocumentFactory->create();
-
- $internalErrors = libxml_use_internal_errors(true);
-
- $convmap = [0x80, 0x10FFFF, 0, 0x1FFFFF];
- $data = mb_encode_numericentity(
- $data,
- $convmap,
- 'UTF-8'
- );
-
- $domDocument->loadHTML(
- '' . $data . ''
- );
-
- libxml_use_internal_errors($internalErrors);
-
- $linkTags = $domDocument->getElementsByTagName('a');
-
- foreach ($linkTags as $linkNode) {
- $linkAttributes = [];
- foreach ($linkNode->attributes as $attribute) {
- $linkAttributes[$attribute->name] = $attribute->value;
- }
-
- foreach ($linkAttributes as $attributeName => $attributeValue) {
- if ($attributeName === 'href') {
- $url = $this->filterUrl($attributeValue ?? '');
- $url = $this->escaper->escapeUrl($url);
- $linkNode->setAttribute('href', $url);
- } else {
- $linkNode->removeAttribute($attributeName);
- }
- }
- }
-
- $result = mb_decode_numericentity(
- // phpcs:ignore Magento2.Functions.DiscouragedFunction
- html_entity_decode(
- $domDocument->saveHTML(),
- ENT_QUOTES|ENT_SUBSTITUTE,
- 'UTF-8'
- ),
- $convmap,
- 'UTF-8'
- );
-
- preg_match('/(.+)<\/body><\/html>$/si', $result, $matches);
- $data = !empty($matches) ? $matches[1] : '';
- }
-
return $this->escaper->escapeHtml($data, $allowedTags);
}
-
- /**
- * Filter the URL for allowed protocols.
- *
- * @param string $url
- * @return string
- */
- private function filterUrl(string $url): string
- {
- if ($url) {
- //Revert the sprintf escaping
- // phpcs:ignore Magento2.Functions.DiscouragedFunction
- $urlScheme = parse_url($url, PHP_URL_SCHEME);
- $urlScheme = $urlScheme ? strtolower($urlScheme) : '';
- if ($urlScheme !== 'http' && $urlScheme !== 'https') {
- $url = null;
- }
- }
-
- if (!$url) {
- $url = '#';
- }
-
- return $url;
- }
}
diff --git a/app/code/Magento/Sales/ViewModel/Order/Create/SidebarPermissionCheck.php b/app/code/Magento/Sales/ViewModel/Order/Create/SidebarPermissionCheck.php
new file mode 100644
index 0000000000000..cf7f8ff72636a
--- /dev/null
+++ b/app/code/Magento/Sales/ViewModel/Order/Create/SidebarPermissionCheck.php
@@ -0,0 +1,42 @@
+authorization = $authorization;
+ }
+
+ /**
+ * To check customer permission
+ *
+ * @return bool
+ */
+ public function isAllowed(): bool
+ {
+ return $this->authorization->isAllowed('Magento_Customer::customer');
+ }
+}
diff --git a/app/code/Magento/Sales/composer.json b/app/code/Magento/Sales/composer.json
index 9bbb67d739cca..647bf7b5d2205 100644
--- a/app/code/Magento/Sales/composer.json
+++ b/app/code/Magento/Sales/composer.json
@@ -1,45 +1,46 @@
{
"name": "magento/module-sales",
"description": "N/A",
+ "type": "magento2-module",
+ "license": [
+ "OSL-3.0",
+ "AFL-3.0"
+ ],
"config": {
"sort-packages": true
},
+ "version": "103.0.7-p3",
"require": {
"php": "~8.1.0||~8.2.0||~8.3.0",
- "magento/framework": "*",
- "magento/module-authorization": "*",
- "magento/module-backend": "*",
- "magento/module-catalog": "*",
- "magento/module-bundle": "*",
- "magento/module-catalog-inventory": "*",
- "magento/module-checkout": "*",
- "magento/module-config": "*",
- "magento/module-customer": "*",
- "magento/module-directory": "*",
- "magento/module-eav": "*",
- "magento/module-gift-message": "*",
- "magento/module-media-storage": "*",
- "magento/module-payment": "*",
- "magento/module-quote": "*",
- "magento/module-reports": "*",
- "magento/module-sales-rule": "*",
- "magento/module-sales-sequence": "*",
- "magento/module-shipping": "*",
- "magento/module-store": "*",
- "magento/module-tax": "*",
- "magento/module-theme": "*",
- "magento/module-ui": "*",
- "magento/module-widget": "*",
- "magento/module-wishlist": "*"
+ "magento/framework": "103.0.*",
+ "magento/module-authorization": "100.4.*",
+ "magento/module-backend": "102.0.*",
+ "magento/module-catalog": "104.0.*",
+ "magento/module-bundle": "101.0.*",
+ "magento/module-catalog-inventory": "100.4.*",
+ "magento/module-checkout": "100.4.*",
+ "magento/module-config": "101.2.*",
+ "magento/module-customer": "103.0.*",
+ "magento/module-directory": "100.4.*",
+ "magento/module-eav": "102.1.*",
+ "magento/module-gift-message": "100.4.*",
+ "magento/module-media-storage": "100.4.*",
+ "magento/module-payment": "100.4.*",
+ "magento/module-quote": "101.2.*",
+ "magento/module-reports": "100.4.*",
+ "magento/module-sales-rule": "101.2.*",
+ "magento/module-sales-sequence": "100.4.*",
+ "magento/module-shipping": "100.4.*",
+ "magento/module-store": "101.1.*",
+ "magento/module-tax": "100.4.*",
+ "magento/module-theme": "101.1.*",
+ "magento/module-ui": "101.2.*",
+ "magento/module-widget": "101.2.*",
+ "magento/module-wishlist": "101.2.*"
},
"suggest": {
- "magento/module-sales-sample-data": "*"
+ "magento/module-sales-sample-data": "Sample Data version: 100.4.*"
},
- "type": "magento2-module",
- "license": [
- "OSL-3.0",
- "AFL-3.0"
- ],
"autoload": {
"files": [
"registration.php"
@@ -49,3 +50,4 @@
}
}
}
+
diff --git a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_create_index.xml b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_create_index.xml
index c2178429e30c2..9d56e806a10c2 100644
--- a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_create_index.xml
+++ b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_create_index.xml
@@ -36,6 +36,9 @@
= $block->escapeHtml(__('Customer\'s Activities')) ?>
+= $escaper->escapeHtml(__('Customer\'s Activities')) ?>