*List restricted logs if $wgLogRestrictions is set
authorAaron Schulz <aaron@users.mediawiki.org>
Wed, 14 Mar 2007 01:55:18 +0000 (01:55 +0000)
committerAaron Schulz <aaron@users.mediawiki.org>
Wed, 14 Mar 2007 01:55:18 +0000 (01:55 +0000)
includes/SpecialSpecialpages.php

index bb20235..000f298 100644 (file)
@@ -14,10 +14,10 @@ function wfSpecialSpecialpages() {
        $sk = $wgUser->getSkin();
 
        /** Pages available to all */
-       wfSpecialSpecialpages_gen( SpecialPage::getRegularPages(), 'spheading', $sk );
+       wfSpecialSpecialpages_gen( SpecialPage::getRegularPages(), 'spheading', $sk, false );
 
        /** Restricted special pages */
-       wfSpecialSpecialpages_gen( SpecialPage::getRestrictedPages(), 'restrictedpheading', $sk );
+       wfSpecialSpecialpages_gen( SpecialPage::getRestrictedPages(), 'restrictedpheading', $sk, true );
 }
 
 /**
@@ -25,9 +25,10 @@ function wfSpecialSpecialpages() {
  * @param $pages the list of pages
  * @param $heading header to be used
  * @param $sk skin object ???
+ * @param $restricted, restricted pages or not
  */
-function wfSpecialSpecialpages_gen($pages,$heading,$sk) {
-       global $wgOut, $wgSortSpecialPages;
+function wfSpecialSpecialpages_gen($pages,$heading,$sk,$restricted) {
+       global $wgOut, $wgUser, $wgSortSpecialPages, $wgLogRestrictions, $wgLogNames;
 
        if( count( $pages ) == 0 ) {
                # Yeah, that was pointless. Thanks for coming.
@@ -41,6 +42,17 @@ function wfSpecialSpecialpages_gen($pages,$heading,$sk) {
                        $sortedPages[$page->getDescription()] = $page->getTitle();
                }
        }
+       
+       # Add private logs
+       if ( $restricted && isset($wgLogRestrictions) ) {
+               foreach ( $wgLogRestrictions as $type => $restriction ) {
+                       $page = SpecialPage::getTitleFor( 'Log', $type );
+                       if ( $restriction != '' && $wgUser->isAllowed( $restriction ) ) {
+                               $name = wfMsgHtml( $wgLogNames[$type] );
+                               $sortedPages[$name] = $page;
+                       }
+               }
+       }
 
        /** Sort */
        if ( $wgSortSpecialPages ) {