From 1b3dea0a644a68ae7f3eafe5452eb2eb994645eb Mon Sep 17 00:00:00 2001 From: Kunal Mehta Date: Thu, 18 Jul 2013 21:14:51 -0700 Subject: [PATCH] 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 --- includes/specials/SpecialLog.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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 -- 2.20.1