diff --git a/src/aphront/AphrontRequest.php b/src/aphront/AphrontRequest.php index 95534c048d..469e6ba766 100644 --- a/src/aphront/AphrontRequest.php +++ b/src/aphront/AphrontRequest.php @@ -663,7 +663,7 @@ final class AphrontRequest extends Phobject { } public function isContinueRequest() { - return $this->isFormPost() && $this->getStr('__continue__'); + return $this->isFormOrHisecPost() && $this->getStr('__continue__'); } public function isPreviewRequest() { diff --git a/src/aphront/handler/PhabricatorHighSecurityRequestExceptionHandler.php b/src/aphront/handler/PhabricatorHighSecurityRequestExceptionHandler.php index 7f4eddad45..5d1d923d0c 100644 --- a/src/aphront/handler/PhabricatorHighSecurityRequestExceptionHandler.php +++ b/src/aphront/handler/PhabricatorHighSecurityRequestExceptionHandler.php @@ -120,6 +120,13 @@ final class PhabricatorHighSecurityRequestExceptionHandler $dialog->addHiddenInput($key, $value); } + // See T13289. If the user hit a "some transactions have no effect" dialog + // and elected to continue, we want to pass that flag through the MFA + // dialog even though it is not normally a passthrough request parameter. + if ($request->isContinueRequest()) { + $dialog->addHiddenInput(AphrontRequest::TYPE_CONTINUE, 1); + } + return $dialog; } diff --git a/src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php b/src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php index 12fbc2a07e..f2ca9883ca 100644 --- a/src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php +++ b/src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php @@ -2535,7 +2535,7 @@ abstract class PhabricatorApplicationTransactionEditor // If none of the transactions have an effect, the meta-transactions also // have no effect. Add them to the "no effect" list so we get a full set // of errors for everything. - if (!$any_effect) { + if (!$any_effect && !$has_comment) { $no_effect += $meta_xactions; }