Utilisateur:Copernik : Différence entre versions
Sauter à la navigation
Sauter à la recherche
| Ligne 126 : | Ligne 126 : | ||
<div style="color:#FFFFFF" valign="middle"></div> | <div style="color:#FFFFFF" valign="middle"></div> | ||
|} | |} | ||
| + | |||
| + | |||
| + | <?php | ||
| + | /* NamespacePermissions - MediaWiki extension | ||
| + | * | ||
| + | * provides separate permissions for each action (read,edit,create,move) | ||
| + | * on articles in custom namespaces for fine access management | ||
| + | * | ||
| + | * Author: Petr Andreev | ||
| + | * | ||
| + | * Sample usage: | ||
| + | * | ||
| + | * $wgExtraNamespaces = array(100 => "Foo", 101 => "Foo_Talk"); | ||
| + | * // optional (example): allow registered users to view and edit articles in Foo | ||
| + | * $wgGroupPermissions[ 'user' ][ 'ns100_read' ] = true; | ||
| + | * $wgGroupPermissions[ 'user' ][ 'ns100_edit' ] = true; | ||
| + | * // end of optional | ||
| + | * require('extensions/NamespacePermissions.php'); | ||
| + | * | ||
| + | * Permissions provided: | ||
| + | * # ns{$num}_read | ||
| + | * # ns{$num}_edit | ||
| + | * # ns{$num}_create | ||
| + | * # ns{$num}_move | ||
| + | * where {$num} - namespace number (e.g. ns100_read, ns101_create) | ||
| + | * | ||
| + | * Groups provided: | ||
| + | * # ns{$title}RW - full access to the namespace {$title} | ||
| + | * # ns{$title}RO - read-only access to the namespace {$title} | ||
| + | * e.g. nsFoo_talkRW, nsFooRO | ||
| + | */ | ||
| + | |||
| + | // permissions for autocreated groups should be set now, | ||
| + | // before the User object for current user is instantiated | ||
| + | namespacePermissionsCreateGroups(); | ||
| + | // other stuff should better be done via standard mechanism of running extensions | ||
| + | $wgExtensionFunctions[] = "wfNamespacePermissions"; | ||
| + | |||
| + | // create groups for each custom namespace | ||
| + | function namespacePermissionsCreateGroups() { | ||
| + | global $wgExtraNamespaces, $wgGroupPermissions; | ||
| + | foreach ( $wgExtraNamespaces as $num => $title ) { | ||
| + | $wgGroupPermissions[ "ns{$title}RW" ][ "ns{$num}_edit" ] = true; | ||
| + | $wgGroupPermissions[ "ns{$title}RW" ][ "ns{$num}_read" ] = true; | ||
| + | $wgGroupPermissions[ "ns{$title}RW" ][ "ns{$num}_create" ] = true; | ||
| + | $wgGroupPermissions[ "ns{$title}RW" ][ "ns{$num}_move" ] = true; | ||
| + | $wgGroupPermissions[ "ns{$title}RO" ][ "ns{$num}_read" ] = true; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | function wfNamespacePermissions() { | ||
| + | global $wgHooks; | ||
| + | |||
| + | // use the userCan hook to check permissions | ||
| + | $wgHooks[ 'userCan' ][] = 'namespacePermissionsCheckNamespace'; | ||
| + | } | ||
| + | |||
| + | function namespacePermissionsCheckNamespace( $title, $user, $action, $result ) { | ||
| + | if ( ( $ns = $title->getNamespace() ) >= 100 ) { | ||
| + | if ( ! $user->isAllowed("ns{$ns}_{$action}") ) { | ||
| + | $result = false; | ||
| + | return false; | ||
| + | } | ||
| + | } | ||
| + | return null; | ||
| + | } | ||
| + | ?> | ||
Version du 3 septembre 2006 à 18:37
(Ne vous fiez pas à tout ce qui est marqué, je fais de nombreux tests...)
|
Cet Article est en travaux...
L'article n'est pas terminé, veuillez patienter.
Les dernières modifications apparaitront bientôt.
|
Sommaire
Articles
Créés
- Arbre Généalogique Universel
- Al-Kashi
- Red Tantra
- Galaxie Origine (Portail)
- Opération Paradis Rouge
- Yopik 604
- Galaktiscotheque
- Mllecap
- Opération MARSHAKE
Modifiés
- Oyabun
- Reds T
- Copernik
- Maître Yoda
- Mata Hari
- Chiana
- Galaxie 0
- Accueil (Refonte)
- Galaxie Origine
- Général locius
- Horlbar
- Snake
- Revan82
- Z
- Vladimir Harkonnen
- Khlan
- Thot71
- Calomu
- Wes Trebor
- Gabriel Fore
- Thot
Brouillon
- 1ère Ere Galactique : Histoire Ancienne 0 - 250 ETU
- 2ème Ere Galactique : Histoire Intermédiaire 251 - 750 ETU
- 3ème Ere Galactique : Histoire Contemporaine 751 - 1000 ETU
- Aide:Page Principale
- Projet:Avatars
Portails
Créés
Modifiés
Modèles
Créés
- Modèle:Al-Kashi autres liens
- Modèle:Participant au concours de biographies
- Modèle:Article de Qualité
- Modèle:Galaxie 0 : Origine
- Modèle:Galaxie 1 : Galaxie des Exilés
- Modèle:Galaxie 2 : Espérance
- Modèle:Article en travaux
- Modèle:Galaxie Origine
- Modèle:Tableau Rouge
- Modèle:Tableau Bleu
- Modèle:Liens Accueil
- Modèle:Sommaire Alphabetique
- Modèle:Accueil titre
Modifiés
Cadres
Essais (2)
5 décembre 2025 1 176 2 361 195 Modèle:USER Modèle:PAGES
|
|
<?php
/* NamespacePermissions - MediaWiki extension
*
* provides separate permissions for each action (read,edit,create,move)
* on articles in custom namespaces for fine access management
*
* Author: Petr Andreev
*
* Sample usage:
*
* $wgExtraNamespaces = array(100 => "Foo", 101 => "Foo_Talk");
* // optional (example): allow registered users to view and edit articles in Foo
* $wgGroupPermissions[ 'user' ][ 'ns100_read' ] = true;
* $wgGroupPermissions[ 'user' ][ 'ns100_edit' ] = true;
* // end of optional
* require('extensions/NamespacePermissions.php');
*
* Permissions provided:
* # ns{$num}_read
* # ns{$num}_edit
* # ns{$num}_create
* # ns{$num}_move
* where {$num} - namespace number (e.g. ns100_read, ns101_create)
*
* Groups provided:
* # ns{$title}RW - full access to the namespace {$title}
* # ns{$title}RO - read-only access to the namespace {$title}
* e.g. nsFoo_talkRW, nsFooRO
*/
// permissions for autocreated groups should be set now, // before the User object for current user is instantiated namespacePermissionsCreateGroups(); // other stuff should better be done via standard mechanism of running extensions $wgExtensionFunctions[] = "wfNamespacePermissions";
// create groups for each custom namespace function namespacePermissionsCreateGroups() {
global $wgExtraNamespaces, $wgGroupPermissions;
foreach ( $wgExtraNamespaces as $num => $title ) {
$wgGroupPermissions[ "ns{$title}RW" ][ "ns{$num}_edit" ] = true;
$wgGroupPermissions[ "ns{$title}RW" ][ "ns{$num}_read" ] = true;
$wgGroupPermissions[ "ns{$title}RW" ][ "ns{$num}_create" ] = true;
$wgGroupPermissions[ "ns{$title}RW" ][ "ns{$num}_move" ] = true;
$wgGroupPermissions[ "ns{$title}RO" ][ "ns{$num}_read" ] = true;
}
}
function wfNamespacePermissions() {
global $wgHooks;
// use the userCan hook to check permissions $wgHooks[ 'userCan' ][] = 'namespacePermissionsCheckNamespace';
}
function namespacePermissionsCheckNamespace( $title, $user, $action, $result ) {
if ( ( $ns = $title->getNamespace() ) >= 100 ) {
if ( ! $user->isAllowed("ns{$ns}_{$action}") ) {
$result = false;
return false;
}
}
return null;
} ?>
