mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-20 20:40:56 +01:00
When a user accepts a revision, accept for all projects the user has authority over
Summary: Ref T1279. If you accept a revision, also accept on behalf of all the projects you have authority to accept for. Test Plan: - Accepted a revision which I was a reviewer on, saw my own status and an authority project's status change to "Accepted". - Accepted a revision which I was not a reviewer on, saw my own status be added (as "Accepted") and the project's status update. Also, see screenshot. Reviewers: btrahan Reviewed By: btrahan CC: aran, wisutsak.jaisue.7 Maniphest Tasks: T1279 Differential Revision: https://secure.phabricator.com/D7242
This commit is contained in:
parent
3d3d3b6d80
commit
d518f3c9de
1 changed files with 27 additions and 9 deletions
|
@ -102,6 +102,7 @@ final class DifferentialCommentEditor extends PhabricatorEditor {
|
|||
->withIDs(array($this->revision->getID()))
|
||||
->needRelationships(true)
|
||||
->needReviewerStatus(true)
|
||||
->needReviewerAuthority(true)
|
||||
->executeOne();
|
||||
|
||||
$revision = $this->revision;
|
||||
|
@ -150,7 +151,7 @@ final class DifferentialCommentEditor extends PhabricatorEditor {
|
|||
if ($reviewer->getStatus() == $status_added) {
|
||||
DifferentialRevisionEditor::updateReviewerStatus(
|
||||
$revision,
|
||||
$this->getActor(),
|
||||
$actor,
|
||||
$actor_phid,
|
||||
DifferentialReviewerStatus::STATUS_COMMENTED);
|
||||
}
|
||||
|
@ -208,6 +209,7 @@ final class DifferentialCommentEditor extends PhabricatorEditor {
|
|||
if ($actor_is_author && !$allow_self_accept) {
|
||||
throw new Exception('You can not accept your own revision.');
|
||||
}
|
||||
|
||||
if (($revision_status !=
|
||||
ArcanistDifferentialRevisionStatus::NEEDS_REVIEW) &&
|
||||
($revision_status !=
|
||||
|
@ -235,11 +237,27 @@ final class DifferentialCommentEditor extends PhabricatorEditor {
|
|||
$revision
|
||||
->setStatus(ArcanistDifferentialRevisionStatus::ACCEPTED);
|
||||
|
||||
DifferentialRevisionEditor::updateReviewerStatus(
|
||||
$revision,
|
||||
$this->getActor(),
|
||||
$actor_phid,
|
||||
DifferentialReviewerStatus::STATUS_ACCEPTED);
|
||||
$was_reviewer_already = false;
|
||||
foreach ($revision->getReviewerStatus() as $reviewer) {
|
||||
if ($reviewer->hasAuthority($actor)) {
|
||||
DifferentialRevisionEditor::updateReviewerStatus(
|
||||
$revision,
|
||||
$actor,
|
||||
$reviewer->getReviewerPHID(),
|
||||
DifferentialReviewerStatus::STATUS_ACCEPTED);
|
||||
if ($reviewer->getReviewerPHID() == $actor_phid) {
|
||||
$was_reviewer_already = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$was_reviewer_already) {
|
||||
DifferentialRevisionEditor::updateReviewerStatus(
|
||||
$revision,
|
||||
$actor,
|
||||
$actor_phid,
|
||||
DifferentialReviewerStatus::STATUS_ACCEPTED);
|
||||
}
|
||||
break;
|
||||
|
||||
case DifferentialAction::ACTION_REQUEST:
|
||||
|
@ -307,7 +325,7 @@ final class DifferentialCommentEditor extends PhabricatorEditor {
|
|||
|
||||
DifferentialRevisionEditor::updateReviewerStatus(
|
||||
$revision,
|
||||
$this->getActor(),
|
||||
$actor,
|
||||
$actor_phid,
|
||||
DifferentialReviewerStatus::STATUS_REJECTED);
|
||||
|
||||
|
@ -604,7 +622,7 @@ final class DifferentialCommentEditor extends PhabricatorEditor {
|
|||
|
||||
$phids = array($actor_phid);
|
||||
$handles = id(new PhabricatorHandleQuery())
|
||||
->setViewer($this->getActor())
|
||||
->setViewer($actor)
|
||||
->withPHIDs($phids)
|
||||
->execute();
|
||||
$actor_handle = $handles[$actor_phid];
|
||||
|
@ -620,7 +638,7 @@ final class DifferentialCommentEditor extends PhabricatorEditor {
|
|||
$comment,
|
||||
$changesets,
|
||||
$inline_comments))
|
||||
->setActor($this->getActor())
|
||||
->setActor($actor)
|
||||
->setExcludeMailRecipientPHIDs($this->getExcludeMailRecipientPHIDs())
|
||||
->setToPHIDs(
|
||||
array_merge(
|
||||
|
|
Loading…
Reference in a new issue