epriestley
3068639ccf
Implement query and policy rules for subprojects
...
Summary:
Ref T10010. This implements technical groundwork for subprojects. Specifically, it implements policy rules like Phriction:
- to see a project, you must be able to see all of its parents (and the project itself).
- you can edit a project if you can edit any of its parents (or the project itself).
To facilitiate this, we load all project ancestors when querying projects so we can do the view/edit checks.
This does NOT yet implement:
- proper membership rules for these projects (up next);
- any kind of UI to let users create subprojects.
Test Plan:
- Added unit tests.
- Executed unit tests.
- Browsed Projects (no change in behavior is expected).
Reviewers: chad
Reviewed By: chad
Maniphest Tasks: T10010
Differential Revision: https://secure.phabricator.com/D14861
2015-12-23 14:38:35 -08:00
..
2014-01-06 12:32:20 -08:00
2014-01-06 12:17:23 -08:00
2015-05-22 21:16:39 +10:00
2014-01-09 10:56:34 -08:00
2015-05-22 21:16:39 +10:00
2014-01-09 12:19:54 -08:00
2014-01-09 16:12:11 -08:00
2014-01-14 17:17:18 -08:00
2015-05-22 21:16:39 +10:00
2014-01-15 13:55:18 -08:00
2014-01-15 13:56:16 -08:00
2015-05-22 21:16:39 +10:00
2014-01-15 16:48:44 -08:00
2014-01-17 11:48:53 -08:00
2014-01-26 15:29:22 -08:00
2014-01-26 15:29:22 -08:00
2014-01-30 11:43:24 -08:00
2014-01-30 11:43:24 -08:00
2014-02-03 10:52:15 -08:00
2014-02-03 10:52:15 -08:00
2014-02-01 14:35:42 -08:00
2014-02-01 14:35:42 -08:00
2014-02-03 10:51:31 -08:00
2014-02-03 10:51:31 -08:00
2014-02-06 10:07:29 -08:00
2014-02-06 10:10:43 -08:00
2015-05-22 21:16:39 +10:00
2014-02-06 10:10:43 -08:00
2015-07-06 13:15:47 -07:00
2015-05-22 21:16:39 +10:00
2014-02-10 14:32:14 -08:00
2014-02-10 14:32:14 -08:00
2015-01-03 10:58:20 +11:00
2014-04-24 08:15:24 -07:00
2014-02-11 11:34:15 -08:00
2015-05-22 21:16:39 +10:00
2015-01-03 10:58:20 +11:00
2014-06-22 08:12:11 -07:00
2015-05-22 21:16:39 +10:00
2014-09-14 16:30:46 -07:00
2014-06-24 05:29:54 -07:00
2014-06-24 05:29:54 -07:00
2014-02-18 16:25:16 -08:00
2014-02-18 14:09:36 -08:00
2014-02-18 14:09:36 -08:00
2014-02-18 14:09:36 -08:00
2015-05-22 21:16:39 +10:00
2014-02-23 16:20:38 -08:00
2014-02-25 12:36:14 -08:00
2015-05-22 21:16:39 +10:00
2014-06-22 08:15:14 -07:00
2014-02-28 16:49:22 -08:00
2014-03-05 12:07:26 -08:00
2014-03-05 12:07:26 -08:00
2014-03-12 06:04:45 -07:00
2014-03-18 10:40:31 -07:00
2014-03-18 10:40:31 -07:00
2014-03-17 15:53:07 -07:00
2014-03-25 16:08:40 -07:00
2014-03-25 13:58:14 -07:00
2015-05-22 21:16:39 +10:00
2015-05-22 21:16:39 +10:00
2014-03-25 16:11:28 -07:00
2014-03-26 13:51:06 -07:00
2014-03-26 13:51:06 -07:00
2015-05-22 21:16:39 +10:00
2014-03-26 13:51:06 -07:00
2014-03-26 14:40:47 -07:00
2014-03-29 09:15:09 -07:00
2014-03-30 19:51:46 -07:00
2014-04-03 11:22:38 -07:00
2014-04-10 11:45:10 -07:00
2015-05-22 21:16:39 +10:00
2014-04-17 16:01:06 -07:00
2014-04-20 11:55:18 -07:00
2015-05-22 21:16:39 +10:00
2014-04-24 12:02:56 -07:00
2014-04-27 17:31:11 -07:00
2014-04-28 09:27:11 -07:00
2014-05-01 10:23:02 -07:00
2014-04-30 14:28:20 -07:00
2014-04-30 14:28:55 -07:00
2014-05-02 18:21:51 -07:00
2014-05-01 18:23:31 -07:00
2014-05-09 12:47:21 -07:00
2014-05-17 16:10:54 -07:00
2014-05-15 19:12:40 -07:00
2014-05-12 11:47:22 -07:00
2014-05-15 07:04:34 -07:00
2014-05-19 11:34:23 -07:00
2014-05-16 14:14:06 -07:00
2014-05-17 16:34:13 -07:00
2014-05-17 22:38:56 -07:00
2014-05-19 16:09:31 -07:00
2014-05-20 11:43:45 -07:00
2014-05-22 11:19:03 -07:00
2015-05-22 21:16:39 +10:00
2014-05-23 10:41:24 -07:00
2014-06-03 16:50:27 -07:00
2014-06-03 18:01:22 -07:00
2014-06-15 10:28:16 -07:00
2014-06-15 10:28:16 -07:00
2014-06-18 11:44:52 +10:00
2014-06-17 15:33:08 -07:00
2014-06-25 22:01:58 -07:00
2014-06-25 22:01:58 -07:00
2014-07-01 17:50:28 -07:00
2014-06-29 07:51:03 -07:00
2014-06-29 07:51:03 -07:00
2014-07-02 04:59:35 -07:00
2014-07-02 04:59:35 -07:00
2014-07-04 08:04:28 -07:00
2014-07-04 08:04:28 -07:00
2014-07-04 08:04:28 -07:00
2014-07-04 08:04:28 -07:00
2014-07-04 08:04:28 -07:00
2014-07-05 01:56:02 +10:00
2014-07-05 01:56:02 +10:00
2014-07-04 09:41:27 -07:00
2014-07-31 11:39:49 +10:00
2014-07-17 15:42:30 -07:00
2014-07-17 16:35:54 -07:00
2015-05-22 21:16:39 +10:00
2014-07-12 03:02:06 +10:00
2014-07-12 11:24:35 -07:00
2014-07-23 10:34:08 -07:00
2014-07-23 10:34:08 -07:00
2014-07-23 10:36:12 -07:00
2014-07-23 10:36:25 -07:00
2014-07-23 10:36:25 -07:00
2014-07-23 10:36:25 -07:00
2014-07-23 10:36:25 -07:00
2015-05-22 21:16:39 +10:00
2014-07-24 17:59:43 -07:00
2014-07-24 17:59:43 -07:00
2015-05-22 21:16:39 +10:00
2015-05-22 21:16:39 +10:00
2015-05-22 21:16:39 +10:00
2014-07-23 23:49:22 +10:00
2015-05-22 21:16:39 +10:00
2015-05-22 21:16:39 +10:00
2015-05-22 21:16:39 +10:00
2014-08-01 08:09:15 +10:00
2014-08-06 15:09:09 -07:00
2015-05-22 21:16:39 +10:00
2014-08-12 08:34:43 +10:00
2014-08-08 15:50:36 -07:00
2014-08-08 15:50:36 -07:00
2015-05-22 21:16:39 +10:00
2014-08-11 12:29:46 -07:00
2014-08-11 12:29:46 -07:00
2014-08-12 08:04:38 -07:00
2014-08-12 08:04:38 -07:00
2014-08-16 22:41:03 +10:00
2015-05-22 21:16:39 +10:00
2014-08-20 09:19:57 +10:00
2014-08-21 22:55:24 +10:00
2014-08-22 14:52:36 -07:00
2014-10-06 10:26:48 -07:00
2015-05-22 21:16:39 +10:00
2014-09-11 13:38:58 -07:00
2014-09-11 13:38:58 -07:00
2014-09-11 13:38:58 -07:00
2014-09-12 06:31:11 -07:00
2014-09-12 06:31:11 -07:00
2015-05-22 21:16:39 +10:00
2014-09-18 11:00:50 -07:00
2014-09-19 05:44:29 -07:00
2014-09-19 05:44:29 -07:00
2014-09-19 05:44:29 -07:00
2014-09-19 05:44:29 -07:00
2014-09-19 05:45:36 -07:00
2014-09-19 11:46:20 -07:00
2014-09-19 11:46:20 -07:00
2014-09-19 11:46:44 -07:00
2014-09-19 11:46:44 -07:00
2014-09-28 15:12:41 -07:00
2014-09-28 15:12:41 -07:00
2014-10-01 07:36:47 -07:00
2014-10-01 07:36:47 -07:00
2014-10-01 07:37:01 -07:00
2014-10-01 07:37:01 -07:00
2014-10-01 07:37:14 -07:00
2014-10-01 07:53:35 -07:00
2014-10-01 07:54:33 -07:00
2014-10-01 07:54:33 -07:00
2014-10-01 07:54:33 -07:00
2014-10-01 07:54:33 -07:00
2014-10-01 07:54:33 -07:00
2014-10-01 12:43:20 -07:00
2014-10-01 12:43:58 -07:00
2014-10-02 09:51:20 -07:00
2014-10-02 14:44:22 -07:00
2014-10-06 10:26:48 -07:00
2014-10-06 10:26:48 -07:00
2014-10-06 10:26:48 -07:00
2014-10-06 10:26:48 -07:00
2014-10-06 10:26:48 -07:00
2014-10-06 10:26:48 -07:00
2014-10-06 10:26:48 -07:00
2014-10-06 10:30:06 -07:00
2014-10-06 14:19:08 -07:00
2014-10-07 10:55:16 -07:00
2014-10-07 10:55:16 -07:00
2014-10-07 14:41:59 -07:00
2014-10-08 05:32:42 -07:00
2014-10-08 05:31:48 -07:00
2014-10-07 14:41:59 -07:00
2014-10-07 14:41:59 -07:00
2014-10-07 14:41:59 -07:00
2014-10-07 14:41:41 -07:00
2014-10-07 14:41:41 -07:00
2014-10-08 08:31:24 -07:00
2014-10-08 08:31:24 -07:00
2014-10-08 15:33:25 -07:00
2014-10-10 11:29:42 -07:00
2014-10-13 11:13:50 -07:00
2014-10-13 11:16:27 -07:00
2014-10-13 11:16:44 -07:00
2014-10-17 05:02:14 -07:00
2014-10-17 05:02:14 -07:00
2014-10-17 05:04:24 -07:00
2014-10-17 05:04:02 -07:00
2014-10-17 05:04:02 -07:00
2014-10-17 05:01:57 -07:00
2014-10-17 05:01:57 -07:00
2014-10-27 13:39:36 -07:00
2014-10-27 13:39:36 -07:00
2014-10-30 08:59:21 -07:00
2014-10-30 08:59:21 -07:00
2014-10-30 08:59:21 -07:00
2014-11-05 15:27:16 -08:00
2014-11-05 15:27:16 -08:00
2014-11-05 15:30:00 -08:00
2014-11-06 12:37:22 -08:00
2014-11-07 12:29:24 -08:00
2014-11-07 12:30:00 -08:00
2014-11-07 15:35:28 -08:00
2015-10-12 17:02:58 -07:00
2015-05-22 21:16:39 +10:00
2014-11-07 15:34:44 -08:00
2014-11-07 15:34:44 -08:00
2014-11-07 15:34:44 -08:00
2015-05-22 21:16:39 +10:00
2014-11-07 15:34:44 -08:00
2014-11-07 15:34:44 -08:00
2014-11-07 15:34:44 -08:00
2015-05-22 21:16:39 +10:00
2014-11-18 15:32:23 -08:00
2014-11-19 14:43:59 -08:00
2014-11-19 12:16:07 -08:00
2014-11-20 17:33:30 -08:00
2014-11-24 11:10:35 -08:00
2014-11-24 11:10:35 -08:00
2014-12-10 16:27:30 -08:00
2014-12-10 16:27:30 -08:00
2014-12-12 12:07:11 -08:00
2014-12-15 11:14:23 -08:00
2014-12-17 11:10:27 -08:00
2014-12-18 14:31:36 -08:00
2014-12-18 14:31:36 -08:00
2015-05-22 21:16:39 +10:00
2015-09-23 19:18:44 -07:00
2014-12-23 08:15:51 -08:00
2014-12-23 16:30:05 -08:00
2014-12-31 08:24:57 -08:00
2014-12-31 08:24:57 -08:00
2015-05-22 21:16:39 +10:00
2015-01-03 11:32:14 +11:00
2015-01-06 10:24:30 -08:00
2015-01-14 17:27:45 -08:00
2015-01-19 16:07:26 -08:00
2015-01-16 12:13:31 -08:00
2015-01-16 12:13:31 -08:00
2015-05-22 21:16:39 +10:00
2015-05-22 21:16:39 +10:00
2015-01-27 14:50:20 -08:00
2015-05-22 21:16:39 +10:00
2015-01-30 11:52:50 -08:00
2015-01-30 11:52:50 -08:00
2015-02-01 12:31:46 -08:00
2015-02-06 10:50:36 -08:00
2015-02-05 14:07:35 -08:00
2015-02-09 16:12:36 -08:00
2015-02-09 14:23:49 -08:00
2015-02-11 06:05:53 -08:00
2015-02-12 15:22:56 -08:00
2015-02-12 15:22:56 -08:00
2015-02-19 10:37:17 -08:00
2015-02-24 14:50:37 -08:00
2015-02-24 14:50:37 -08:00
2015-02-24 14:50:37 -08:00
2015-03-13 11:30:02 -07:00
2015-03-13 11:30:24 -07:00
2015-03-13 11:30:24 -07:00
2015-03-17 15:37:09 -07:00
2015-03-17 15:37:09 -07:00
2015-03-17 17:04:44 -07:00
2015-04-11 08:50:50 -07:00
2015-04-20 10:05:44 -07:00
2015-04-20 10:05:44 -07:00
2015-04-27 03:50:45 -07:00
2015-04-27 16:35:55 -07:00
2015-04-28 06:26:48 -07:00
2015-04-28 06:26:48 -07:00
2015-04-29 08:39:39 -07:00
2015-04-28 08:34:26 -07:00
2015-04-29 13:51:09 -07:00
2015-04-30 14:43:48 -07:00
2015-05-01 13:19:43 -07:00
2015-05-01 13:19:43 -07:00
2015-05-01 13:19:43 -07:00
2015-05-01 13:19:43 -07:00
2015-05-01 13:19:43 -07:00
2015-05-01 13:26:07 -07:00
2015-05-22 21:16:39 +10:00
2015-05-04 13:52:22 -07:00
2015-05-03 13:23:07 +10:00
2015-06-26 20:01:28 -07:00
2015-05-03 13:23:07 +10:00
2015-06-27 13:45:51 -07:00
2015-05-18 06:41:19 -07:00
2015-05-22 21:16:39 +10:00
2015-05-07 16:57:49 -07:00
2015-05-13 11:38:51 -07:00
2015-05-14 11:15:44 -07:00
2015-05-14 17:05:58 -07:00
2015-05-14 11:15:22 -07:00
2015-05-15 13:07:45 -07:00
2015-05-16 06:13:27 -07:00
2015-05-16 06:13:27 -07:00
2015-05-19 13:09:28 -07:00
2015-05-26 23:14:47 +10:00
2015-05-27 10:28:38 -07:00
2015-05-27 10:30:08 -07:00
2015-05-27 10:30:08 -07:00
2015-05-27 10:30:08 -07:00
2015-05-28 17:27:25 -07:00
2015-06-01 11:28:38 -07:00
2015-06-01 11:28:38 -07:00
2015-06-03 18:42:33 -07:00
2015-06-03 18:42:35 -07:00
2015-06-04 17:45:24 -07:00
2015-06-17 07:17:14 +10:00
2015-06-17 07:17:14 +10:00
2015-06-17 07:17:14 +10:00
2015-07-23 13:26:40 -07:00
2015-06-09 13:30:45 -07:00
2015-06-10 15:52:49 -07:00
2015-06-10 15:53:04 -07:00
2015-06-10 15:53:51 -07:00
2015-06-10 15:53:51 -07:00
2015-06-11 10:13:47 -07:00
2015-06-11 10:15:49 -07:00
2015-06-11 10:23:56 -07:00
2015-06-19 17:52:28 +10:00
2015-06-21 09:00:00 -07:00
2015-06-21 09:00:00 -07:00
2015-06-21 09:04:21 -07:00
2015-06-21 09:04:21 -07:00
2015-06-21 09:04:21 -07:00
2015-06-25 13:14:20 -07:00
2015-06-25 13:14:20 -07:00
2015-06-25 13:14:20 -07:00
2015-06-22 11:28:33 -07:00
2015-06-22 11:28:54 -07:00
2015-06-23 13:36:16 -07:00
2015-06-23 13:36:16 -07:00
2015-06-23 13:36:16 -07:00
2015-06-23 13:36:16 -07:00
2015-06-22 13:46:26 -07:00
2015-06-22 13:46:26 -07:00
2015-06-22 13:46:26 -07:00
2015-06-22 14:14:21 -07:00
2015-06-22 14:14:21 -07:00
2015-06-22 14:14:21 -07:00
2015-06-24 10:56:46 -07:00
2015-06-27 10:26:24 -07:00
2015-07-06 13:16:26 -07:00
2015-07-06 13:17:14 -07:00
2015-07-06 13:17:33 -07:00
2015-07-06 13:17:50 -07:00
2015-07-14 07:45:49 -07:00
2015-07-07 11:53:17 -07:00
2015-07-08 12:25:38 -07:00
2015-07-08 19:37:28 +10:00
2015-07-08 12:25:48 -07:00
2015-07-08 12:26:00 -07:00
2015-07-08 12:26:57 -07:00
2015-07-22 13:37:20 -07:00
2015-07-15 10:17:52 -07:00
2015-07-23 13:26:40 -07:00
2015-07-22 13:35:34 -07:00
2015-07-22 13:35:34 -07:00
2015-07-22 13:35:34 -07:00
2015-07-24 11:06:27 -07:00
2015-07-24 11:06:27 -07:00
2015-07-24 11:06:27 -07:00
2015-07-24 11:06:27 -07:00
2015-07-24 11:06:27 -07:00
2015-07-24 11:06:27 -07:00
2015-07-24 11:06:27 -07:00
2015-07-23 14:22:56 -07:00
2015-07-23 14:22:56 -07:00
2015-07-23 10:56:18 -07:00
2015-07-24 10:56:08 -07:00
2015-07-24 15:40:55 -07:00
2015-07-25 13:34:43 -07:00
2015-07-25 13:34:43 -07:00
2015-07-25 16:41:41 -07:00
2015-07-25 15:47:07 -07:00
2015-07-25 15:47:07 -07:00
2015-08-01 15:41:08 -07:00
2015-08-01 15:41:08 -07:00
2015-07-27 15:08:01 -07:00
2015-08-03 14:33:25 -07:00
2015-08-03 14:33:25 -07:00
2015-08-03 14:33:25 -07:00
2015-08-03 14:33:25 -07:00
2015-08-03 14:33:25 -07:00
2015-08-03 14:33:26 -07:00
2015-08-03 14:33:26 -07:00
2015-08-03 14:33:27 -07:00
2015-08-03 14:33:28 -07:00
2015-08-04 10:49:15 -07:00
2015-08-04 10:49:15 -07:00
2015-08-04 15:41:09 -07:00
2015-08-04 15:41:09 -07:00
2015-08-04 15:41:09 -07:00
2015-08-05 09:38:14 -07:00
2015-08-05 13:44:55 -07:00
2015-08-05 13:44:55 -07:00
2015-08-08 12:20:01 -07:00
2015-08-08 12:20:01 -07:00
2015-08-08 10:23:33 -07:00
2015-08-08 11:07:42 -07:00
2015-08-08 11:07:42 -07:00
2015-08-08 20:29:37 -07:00
2015-08-08 20:29:37 -07:00
2015-08-14 09:25:02 -07:00
2015-08-14 09:25:02 -07:00
2015-08-15 07:28:56 -07:00
2015-08-18 13:36:05 -07:00
2015-08-18 13:36:05 -07:00
2015-08-24 09:21:56 -07:00
2015-08-24 09:21:56 -07:00
2015-08-24 09:21:56 -07:00
2015-08-24 09:21:56 -07:00
2015-08-29 13:59:33 -07:00
2015-08-29 08:29:23 -07:00
2015-09-04 15:11:25 -07:00
2015-10-31 11:20:59 +00:00
2015-09-10 13:32:31 -07:00
2015-09-21 04:45:25 -07:00
2015-09-23 07:42:08 -07:00
2015-09-24 04:19:27 -07:00
2015-09-24 04:19:27 -07:00
2015-09-24 04:19:27 -07:00
2015-09-23 13:21:41 -07:00
2015-09-24 10:18:17 -07:00
2015-09-24 07:57:05 -07:00
2015-09-28 09:35:14 -07:00
2015-10-01 08:06:23 -07:00
2015-10-01 08:13:43 -07:00
2015-10-02 09:17:43 -07:00
2015-10-02 06:32:08 -07:00
2015-10-10 07:15:25 -07:00
2015-10-12 17:02:35 -07:00
2015-10-13 15:46:12 -07:00
2015-10-26 12:38:21 -07:00
2015-10-26 12:38:21 -07:00
2015-10-24 05:58:44 -07:00
2015-11-04 18:32:18 +00:00
2015-11-10 10:24:40 -08:00
2015-11-10 10:24:40 -08:00
2015-11-06 17:43:46 -08:00
2015-11-06 17:43:46 -08:00
2015-11-08 08:11:47 -08:00
2015-11-08 08:11:47 -08:00
2015-11-09 08:52:58 -08:00
2015-11-09 07:03:32 +11:00
2015-11-10 08:19:38 -08:00
2015-11-09 16:52:34 -08:00
2015-11-14 21:41:28 +11:00
2015-11-14 21:41:28 +11:00
2015-11-11 08:54:45 +11:00
2015-11-21 08:54:22 -08:00
2015-11-21 08:54:22 -08:00
2015-11-17 06:27:13 +11:00
2015-11-17 08:36:50 -08:00
2015-11-28 13:39:08 -08:00
2015-11-30 10:44:54 -08:00
2015-11-30 10:44:54 -08:00
2015-12-03 07:07:29 -08:00
2015-12-07 15:40:31 -08:00
2015-12-10 14:21:08 -08:00
2015-12-10 14:21:08 -08:00
2015-12-15 14:18:56 -08:00
2015-12-19 11:52:26 -08:00
2015-12-19 11:52:26 -08:00
2015-12-19 09:21:36 -08:00
2015-12-19 09:21:36 -08:00
2015-12-19 09:21:36 -08:00
2015-12-19 09:21:36 -08:00
2015-12-19 09:21:36 -08:00
2015-12-19 09:21:36 -08:00
2015-12-19 09:21:36 -08:00
2015-12-19 09:21:36 -08:00
2015-12-19 09:21:36 -08:00
2015-12-19 09:21:36 -08:00
2015-12-19 09:21:36 -08:00
2015-12-21 17:27:14 -08:00
2015-12-22 08:00:33 -08:00
2015-12-22 08:00:33 -08:00
2015-12-23 14:38:35 -08:00
2015-12-23 14:38:35 -08:00
2015-12-23 14:38:35 -08:00