http://www.mediawiki.org/wiki/Special:Code/MediaWiki/100705

Revision: 100705
Author:   yaron
Date:     2011-10-25 16:08:34 +0000 (Tue, 25 Oct 2011)
Log Message:
-----------
Changed "edit schema" tab and page to only be displayed if user can edit the 
category page

Modified Paths:
--------------
    trunk/extensions/PageSchemas/PS_Tabs.php
    trunk/extensions/PageSchemas/specials/PS_EditSchema.php

Modified: trunk/extensions/PageSchemas/PS_Tabs.php
===================================================================
--- trunk/extensions/PageSchemas/PS_Tabs.php    2011-10-25 15:36:06 UTC (rev 
100704)
+++ trunk/extensions/PageSchemas/PS_Tabs.php    2011-10-25 16:08:34 UTC (rev 
100705)
@@ -21,13 +21,15 @@
                $pageSchemaObj = new PSSchema( $category );
                $isPSDefined = $pageSchemaObj->isPSDefined();
 
-               global $wgRequest;
+               global $wgTitle, $wgRequest;
 
-               $content_actions['editschema'] = array(
-                       'text' => ( $isPSDefined ) ? wfMsg( 'editschema' ) : 
wfMsg( 'createschema' ),
-                       'class' => $wgRequest->getVal( 'action' ) == 
'editschema' ? 'selected' : '',
-                       'href' => $title->getLocalURL( 'action=editschema' )
-               );
+               if ( $wgUser->isAllowed( 'edit' ) && $wgTitle->userCan( 'edit' 
) ) {
+                       $content_actions['editschema'] = array(
+                               'text' => ( $isPSDefined ) ? wfMsg( 
'editschema' ) : wfMsg( 'createschema' ),
+                               'class' => $wgRequest->getVal( 'action' ) == 
'editschema' ? 'selected' : '',
+                               'href' => $title->getLocalURL( 
'action=editschema' )
+                       );
+               }
 
                if ( $isPSDefined && $wgUser->isAllowed( 'generatepages' ) ) {
                        $content_actions['generatepages'] = array(

Modified: trunk/extensions/PageSchemas/specials/PS_EditSchema.php
===================================================================
--- trunk/extensions/PageSchemas/specials/PS_EditSchema.php     2011-10-25 
15:36:06 UTC (rev 100704)
+++ trunk/extensions/PageSchemas/specials/PS_EditSchema.php     2011-10-25 
16:08:34 UTC (rev 100705)
@@ -8,7 +8,7 @@
 
 class PSEditSchema extends IncludableSpecialPage {
        function __construct() {
-               parent::__construct( 'EditSchema' );
+               parent::__construct( 'EditSchema', 'edit' );
        }
 
        /**
@@ -457,9 +457,16 @@
        }
 
        function execute( $category ) {
-               global $wgRequest, $wgOut, $wgUser;
-               global $wgSkin;
+               global $wgRequest, $wgOut, $wgUser, $wgTitle;
 
+               // Only display this page if user is allowed to edit the
+               // category page.
+               if ( !$wgUser->isAllowed( 'edit' ) || !$wgTitle->userCan( 
'edit' ) ) {
+                       $wgOut->permissionRequired( 'edit' );
+                       return;
+               }
+
+
                $this->setHeaders();
                $text = '<p>' . wfMsg( 'ps-page-desc-edit-schema' ) . '</p>';
                PageSchemas::addJavascriptAndCSS();


_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to