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.
Previously this gem used a series of
'$ne'
operators for cannot rules. I have changed it to put then all inside a$nor
block. This has the advantage that it works with more complex nested behaviors, such as"$nor" => [{ name: { "$in" => ["Bob", "Jane"] }]
Also includes some refactoring which makes it cleaner / easier to read.
As a result, this PR also changes the behavior of one spec which I think was incorrect previously:
Here I think it should actually be no results, i.e.
[]
, because the .cannot rule should take precedence over the .can. I think this makes much more sense from a security standpoint, etc.I have changed it to: