Revert "Clean up ApiEditPage content handler undo logic"
authorAnomie <bjorsch@wikimedia.org>
Mon, 19 Aug 2019 14:49:30 +0000 (14:49 +0000)
committerAnomie <bjorsch@wikimedia.org>
Mon, 19 Aug 2019 14:49:42 +0000 (14:49 +0000)
This reverts commit 01564dcbf76cd279c88320f96f0844cfadf4f7c9.

Reason for revert: I find the empty case far clearer as to intention than this change, and I doubt this is such a hot path that optimization should take precedence over clarity. If we really want to get rid of the empty case, I'd have structured it somewhat clearly as

 if (
     // always allow undo via api, T230702
     !( $params['undo'] > 0 ) &&
     // [something else here to explain this clause]
     $contentHandler->supportsDirectApiEditing() === false
 ) {

But even that is IMO less clear. At the very least this seems to deserve more discussion.

Bug: T230702
Change-Id: Icc16250faad31abf7308c4af9be2e7658540346c

includes/api/ApiEditPage.php

index 554df61..3f63a00 100644 (file)
@@ -92,8 +92,9 @@ class ApiEditPage extends ApiBase {
                $name = $titleObj->getPrefixedDBkey();
                $model = $contentHandler->getModelID();
 
-               // always allow undo via api, T230702
-               if ( !( $params['undo'] > 0 ) && $contentHandler->supportsDirectApiEditing() === false ) {
+               if ( $params['undo'] > 0 ) {
+                       // allow undo via api
+               } elseif ( $contentHandler->supportsDirectApiEditing() === false ) {
                        $this->dieWithError( [ 'apierror-no-direct-editing', $model, $name ] );
                }