-
-
Notifications
You must be signed in to change notification settings - Fork 539
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
jasonvarga
merged 32 commits into
statamic:master
from
JohnathonKoster:1725--recursive-fieldsets-infinite-loop
Apr 15, 2024
Merged
[5.x] Prevents Recursive Fieldsets #9539
jasonvarga
merged 32 commits into
statamic:master
from
JohnathonKoster:1725--recursive-fieldsets-infinite-loop
Apr 15, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Since this PR is for v5, I've changed the target branch to |
# Conflicts: # tests/Fields/FieldsTest.php
jasonvarga
approved these changes
Apr 15, 2024
There was a problem hiding this 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.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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) 🙂