HomePhabricator

Give Harbormaster Build Plans real policies

Description

Give Harbormaster Build Plans real policies

Summary:
Ref T9614. Currently, a lot of Build Plan behavior is covered by a global "can manage" policy.

One install in particular is experiencing difficulty with warring factions within engineering aborting one another's builds.

As a first step to remedy this, and also generally make Harbormaster more flexible and bring it in line with other applications in terms of policy power:

  • Give Build Plans normal view/edit policies.
  • Require "Can Edit" to run a plan manually.

Having "Can View" on plans may be a little weird in some cases (the status of a Buildable might be bad because of a build you can't see) but we can cross that bridge when we come to it.

Next change here will require "Can Edit" to abort a build. This will reasonably allow installs to reserve pause/abort for administrators/adults. (I might let anyone restart a plan, though?)

Test Plan:

  • Created a new build plan.
  • Verified defaults were inherited from application defaults (swapped them around, too).
  • Saved build plan.
  • Edited policies.
  • Verified autoplans get the right policies.
  • Verified old plans got migrated properly.
  • Tried to run a plan I couldn't edit (denied).
  • Ran a plan from CLI with bin/harbormaster.
  • Tried to create a plan with an unprivileged user.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T9614

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