previously set tenant is leaked, when RLS is disabled #43
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.
I frequently check
RLS.current_tenant_id
in my code to check if a current tenant has been specified, and I also useRLS.disable_for_block
in a few places where no tenant is relevant. I was recently debugging a piece of code that could be run with or without a tenant. In this particular run, I was expecting no tenant to be set, but I noticed thatRLS.current_tenant_id
was set, even though I was within aRLS.disable_for_block
block andRLS.disabled?
wasfalse
. I could check for bothRLS.enabled? && RLS.current_tenant_id
, but I think it would be less error-prone to returnnil
forRLS.current_tenant_id
andRLS.current_user_id
ifRLS.disabled?
istrue
.What do you think? Happy to push this further, if you think this could be improved more.
Thanks!