Homestyx hydra
Diffusion hydra 03ac59a87708

Don't put "spacePHID IN (...)" constraints in queries which will raise policy…

Description

Don't put "spacePHID IN (...)" constraints in queries which will raise policy exceptions

Summary:
See T13240. Ref T13242. When we're issuing a query that will raise policy exceptions (i.e., give the user a "You Shall Not Pass" dialog if they can not see objects it loads), don't do space filtering in MySQL: when objects are filtered out in MySQL, we can't distinguish between "bad/invalid ID/object" and "policy filter", so we can't raise a policy exception.

This leads to cases where viewing an object shows "You Shall Not Pass" if you can't see it for any non-Spaces reason, but "404" if the reason is Spaces.

There's no product reason for this, it's just that spacePHID IN (...) is important for non-policy-raising queries (like a list of tasks) to reduce how much application filtering we need to do.

Test Plan:
Before:

$ git pull
phabricator-ssh-exec: No repository "spellbook" exists!
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

After:

$ git pull
phabricator-ssh-exec: [You Shall Not Pass: Unknown Object (Repository)] This object is in a space you do not have permission to access.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Reviewers: amckinley

Reviewed By: amckinley

Maniphest Tasks: T13242

Differential Revision: https://secure.phabricator.com/D20042

Details

Provenance
epriestleyAuthored on Jan 28 2019, 10:46 AM
sirocylPushed on Oct 16 2024, 5:49 AM
Parents
R1:c9ff6ce390d6: Add CSRF to SMS challenges, and pave the way for more MFA types (including Duo)
Branches
Unknown
Tags
Unknown

Event Timeline