Skip to content
  • epriestley's avatar
    Implement child/descendant query rules in Projects · 70f6bf30
    epriestley authored
    Summary:
    Ref T10010. This adds infrastructure for querying projects by type, depth, parent and ancestor.
    
    I needed to revise the "extended policy check" cycle detection rules. When, e.g., querying a grandchild, they incorrectly detected a cycle because both the child and grandchild needed to check the policy of the grandparent.
    
    Instead, simplify it to just do a basic runaway calldepth check. There are many other safety mechanisms to make it so this can't ever occur.
    
    (Cycle detection does have existing test coverage, and those tests still pass, it just takes a little longer to detect the cycle internally.)
    
    There is still no way to create subprojects in the UI.
    
    Test Plan: Added and executed unit tests.
    
    Reviewers: chad
    
    Reviewed By: chad
    
    Maniphest Tasks: T10010
    
    Differential Revision: https://secure.phabricator.com/D14862
    70f6bf30