Ensure whether user can rollback page in ChangesList
authorMatěj Suchánek <matejsuchanek97@gmail.com>
Sun, 7 May 2017 19:48:53 +0000 (21:48 +0200)
committerMatěj Suchánek <matejsuchanek97@gmail.com>
Thu, 22 Mar 2018 20:09:05 +0000 (21:09 +0100)
This is already done in Special:Contributions.

Bug: T50731
Change-Id: I2a608f32c90ff0c06c92937b5edf0ee000ca8aba

includes/changes/ChangesList.php

index ac029a2..a4d418b 100644 (file)
@@ -625,7 +625,8 @@ class ChangesList extends ContextSource {
                }
        }
 
-       /** Inserts a rollback link
+       /**
+        * Insert a rollback link
         *
         * @param string &$s
         * @param RecentChange &$rc
@@ -634,15 +635,14 @@ class ChangesList extends ContextSource {
                if ( $rc->mAttribs['rc_type'] == RC_EDIT
                        && $rc->mAttribs['rc_this_oldid']
                        && $rc->mAttribs['rc_cur_id']
+                       && $rc->getAttribute( 'page_latest' ) == $rc->mAttribs['rc_this_oldid']
                ) {
-                       $page = $rc->getTitle();
-                       /** Check for rollback and edit permissions, disallow special pages, and only
+                       $title = $rc->getTitle();
+                       /** Check for rollback permissions, disallow special pages, and only
                         * show a link on the top-most revision */
-                       if ( $this->getUser()->isAllowed( 'rollback' )
-                               && $rc->mAttribs['page_latest'] == $rc->mAttribs['rc_this_oldid']
-                       ) {
+                       if ( $title->quickUserCan( 'rollback', $this->getUser() ) ) {
                                $rev = new Revision( [
-                                       'title' => $page,
+                                       'title' => $title,
                                        'id' => $rc->mAttribs['rc_this_oldid'],
                                        'user' => $rc->mAttribs['rc_user'],
                                        'user_text' => $rc->mAttribs['rc_user_text'],