1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2025-04-13 04:48:34 +02:00
phorge-phorge/src/infrastructure/query
epriestley 03ac59a877 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
2019-01-28 09:03:32 -08:00
..
constraint Support some QueryConstraint operations against generic ApplicationSearch query logic 2018-02-22 12:49:49 -08:00
order Drive Maniphest grouping and ordering through standard infrastructure 2015-06-08 12:23:13 -07:00
policy Don't put "spacePHID IN (...)" constraints in queries which will raise policy exceptions 2019-01-28 09:03:32 -08:00
PhabricatorEmptyQueryException.php Apply some autofix linter rules 2014-09-10 06:55:05 +10:00
PhabricatorOffsetPagedQuery.php Update many Phabricator queries for new %Q query semantics 2018-11-15 03:48:10 -08:00
PhabricatorQuery.php Update many Phabricator queries for new %Q query semantics 2018-11-15 03:48:10 -08:00