2013-03-08 4 views
0

J'utilise un wiki pour la documentation. Après avoir ajouté beaucoup de pages avec Namespace par exemple INTERN:My Page ou Public:My Page et que vous voulez restreindre l'accès en lecture pour cet espace de noms existend.wikimedia Lockdown avec des espaces de noms existants

que j'ai trouvé l'extension « Lockdown » et peut l'utiliser pour les nouveaux, coutume, espaces de noms:

define ("NS_CUSTOM", 110); 
$wgExtraNamespaces[NS_CUSTOM] = "customNamespace"; 

$wgNamespacePermissionLockdown[NS_CUSTOM]['*'] = array('sysop'); 

Si je tente le même code pour mes espaces de noms existants les anciennes pages ne sont pas accessable - il semble que les pages n'existent pas.

Existe-t-il un moyen de restreindre l'accès aux espaces de noms existants? Puis-je trouver l'ID de l'espace de nom quelque part dans la base de données?

+0

Utilisez-vous toutes ces trois lignes , lorsque vous voulez verrouiller NS_PROJECT par exemple? – cyroxx

Répondre

0

J'ai créé un espace de noms personnalisé

define ("NS_CUSTOM", 111); 
$wgExtraNamespaces[NS_CUSTOM] = "customNamespace"; 
$wgNamespacePermissionLockdown[NS_CUSTOM]['*'] = array('sysop'); 

et changé si les lignes de page Tableau de base de données à page_namespace = 111

2

Selon Lockdown documentation, une seule ligne devrait suffire pour un espace de noms déjà existant comme NS_PROJECT:

$wgNamespacePermissionLockdown[NS_PROJECT]['*'] = array('sysop'); 

De votre question et votre propre réponse, il n'est pas assez clair ce que votre confi guration ressemble (par ex. si vous essayez de verrouiller plusieurs espaces de noms et peut-être fait quelques erreurs là-bas). Cependant, vous ne devriez pas

  1. Redéfinir namespaces existant
  2. réutilise la définition de NS_CUSTOM pour différents ids d'espace de noms (qui est une variante de 1.)
Questions connexes