diff --git a/src/aphront/AphrontRequest.php b/src/aphront/AphrontRequest.php --- a/src/aphront/AphrontRequest.php +++ b/src/aphront/AphrontRequest.php @@ -663,7 +663,7 @@ } 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 --- a/src/aphront/handler/PhabricatorHighSecurityRequestExceptionHandler.php +++ b/src/aphront/handler/PhabricatorHighSecurityRequestExceptionHandler.php @@ -120,6 +120,13 @@ $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 --- a/src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php +++ b/src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php @@ -2535,7 +2535,7 @@ // 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; }