Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ProductRepository is loading initializationHelper which is an Adminhtml controller #37864

Closed
1 of 5 tasks
MrBlueEyez opened this issue Aug 8, 2023 · 8 comments · Fixed by #37868
Closed
1 of 5 tasks
Assignees
Labels
Area: Performance Issue: Confirmed Gate 3 Passed. Manual verification of the issue completed. Issue is confirmed Priority: P1 Once P0 defects have been fixed, a defect having this priority is the next candidate for fixing. Progress: done Reported on 2.4.x Indicates original Magento version for the Issue report. Reproduced on 2.4.x The issue has been reproduced on latest 2.4-develop branch Triage: Dev.Experience Issue related to Developer Experience and needs help with Triage to Confirm or Reject it Triage: Performance

Comments

@MrBlueEyez
Copy link

MrBlueEyez commented Aug 8, 2023

Summary

The Magento\Catalog\Model\ProductRepository is loading the Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper in its constructor, but then continues to not use it.

This, on a first look, doesn't seem to cause any issues. However when using some third party modules which extend the PathInfoProcessor and that uses the productRepository this is causing some issues with loading in di.xml configurations.

When trying to use the rest-api with an oauth authorization, the Magento\Framework\App\Http class is triggered, which first tries to get the area code of the current url. But then the custom logic by the third party is triggered, finally loading in the productRepository. The productRepository then tries to load the above mentioned adminhtml controller, which tries to access the roleLocatorInterface, which is now not based on the webapi_rest/di.xml, but on the default app/etc/di.xml. Causing the Magento\Framework\Authorization\RoleLocator\DefaultRoleLocator to be loaded instead of the Magento\Framework\Authorization\RoleLocatorInterface\WebapiRoleLocator. This last thing causes the authorization to fail, as the DefaultRoleLocator returns '' instead of executing logic like the WebapiRoleLocator.

There is currently no workaround for this.

Examples

The only thing that is required to be changed for this to work is to remove the \Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper $initializationHelper, in Magento\Catalog\Model\ProductRepository on line 225.

Which is causing this issue, and isn't being used in the file at all.

Proposed solution

Remove the loading of \Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper $initializationHelper, inside the Magento\Catalog\Model\ProductRepository.

Release note

Removing unused Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper from Magento\Catalog\Model\ProductRepository

Triage and priority

  • Severity: S0 - Affects critical data or functionality and leaves users without workaround.
  • Severity: S1 - Affects critical data or functionality and forces users to employ a workaround.
  • Severity: S2 - Affects non-critical data or functionality and forces users to employ a workaround.
  • Severity: S3 - Affects non-critical data or functionality and does not force users to employ a workaround.
  • Severity: S4 - Affects aesthetics, professional look and feel, “quality” or “usability”.
@MrBlueEyez MrBlueEyez added the Triage: Dev.Experience Issue related to Developer Experience and needs help with Triage to Confirm or Reject it label Aug 8, 2023
@m2-assistant
Copy link

m2-assistant bot commented Aug 8, 2023

Hi @MrBlueEyez. Thank you for your report.
To speed up processing of this issue, make sure that the issue is reproducible on the vanilla Magento instance following Steps to reproduce. To deploy vanilla Magento instance on our environment, Add a comment to the issue:


Join Magento Community Engineering Slack and ask your questions in #github channel.
⚠️ According to the Magento Contribution requirements, all issues must go through the Community Contributions Triage process. Community Contributions Triage is a public meeting.
🕙 You can find the schedule on the Magento Community Calendar page.
📞 The triage of issues happens in the queue order. If you want to speed up the delivery of your contribution, join the Community Contributions Triage session to discuss the appropriate ticket.

@m2-community-project m2-community-project bot added this to Ready for Confirmation in Issue Confirmation and Triage Board Aug 8, 2023
@engcom-Bravo engcom-Bravo added the Reported on 2.4.x Indicates original Magento version for the Issue report. label Aug 8, 2023
@MrBlueEyez
Copy link
Author

Just been looking back into the history:
In 2.0.18 the helper is being used.
https://github.com/magento/magento2/blob/2.0.18/app/code/Magento/Catalog/Model/ProductRepository.php

