API: Requesting a token you aren't allowed to request no longer dies with an error...
[lhc/web/wiklou.git] / includes / LogEventsList.php
index a2332c4..253fb4e 100644 (file)
@@ -232,7 +232,7 @@ class LogEventsList {
                                $revert = '(' . $this->skin->makeKnownLinkObj( SpecialPage::getTitleFor( 'Undelete' ),
                                        $this->message['undeletelink'], 'target='. urlencode( $title->getPrefixedDBkey() ) ) . ')';
                        // Show unblock link
-                       } else if( self::typeAction($row,'block','block') && $wgUser->isAllowed( 'block' ) ) {
+                       } else if( self::typeAction($row,array('block','suppress'),'block') && $wgUser->isAllowed( 'block' ) ) {
                                $revert = '(' .  $this->skin->makeKnownLinkObj( SpecialPage::getTitleFor( 'Ipblocklist' ),
                                        $this->message['unblocklink'],
                                        'action=unblock&ip=' . urlencode( $row->log_title ) ) . ')';
@@ -250,38 +250,28 @@ class LogEventsList {
                                if( count($paramArray) == 2 ) {
                                        $revdel = SpecialPage::getTitleFor( 'Revisiondelete' );
                                        // Different revision types use different URL params...
-                                       $subtype = isset($paramArray[2]) ? $paramArray[1] : '';
-                                       // Link to each hidden object ID, $paramArray[1] is the url param. List if several...
-                                       $Ids = explode( ',', $paramArray[2] );
-                                       if( count($Ids) == 1 ) {
-                                               $revert = $this->skin->makeKnownLinkObj( $revdel, $this->message['revdel-restore'],
-                                               wfArrayToCGI( array('target' => $title->getPrefixedDBkey(), $paramArray[1] => $Ids[0] ) ) );
-                                       } else {
-                                               $revert .= $this->message['revdel-restore'].':';
-                                               foreach( $Ids as $n => $id ) {
-                                                       $revert .= ' '.$this->skin->makeKnownLinkObj( $revdel, '#'.($n+1),
-                                                               wfArrayToCGI( array('target' => $title->getPrefixedDBkey(), $paramArray[1] => $id ) ) );
-                                               }
+                                       $key = $paramArray[0];
+                                       // Link to each hidden object ID, $paramArray[1] is the url param
+                                       $Ids = explode( ',', $paramArray[1] );
+                                       $revParams = '';
+                                       foreach( $Ids as $n => $id ) {
+                                               $revParams .= '&' . urlencode($key) . '[]=' . urlencode($id);
                                        }
-                                       $revert = "($revert)";
+                                       $revert = '(' . $this->skin->makeKnownLinkObj( $revdel, $this->message['revdel-restore'], 
+                                               'target=' . $title->getPrefixedUrl() . $revParams ) . ')';
                                }
                        // Hidden log items, give review link
                        } else if( self::typeAction($row,array('delete','suppress'),'event') && $wgUser->isAllowed( 'deleterevision' ) ) {
                                if( count($paramArray) == 1 ) {
                                        $revdel = SpecialPage::getTitleFor( 'Revisiondelete' );
-                                       $revert .= $this->message['revdel-restore'];
                                        $Ids = explode( ',', $paramArray[0] );
-                                       // Link to each hidden object ID, $paramArray[1] is the url param. List if several...
-                                       if( count($Ids) == 1 ) {
-                                               $revert = $this->skin->makeKnownLinkObj( $revdel, $this->message['revdel-restore'],
-                                                       wfArrayToCGI( array('target' => $title->getPrefixedDBkey(),'logid' => $Ids[0] ) ) );
-                                       } else {
-                                               foreach( $Ids as $n => $id ) {
-                                                       $revert .= $this->skin->makeKnownLinkObj( $revdel, '#'.($n+1),
-                                                               wfArrayToCGI( array('target' => $title->getPrefixedDBkey(),'logid' => $id ) ) );
-                                               }
+                                       // Link to each hidden object ID, $paramArray[1] is the url param
+                                       $logParams = '';
+                                       foreach( $Ids as $n => $id ) {
+                                               $logParams .= '&logid[]=' . intval($id);
                                        }
-                                       $revert = "($revert)";
+                                       $revert = '(' . $this->skin->makeKnownLinkObj( $revdel, $this->message['revdel-restore'], 
+                                               'target=' . $title->getPrefixedUrl() . $logParams ) . ')';
                                }
                        } else {
                                wfRunHooks( 'LogLine', array( $row->log_type, $row->log_action, $title, $paramArray,
@@ -305,11 +295,6 @@ class LogEventsList {
         * @return string
         */
        private function showhideLinks( $row ) {
-               global $wgAllowLogDeletion;
-
-               if( !$wgAllowLogDeletion )
-                       return "";
-
                $revdel = SpecialPage::getTitleFor( 'Revisiondelete' );
                // If event was hidden from sysops
                if( !self::userCan( $row, LogPage::DELETED_RESTRICTED ) ) {
@@ -421,7 +406,7 @@ class LogEventsList {
 }
 
 /**
- * @addtogroup Pager
+ * @ingroup Pager
  */
 class LogPager extends ReverseChronologicalPager {
        private $type = '', $user = '', $title = '', $pattern = '', $year = '', $month = '';
@@ -572,9 +557,6 @@ class LogPager extends ReverseChronologicalPager {
 
        function getQueryInfo() {
                $this->mConds[] = 'user_id = log_user';
-               # Hack this until live
-               global $wgAllowLogDeletion;
-               $log_id = $wgAllowLogDeletion ? 'log_id' : '0 AS log_id';
                # Don't use the wrong logging index
                if( $this->title || $this->pattern || $this->user ) {
                        $index = array( 'USE INDEX' => array( 'logging' => array('page_time','user_time') ) );
@@ -586,7 +568,7 @@ class LogPager extends ReverseChronologicalPager {
                return array(
                        'tables' => array( 'logging', 'user' ),
                        'fields' => array( 'log_type', 'log_action', 'log_user', 'log_namespace', 'log_title', 'log_params',
-                               'log_comment', $log_id, 'log_deleted', 'log_timestamp', 'user_name', 'user_editcount' ),
+                               'log_comment', 'log_id', 'log_deleted', 'log_timestamp', 'user_name', 'user_editcount' ),
                        'conds' => $this->mConds,
                        'options' => $index
                );
@@ -644,7 +626,7 @@ class LogPager extends ReverseChronologicalPager {
 
 /**
  * @Deprecated
- * @addtogroup SpecialPage
+ * @ingroup SpecialPage
  */
 class LogReader {
        var $pager;
@@ -682,7 +664,7 @@ class LogReader {
 
 /**
  * @Deprecated
- * @addtogroup SpecialPage
+ * @ingroup SpecialPage
  */
 class LogViewer {
        const NO_ACTION_LINK = 1;