Add public API endpoint permission handling #5496
Merged
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 moves the rule handling for what data public access can retrieve into a singlular place (inside of the permissions system), and ensure that anyone attempting to get access to data they shouldn't gets a permissions error (rather than having their query modified).
With this PR, the get helper would be able to make GET requests to the Post, User & Tag endpoints only. Once we have the client auth in place, we'll be able to use this to provide read only access to the API over HTTP, and to explicitly hard-code in a client ID for the frontend controller & GET helper if we want (useful for logging where requests come from?).
It probably needs a bit more work to refactor out the
handlePermissions
functions into a util so the code isn't duplicated 6 times, but it's nearly there :)refs #4004, #5614