mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-10 08:52:39 +01:00
Allow "arc diff --plan-changes" to work with drafts enabled
Summary: See PHI346. Ref T13054. If you have prototypes enabled on the server but use `master` / `stable` on the client and run `arc diff --plan-changes`, the transition is rejected because "Draft -> Changes Planned" isn't currently a legal transition. Allow this transition if not coming from the web UI (to keep it out of the dropdown). Test Plan: - Ran `arc diff --plan-changes` on `master`, got a "Changes Planned" revision instead of a validation error. - Ran `arc diff` without `--plan-changes`, got a draft, verified that "Plan Changes" still doesn't appear in the action dropdown. Maniphest Tasks: T13054 Differential Revision: https://secure.phabricator.com/D19067
This commit is contained in:
parent
6f508a2258
commit
11c9994134
1 changed files with 13 additions and 2 deletions
|
@ -57,8 +57,19 @@ final class DifferentialRevisionPlanChangesTransaction
|
||||||
|
|
||||||
protected function validateAction($object, PhabricatorUser $viewer) {
|
protected function validateAction($object, PhabricatorUser $viewer) {
|
||||||
if ($object->isDraft()) {
|
if ($object->isDraft()) {
|
||||||
throw new Exception(
|
|
||||||
pht('You can not plan changes to a draft revision.'));
|
// See PHI346. Until the "Draft" state fully unprototypes, allow drafts
|
||||||
|
// to be moved to "changes planned" via the API. This preserves the
|
||||||
|
// behavior of "arc diff --plan-changes". We still prevent this
|
||||||
|
// transition from the web UI.
|
||||||
|
// TODO: Remove this once drafts leave prototype.
|
||||||
|
|
||||||
|
$editor = $this->getEditor();
|
||||||
|
$type_web = PhabricatorWebContentSource::SOURCECONST;
|
||||||
|
if ($editor->getContentSource()->getSource() == $type_web) {
|
||||||
|
throw new Exception(
|
||||||
|
pht('You can not plan changes to a draft revision.'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($object->isChangePlanned()) {
|
if ($object->isChangePlanned()) {
|
||||||
|
|
Loading…
Reference in a new issue