DifferenceEngine: Use quickUserCan for display of rollback link
authorDaimona Eaytoy <daimona.wiki@gmail.com>
Fri, 12 Apr 2019 09:17:57 +0000 (11:17 +0200)
committerDaimona Eaytoy <daimona.wiki@gmail.com>
Mon, 9 Sep 2019 15:30:44 +0000 (15:30 +0000)
Title::userCan is too expensive for this, as it queries the master DB
just to decide whether a link should be shown.
The DBPerformance warning for this is seen roughly 8000 times per day on
logstash.

Bug: T232258
Change-Id: I33eab493273ed4790645e338c83993043e76e1d7

includes/diff/DifferenceEngine.php

index 7fcda4c..8a5caa2 100644 (file)
@@ -544,7 +544,7 @@ class DifferenceEngine extends ContextSource {
                        if ( $samePage && $this->mNewPage && $permissionManager->quickUserCan(
                                'edit', $user, $this->mNewPage
                        ) ) {
-                               if ( $this->mNewRev->isCurrent() && $permissionManager->userCan(
+                               if ( $this->mNewRev->isCurrent() && $permissionManager->quickUserCan(
                                        'rollback', $user, $this->mNewPage
                                ) ) {
                                        $rollbackLink = Linker::generateRollback( $this->mNewRev, $this->getContext(),