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

[5.x] Prevents Recursive Fieldsets #9539

Merged
merged 32 commits into from
Apr 15, 2024
Merged

[5.x] Prevents Recursive Fieldsets #9539

merged 32 commits into from
Apr 15, 2024

Conversation

JohnathonKoster
Copy link
Contributor

@JohnathonKoster JohnathonKoster commented Feb 18, 2024

This PR closes #1725 by returning early if we've already seen a fieldset's handle. This PR targets 5.x since it changes some constructions and public method signatures,

Currently it logs a warning instead of throwing an exception, but this could be easily changed. If this direction looks correct, I will work on getting the UI updated to also not attempt to recursively process includes (this could also be sidestepped by just throwing an exception).

Will add docs issue depending on which direction is desired here (log and fix UI, just throw an exception, no change for now) 🙂

@duncanmcclean duncanmcclean changed the base branch from 4.x to master February 18, 2024 20:45
@duncanmcclean
Copy link
Member

Since this PR is for v5, I've changed the target branch to master. Would you be able to rebase your branch with the latest changes from master?

duncanmcclean and others added 28 commits February 18, 2024 15:08
Copy link
Member

@jasonvarga jasonvarga left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've adjusted this so it can be done without any breaking changes.

  • Wasn't a fan of passing around an array and changing method signatures, so I'm using a singleton to track state.
  • There is now validation when saving a blueprint or fieldset that should prevent you from getting into a recursive situation to begin with.
  • If you happen to get into recursion somehow, there is now a detailed exception, rather than a log and trying to filter out fields.

@jasonvarga jasonvarga merged commit 54a0496 into statamic:master Apr 15, 2024
16 checks passed
@jasonvarga jasonvarga deleted the 1725--recursive-fieldsets-infinite-loop branch April 15, 2024 18:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

Handle infinite recursion when importing fieldsets into fieldsets
7 participants