[5.x] Prevents Recursive Fieldsets#9539
Merged
jasonvarga merged 32 commits intostatamic:masterfrom Apr 15, 2024
JohnathonKoster:1725--recursive-fieldsets-infinite-loop
Merged
[5.x] Prevents Recursive Fieldsets#9539jasonvarga merged 32 commits intostatamic:masterfrom JohnathonKoster:1725--recursive-fieldsets-infinite-loop
jasonvarga merged 32 commits intostatamic:masterfrom
JohnathonKoster:1725--recursive-fieldsets-infinite-loop
Conversation
Member
|
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
Member
jasonvarga
left a comment
There was a problem hiding this comment.
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.
This file contains hidden or 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
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) 🙂