Another fix.
[lhc/web/wiklou.git] / includes / SpecialExport.php
index 26ca7ef..610f627 100644 (file)
@@ -18,8 +18,7 @@
 # http://www.gnu.org/copyleft/gpl.html
 /**
  *
- * @package MediaWiki
- * @subpackage SpecialPage
+ * @addtogroup SpecialPage
  */
 
 /**
@@ -83,16 +82,11 @@ function wfSpecialExport( $page = '' ) {
                
                // Cancel output buffering and gzipping if set
                // This should provide safer streaming for pages with history
-               while( $status = ob_get_status() ) {
-                       ob_end_clean();
-                       if( $status['name'] == 'ob_gzhandler' ) {
-                               header( 'Content-Encoding:' );
-                       }
-               }
+               wfResetOutputBuffers();
                header( "Content-type: application/xml; charset=utf-8" );
                $pages = explode( "\n", $page );
 
-               $db =& wfGetDB( DB_SLAVE );
+               $db = wfGetDB( DB_SLAVE );
                $exporter = new WikiExporter( $db, $history );
                $exporter->list_authors = $list_authors ;
                $exporter->openStream();
@@ -110,7 +104,13 @@ function wfSpecialExport( $page = '' ) {
                                        }
                                }
                        }*/
-                       $exporter->pageByName( $page );
+
+                       #Bug 8824: Only export pages the user can read
+                       $title = Title::newFromText( $page );
+                       if( is_null( $title ) ) continue; #TODO: perhaps output an <error> tag or something.
+                       if( !$title->userCan( 'read' ) ) continue; #TODO: perhaps output an <error> tag or something.
+
+                       $exporter->pageByTitle( $title );
                }
                
                $exporter->closeStream();