Followup r95753 per CR: prevent extensions from making isMovable() return true for...
[lhc/web/wiklou.git] / includes / LogEventsList.php
index d759017..a18d849 100644 (file)
@@ -169,8 +169,8 @@ class LogEventsList {
                        $hideVal = 1 - intval($val);
                        $query[$queryKey] = $hideVal;
 
-                       $link = $this->skin->link(
-                               $this->out->getTitle(),
+                       $link = Linker::link(
+                               $this->getDisplayTitle(),
                                $messages[$hideVal],
                                array(),
                                $query,
@@ -200,6 +200,16 @@ class LogEventsList {
                return $this->mDefaultQuery;
        }
 
+       /**
+        * Get the Title object of the page the links should point to.
+        * This is NOT the Title of the page the entries should be restricted to.
+        *
+        * @return Title object
+        */
+       public function getDisplayTitle() {
+               return $this->out->getTitle();
+       }
+
        /**
         * @param $queryTypes Array
         * @return String: Formatted HTML
@@ -342,10 +352,10 @@ class LogEventsList {
                        $userLinks = '<span class="history-deleted">' .
                                wfMsgHtml( 'rev-deleted-user' ) . '</span>';
                } else {
-                       $userLinks = $this->skin->userLink( $row->log_user, $row->user_name );
+                       $userLinks = Linker::userLink( $row->log_user, $row->user_name );
                        // Talk|Contribs links...
                        if( !( $this->flags & self::NO_EXTRA_USER_LINKS ) ) {
-                               $userLinks .= $this->skin->userToolLinks(
+                               $userLinks .= Linker::userToolLinks(
                                        $row->log_user, $row->user_name, true, 0, $row->user_editcount );
                        }
                }
@@ -368,8 +378,9 @@ class LogEventsList {
                        $comment = '<span class="history-deleted">' .
                                wfMsgHtml( 'rev-deleted-comment' ) . '</span>';
                } else {
-                       $comment = wfUILang()->getDirMark() .
-                               $this->skin->commentBlock( $row->log_comment );
+                       global $wgLang;
+                       $comment = $wgLang->getDirMark() .
+                               Linker::commentBlock( $row->log_comment );
                }
                return $comment;
        }
@@ -394,7 +405,7 @@ class LogEventsList {
                if( self::typeAction( $row, 'move', 'move', 'move' ) && !empty( $paramArray[0] ) ) {
                        $destTitle = Title::newFromText( $paramArray[0] );
                        if( $destTitle ) {
-                               $revert = '(' . $this->skin->link(
+                               $revert = '(' . Linker::link(
                                        SpecialPage::getTitleFor( 'Movepage' ),
                                        $this->message['revertmove'],
                                        array(),
@@ -414,7 +425,7 @@ class LogEventsList {
                        } else {
                                $viewdeleted = $this->message['undeletelink'];
                        }
-                       $revert = '(' . $this->skin->link(
+                       $revert = '(' . Linker::link(
                                SpecialPage::getTitleFor( 'Undelete' ),
                                $viewdeleted,
                                array(),
@@ -424,7 +435,7 @@ class LogEventsList {
                // Show unblock/change block link
                } elseif( self::typeAction( $row, array( 'block', 'suppress' ), array( 'block', 'reblock' ), 'block' ) ) {
                        $revert = '(' .
-                               $this->skin->link(
+                               Linker::link(
                                        SpecialPage::getTitleFor( 'Unblock', $row->log_title ),
                                        $this->message['unblocklink'],
                                        array(),
@@ -432,7 +443,7 @@ class LogEventsList {
                                        'known'
                                ) .
                                $this->message['pipe-separator'] .
-                               $this->skin->link(
+                               Linker::link(
                                        SpecialPage::getTitleFor( 'Block', $row->log_title ),
                                        $this->message['change-blocklink'],
                                        array(),
@@ -443,7 +454,7 @@ class LogEventsList {
                // Show change protection link
                } elseif( self::typeAction( $row, 'protect', array( 'modify', 'protect', 'unprotect' ) ) ) {
                        $revert .= ' (' .
-                               $this->skin->link( $title,
+                               Linker::link( $title,
                                        $this->message['hist'],
                                        array(),
                                        array(
@@ -453,7 +464,7 @@ class LogEventsList {
                                );
                        if( $wgUser->isAllowed( 'protect' ) ) {
                                $revert .= $this->message['pipe-separator'] .
-                                       $this->skin->link( $title,
+                                       Linker::link( $title,
                                                $this->message['protect_change'],
                                                array(),
                                                array( 'action' => 'protect' ),
@@ -462,7 +473,7 @@ class LogEventsList {
                        $revert .= ')';
                // Show unmerge link
                } elseif( self::typeAction( $row, 'merge', 'merge', 'mergehistory' ) ) {
-                       $revert = '(' . $this->skin->link(
+                       $revert = '(' . Linker::link(
                                SpecialPage::getTitleFor( 'MergeHistory' ),
                                $this->message['revertmerge'],
                                array(),
@@ -484,7 +495,7 @@ class LogEventsList {
                                // $paramArray[1] is a CSV of the IDs
                                $query = $paramArray[0];
                                // Link to each hidden object ID, $paramArray[1] is the url param
-                               $revert = '(' . $this->skin->link(
+                               $revert = '(' . Linker::link(
                                        $revdel,
                                        $this->message['revdel-restore'],
                                        array(),
@@ -499,10 +510,10 @@ class LogEventsList {
                // Self-created users
                } elseif( self::typeAction( $row, 'newusers', 'create2' ) ) {
                        if( isset( $paramArray[0] ) ) {
-                               $revert = $this->skin->userToolLinks( $paramArray[0], $title->getDBkey(), true );
+                               $revert = Linker::userToolLinks( $paramArray[0], $title->getDBkey(), true );
                        } else {
                                # Fall back to a blue contributions link
-                               $revert = $this->skin->userToolLinks( 1, $title->getDBkey() );
+                               $revert = Linker::userToolLinks( 1, $title->getDBkey() );
                        }
                        if( wfTimestamp( TS_MW, $row->log_timestamp ) < '20080129000000' ) {
                                # Suppress $comment from old entries (before 2008-01-29),
@@ -532,12 +543,12 @@ class LogEventsList {
                }
                $del = '';
                // Don't show useless link to people who cannot hide revisions
-               if( $wgUser->isAllowed( 'deletedhistory' ) ) {
+               if( $wgUser->isAllowed( 'deletedhistory' ) && !$wgUser->isBlocked() ) {
                        if( $row->log_deleted || $wgUser->isAllowed( 'deleterevision' ) ) {
                                $canHide = $wgUser->isAllowed( 'deleterevision' );
                                // If event was hidden from sysops
                                if( !self::userCan( $row, LogPage::DELETED_RESTRICTED ) ) {
-                                       $del = $this->skin->revDeleteLinkDisabled( $canHide );
+                                       $del = Linker::revDeleteLinkDisabled( $canHide );
                                } else {
                                        $target = SpecialPage::getTitleFor( 'Log', $row->log_type );
                                        $query = array(
@@ -545,7 +556,7 @@ class LogEventsList {
                                                'type'   => 'logging',
                                                'ids'    => $row->log_id,
                                        );
-                                       $del = $this->skin->revDeleteLink( $query,
+                                       $del = Linker::revDeleteLink( $query,
                                                self::isDeleted( $row, LogPage::DELETED_RESTRICTED ), $canHide );
                                }
                        }
@@ -705,7 +716,7 @@ class LogEventsList {
                        # If there is exactly one log type, we can link to Special:Log?type=foo
                        if ( count( $types ) == 1 )
                                $urlParam['type'] = $types[0];
-                       $s .= $wgUser->getSkin()->link(
+                       $s .= Linker::link(
                                SpecialPage::getTitleFor( 'Log' ),
                                wfMsgHtml( 'log-fulllog' ),
                                array(),
@@ -800,6 +811,10 @@ class LogPager extends ReverseChronologicalPager {
                return $query;
        }
 
+       function getTitle() {
+               return $this->mLogEventsList->getDisplayTitle();
+       }
+
        // Call ONLY after calling $this->limitType() already!
        public function getFilterParams() {
                global $wgFilterLogTypes, $wgUser, $wgRequest;
@@ -876,9 +891,9 @@ class LogPager extends ReverseChronologicalPager {
                        global $wgUser;
                        $this->mConds['log_user'] = $userid;
                        // Paranoia: avoid brute force searches (bug 17342)
-                       if( !$wgUser->isAllowed( 'deletedhistory' ) ) {
+                       if( !$wgUser->isAllowed( 'deletedhistory' ) || $wgUser->isBlocked() ) {
                                $this->mConds[] = $this->mDb->bitAnd('log_deleted', LogPage::DELETED_USER) . ' = 0';
-                       } elseif( !$wgUser->isAllowed( 'suppressrevision' ) ) {
+                       } elseif( !$wgUser->isAllowed( 'suppressrevision' ) || $wgUser->isBlocked() ) {
                                $this->mConds[] = $this->mDb->bitAnd('log_deleted', LogPage::SUPPRESSED_USER) .
                                        ' != ' . LogPage::SUPPRESSED_USER;
                        }
@@ -925,9 +940,9 @@ class LogPager extends ReverseChronologicalPager {
                        $this->mConds['log_title'] = $title->getDBkey();
                }
                // Paranoia: avoid brute force searches (bug 17342)
-               if( !$wgUser->isAllowed( 'deletedhistory' ) ) {
+               if( !$wgUser->isAllowed( 'deletedhistory' ) || $wgUser->isBlocked() ) {
                        $this->mConds[] = $db->bitAnd('log_deleted', LogPage::DELETED_ACTION) . ' = 0';
-               } elseif( !$wgUser->isAllowed( 'suppressrevision' ) ) {
+               } elseif( !$wgUser->isAllowed( 'suppressrevision' ) || $wgUser->isBlocked() ) {
                        $this->mConds[] = $db->bitAnd('log_deleted', LogPage::SUPPRESSED_ACTION) .
                                ' != ' . LogPage::SUPPRESSED_ACTION;
                }