1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-28 09:42:41 +01:00
phorge-phorge/src/applications/phid
epriestley c4abf160cc Fix some file policy issues and add a "Query Workspace"
Summary:
Ref T603. Several issues here:

  1. Currently, `FileQuery` does not actually respect object attachment edges when doing policy checks. Everything else works fine, but this was missing an `array_keys()`.
  2. Once that's fixed, we hit a bunch of recursion issues. For example, when loading a User we load the profile picture, and then that loads the User, and that loads the profile picture, etc.
  3. Introduce a "Query Workspace", which holds objects we know we've loaded and know we can see but haven't finished filtering and/or attaching data to. This allows subqueries to look up objects instead of querying for them.
    - We can probably generalize this a bit to make a few other queries more efficient. Pholio currently has a similar (but less general) "mock cache". However, it's keyed by ID instead of PHID so it's not easy to reuse this right now.

This is a bit complex for the problem being solved, but I think it's the cleanest approach and I believe the primitive will be useful in the future.

Test Plan: Looked at pastes, macros, mocks and projects as a logged-in and logged-out user.

Reviewers: btrahan

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T603

Differential Revision: https://secure.phabricator.com/D7309
2013-10-14 14:36:06 -07:00
..
conduit Kill PhabricatorObjectDataHandle 2013-09-11 12:27:28 -07:00
handle Kill PhabricatorObjectDataHandle 2013-09-11 12:27:28 -07:00
query Fix some file policy issues and add a "Query Workspace" 2013-10-14 14:36:06 -07:00
storage Remove PhabricatorPHID::fromObjectName 2013-07-22 12:17:37 -07:00
type Proide application-based handle loads; load Slowvote handles from the application 2013-07-22 12:17:28 -07:00
PhabricatorObjectHandle.php Allow projects to review revisions 2013-10-05 14:10:46 -07:00
PhabricatorPHIDConstants.php Use application PHIDs for ATOM 2013-07-30 06:49:13 -07:00
utils.php Use Application PHIDs in Projects 2013-07-22 12:17:53 -07:00