From: Kunal Mehta Date: Fri, 19 Jul 2013 04:14:51 +0000 (-0700) Subject: If a user does not have permission to view a log type, throw a PermissionsError X-Git-Tag: 1.31.0-rc.0~19124^2 X-Git-Url: http://git.cyclocoop.org/%7D%7Cconcat%7B?a=commitdiff_plain;h=1b3dea0a644a68ae7f3eafe5452eb2eb994645eb;p=lhc%2Fweb%2Fwiklou.git If a user does not have permission to view a log type, throw a PermissionsError Currently if you view a private log like [[Special:Log/suppress]] and do not have the right permission, you just see [[Special:Log]]. Now it will throw a PermissionsError which states the user does not have the right permission. Bug: 17881 Change-Id: I15486a1cc227a4900ab7cd38d7f0cc7eb685195a --- diff --git a/includes/specials/SpecialLog.php b/includes/specials/SpecialLog.php index 5d55a2803c..2ffdd89d2a 100644 --- a/includes/specials/SpecialLog.php +++ b/includes/specials/SpecialLog.php @@ -74,14 +74,14 @@ class SpecialLog extends SpecialPage { $opts->setValue( 'month', '' ); } - // Reset the log type to default (nothing) if it's invalid or if the - // user does not possess the right to view it + // If the user doesn't have the right permission to view the specific + // log type, throw a PermissionsError + // If the log type is invalid, just show all public logs $type = $opts->getValue( 'type' ); - if ( !LogPage::isLogType( $type ) - || ( isset( $wgLogRestrictions[$type] ) - && !$this->getUser()->isAllowed( $wgLogRestrictions[$type] ) ) - ) { + if ( !LogPage::isLogType( $type ) ) { $opts->setValue( 'type', '' ); + } elseif ( isset( $wgLogRestrictions[$type] ) && !$this->getUser()->isAllowed( $wgLogRestrictions[$type] ) ) { + throw new PermissionsError( $wgLogRestrictions[$type] ); } # Handle type-specific inputs