http://www.mediawiki.org/wiki/Special:Code/MediaWiki/95764
Revision: 95764
Author: catrope
Date: 2011-08-30 12:27:50 +0000 (Tue, 30 Aug 2011)
Log Message:
-----------
RL2: Create the Gadget definition: namespace, and restrict editing, deleting
and creating in it. Also make in immovable and rename the gadgets-manager-*
rights
Modified Paths:
--------------
branches/RL2/extensions/Gadgets/GadgetHooks.php
branches/RL2/extensions/Gadgets/Gadgets.i18n.php
branches/RL2/extensions/Gadgets/Gadgets.namespaces.php
branches/RL2/extensions/Gadgets/Gadgets.php
Modified: branches/RL2/extensions/Gadgets/GadgetHooks.php
===================================================================
--- branches/RL2/extensions/Gadgets/GadgetHooks.php 2011-08-30 12:24:12 UTC
(rev 95763)
+++ branches/RL2/extensions/Gadgets/GadgetHooks.php 2011-08-30 12:27:50 UTC
(rev 95764)
@@ -156,6 +156,8 @@
public static function canonicalNamespaces( &$list ) {
$list[NS_GADGET] = 'Gadget';
$list[NS_GADGET_TALK] = 'Gadget_talk';
+ $list[NS_GADGET_DEFINITION] = 'Gadget_definition';
+ $list[NS_GADGET_DEFINITION_TALK] = 'Gadget_definition_talk';
return true;
}
@@ -165,4 +167,25 @@
}
return true;
}
+
+ public static function titleIsMovable( $title, &$result ) {
+ if ( $title->getNamespace() == NS_GADGET_DEFINITION ) {
+ $result = false;
+ }
+ return true;
+ }
+
+ public static function getUserPermissionsErrors( $title, $user,
$action, &$result ) {
+ if ( $title->getNamespace() == NS_GADGET_DEFINITION ) {
+ // Enforce restrictions on the Gadget_definition
namespace
+ if ( $action == 'create' && !$user->isAllowed(
'gadgets-definition-create' ) ) {
+ $result[] = array( 'gadgets-cant-create' );
+ return false;
+ } elseif ( $action == 'delete' && !$user->isAllowed(
'gadgets-definition-delete' ) ) {
+ $result[] = array( 'gadgets-cant-delete' );
+ return false;
+ }
+ }
+ return true;
+ }
}
Modified: branches/RL2/extensions/Gadgets/Gadgets.i18n.php
===================================================================
--- branches/RL2/extensions/Gadgets/Gadgets.i18n.php 2011-08-30 12:24:12 UTC
(rev 95763)
+++ branches/RL2/extensions/Gadgets/Gadgets.i18n.php 2011-08-30 12:27:50 UTC
(rev 95764)
@@ -64,6 +64,10 @@
// TODO clean up inconsistencies between gadgetmanager- and
gadgets-manager- etc
'gadgets-manager-create-exists' => 'This gadget cannot be created
because there is an existing gadget with the name $1',
+ # permission stuff
+ 'gadgets-cant-create' => 'You do not have the right to create new
Gadgets.',
+ 'gadgets-cant-delete' => 'You do not have the right to delete Gadgets.',
+
# logging stuff
'gadgets-gadgetmanlog-page' => 'Gadget manager log',
'gadgets-gadgetmanlog-text' => 'This is a log of changes made to
gadgets using the [[Special:GadgetManager|gadget manager]].',
@@ -73,10 +77,9 @@
#rights
'right-gadgets-edit' => 'Edit pages in the Gadget: namespace',
- 'right-gadgets-manager-create' => 'Create new gadgets',
- 'right-gadgets-manager-delete' => 'Permanently delete gadgets',
- 'right-gadgets-manager-view' => 'View gadget properties',
- 'right-gadgets-manager-modify' => 'Modify gadget properties',
+ 'right-gadgets-definition-create' => 'Create new gadgets',
+ 'right-gadgets-definition-delete' => 'Delete gadgets',
+ 'right-gadgets-definition-edit' => 'Modify gadget properties',
);
/** Message documentation (Message documentation)
Modified: branches/RL2/extensions/Gadgets/Gadgets.namespaces.php
===================================================================
--- branches/RL2/extensions/Gadgets/Gadgets.namespaces.php 2011-08-30
12:24:12 UTC (rev 95763)
+++ branches/RL2/extensions/Gadgets/Gadgets.namespaces.php 2011-08-30
12:27:50 UTC (rev 95764)
@@ -5,9 +5,13 @@
if ( !defined( 'NS_GADGET' ) ) {
define( 'NS_GADGET', 2300 );
define( 'NS_GADGET_TALK', 2301 );
+ define( 'NS_GADGET_DEFINITION', 2302 );
+ define( 'NS_GADGET_DEFINITION_TALK', 2303 );
}
$namespaceNames['en'] = array(
NS_GADGET => 'Gadget',
NS_GADGET_TALK => 'Gadget_talk',
+ NS_GADGET_DEFINITION => 'Gadget_definition',
+ NS_GADGET_DEFINITION_TALK => 'Gadget_definition_talk',
);
Modified: branches/RL2/extensions/Gadgets/Gadgets.php
===================================================================
--- branches/RL2/extensions/Gadgets/Gadgets.php 2011-08-30 12:24:12 UTC (rev
95763)
+++ branches/RL2/extensions/Gadgets/Gadgets.php 2011-08-30 12:27:50 UTC (rev
95764)
@@ -75,14 +75,16 @@
define( 'NS_GADGET', 2300 );
define( 'NS_GADGET_TALK', 2301 );
+define( 'NS_GADGET_DEFINITION', 2302 );
+define( 'NS_GADGET_DEFINITION_TALK', 2303 );
$wgNamespaceProtection[NS_GADGET][] = 'gadgets-edit';
+$wgNamespaceProtection[NS_GADGET_DEFINITION][] = 'gadgets-definition-edit';
$wgAvailableRights = array_merge( $wgAvailableRights, array(
'gadgets-edit',
- 'gadgets-manager-view',
- 'gadgets-manager-create',
- 'gadgets-manager-modify',
- 'gadgets-manager-delete'
+ 'gadgets-definition-create',
+ 'gadgets-definition-edit',
+ 'gadgets-definition-delete'
) );
$wgHooks['ArticleSaveComplete'][] =
'GadgetHooks::articleSaveComplete';
@@ -92,6 +94,8 @@
$wgHooks['LoadExtensionSchemaUpdates'][] =
'GadgetHooks::loadExtensionSchemaUpdates';
$wgHooks['ResourceLoaderRegisterModules'][] = 'GadgetHooks::registerModules';
$wgHooks['TitleIsCssOrJsPage'][] =
'GadgetHooks::titleIsCssOrJsPage';
+$wgHooks['TitleIsMovable'][] = 'GadgetHooks::titleIsMovable';
+$wgHooks['getUserPermissionsErrors'][] =
'GadgetHooks::getUserPermissionsErrors';
//$wgHooks['UnitTestsList'][] = 'GadgetHooks::unitTestsList';
// FIXME: broken
$dir = dirname(__FILE__) . '/';
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs