1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-09-20 09:18:48 +02:00

Don't downgrade accepts on update (fix "sticky accept")

Summary:
Fixes T12496. Sticky accept was accidentally impacted by the "void" changes in D17566.

Instead, don't always downgrade all accepts/rejects: on update, we only want to downgrade accepts.

Test Plan:
  - With sticky accept off, updated an accepted revision: new state is "needs review".
  - With sticky accept on, updated an accepted revision: new state is "accepted" (sticky accept working correctly).
  - Did "reject" + "request review" to make sure that still works, worked fine.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T12496

Differential Revision: https://secure.phabricator.com/D17605
This commit is contained in:
epriestley 2017-04-03 08:35:29 -07:00
parent 163e1ec442
commit 9ebb5f8cda
2 changed files with 15 additions and 5 deletions

View file

@ -339,12 +339,22 @@ final class DifferentialTransactionEditor
}
}
if ($downgrade_accepts || $downgrade_rejects) {
$downgrade = array();
if ($downgrade_accepts) {
$downgrade[] = DifferentialReviewerStatus::STATUS_ACCEPTED;
}
if ($downgrade_accepts) {
$downgrade[] = DifferentialReviewerStatus::STATUS_REJECTED;
}
if ($downgrade) {
$void_type = DifferentialRevisionVoidTransaction::TRANSACTIONTYPE;
$results[] = id(new DifferentialTransaction())
->setTransactionType($void_type)
->setIgnoreOnNoEffect(true)
->setNewValue(true);
->setNewValue($downgrade);
}
$is_commandeer = false;

View file

@ -28,7 +28,7 @@ final class DifferentialRevisionVoidTransaction
AND reviewerStatus IN (%Ls)',
$table_name,
$object->getPHID(),
$this->getVoidableStatuses());
$value);
return ipull($rows, 'reviewerPHID');
}
@ -47,11 +47,11 @@ final class DifferentialRevisionVoidTransaction
'UPDATE %T SET voidedPHID = %s
WHERE revisionPHID = %s
AND voidedPHID IS NULL
AND reviewerStatus IN (%Ls)',
AND reviewerPHID IN (%Ls)',
$table_name,
$this->getActingAsPHID(),
$object->getPHID(),
$this->getVoidableStatuses());
$value);
}
public function shouldHide() {