But the usage is removed in 2.1.0 and beyond:
https://github.com/magento/magento2/blob/2.1.0/app/code/Magento/Catalog/Model/ProductRepository.php

@ihor-sviziev ihor-sviziev added Priority: P2 A defect with this priority could have functionality issues which are not to expectations. Triage: Performance Area: Performance labels Aug 8, 2023
@m2-community-project m2-community-project bot added this to Ready for Development in High Priority Backlog Aug 8, 2023
@m2-community-project m2-community-project bot removed this from Ready for Confirmation in Issue Confirmation and Triage Board Aug 8, 2023
@ihor-sviziev ihor-sviziev added Priority: P1 Once P0 defects have been fixed, a defect having this priority is the next candidate for fixing. and removed Priority: P2 A defect with this priority could have functionality issues which are not to expectations. labels Aug 8, 2023
@ihor-sviziev
Copy link
Contributor

Good catch!

@BeggiNN
Copy link
Contributor

BeggiNN commented Aug 9, 2023

@magento I am working on this

@m2-community-project m2-community-project bot moved this from Ready for Development to Dev In Progress in High Priority Backlog Aug 9, 2023
BeggiNN added a commit to BeggiNN/magento2 that referenced this issue Aug 9, 2023
- Removed unused class \Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper from \Magento\Catalog\Model\ProductRepository
@m2-community-project m2-community-project bot moved this from Dev In Progress to Pull Request In Progress in High Priority Backlog Aug 9, 2023
@engcom-Hotel engcom-Hotel self-assigned this Aug 10, 2023
@m2-assistant
Copy link

m2-assistant bot commented Aug 10, 2023

Hi @engcom-Hotel. Thank you for working on this issue.
In order to make sure that issue has enough information and ready for development, please read and check the following instruction: 👇

  • 1. Verify that issue has all the required information. (Preconditions, Steps to reproduce, Expected result, Actual result).
  • 2. Verify that issue has a meaningful description and provides enough information to reproduce the issue.
  • 3. Add Area: XXXXX label to the ticket, indicating the functional areas it may be related to.
  • 4. Verify that the issue is reproducible on 2.4-develop branch
    Details- Add the comment @magento give me 2.4-develop instance to deploy test instance on Magento infrastructure.
    - If the issue is reproducible on 2.4-develop branch, please, add the label Reproduced on 2.4.x.
    - If the issue is not reproducible, add your comment that issue is not reproducible and close the issue and stop verification process here!
  • 5. Add label Issue: Confirmed once verification is complete.
  • 6. Make sure that automatic system confirms that report has been added to the backlog.

@engcom-Hotel
Copy link
Contributor

Hello @MrBlueEyez,

Thanks for the report and collaboration!

We have tried to reproduce the issue in Magento 2.4-develop branch by looking into the codebase. And it seems the issue is reproducible for us.

$this->initializationHelper is not in use and the scenario mentioned in the main description seems valid.

Hence confirming the issue.

Thanks

@engcom-Hotel engcom-Hotel added Issue: Confirmed Gate 3 Passed. Manual verification of the issue completed. Issue is confirmed Reproduced on 2.4.x The issue has been reproduced on latest 2.4-develop branch labels Aug 10, 2023
@github-jira-sync-bot
Copy link

✅ Jira issue https://jira.corp.adobe.com/browse/AC-9302 is successfully created for this GitHub issue.

@m2-assistant
Copy link

m2-assistant bot commented Aug 10, 2023

✅ Confirmed by @engcom-Hotel. Thank you for verifying the issue.
Issue Available: @engcom-Hotel, You will be automatically unassigned. Contributors/Maintainers can claim this issue to continue. To reclaim and continue work, reassign the ticket to yourself.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: Performance Issue: Confirmed Gate 3 Passed. Manual verification of the issue completed. Issue is confirmed Priority: P1 Once P0 defects have been fixed, a defect having this priority is the next candidate for fixing. Progress: done Reported on 2.4.x Indicates original Magento version for the Issue report. Reproduced on 2.4.x The issue has been reproduced on latest 2.4-develop branch Triage: Dev.Experience Issue related to Developer Experience and needs help with Triage to Confirm or Reject it Triage: Performance
Projects
Development

Successfully merging a pull request may close this issue.

6 participants