Mediawiki 如何拒绝访问所有页面并只允许wiki上的某些页面

Mediawiki 如何拒绝访问所有页面并只允许wiki上的某些页面,mediawiki,wiki,Mediawiki,Wiki,我正在使用在FreeBSD7.4上运行的mediawiki 1.13.3 我对以下任务感到困惑: 如何拒绝某些用户(在my wiki中拥有帐户的用户)或这些用户组访问所有页面,但允许对wiki上的某些页面进行只读访问。 要实现的目标是,除了允许一些用户访问一些页面外,不能访问wiki上的页面 我尝试了一些扩展,但无法为大约20000页和数百名用户找到解决方案。请参阅 具体地说,要允许每个人阅读(但不编辑)主页和名为Public stuff的页面,并且只允许sysop阅读和编辑所有页面,您需要在L

我正在使用在FreeBSD7.4上运行的mediawiki 1.13.3 我对以下任务感到困惑: 如何拒绝某些用户(在my wiki中拥有帐户的用户)或这些用户组访问所有页面,但允许对wiki上的某些页面进行只读访问。 要实现的目标是,除了允许一些用户访问一些页面外,不能访问wiki上的页面

我尝试了一些扩展,但无法为大约20000页和数百名用户找到解决方案。

请参阅

具体地说,要允许每个人阅读(但不编辑)主页和名为Public stuff的页面,并且只允许sysop阅读和编辑所有页面,您需要在LocalSettings.php中添加以下行:

#防止Anon编辑和读取(以下列出的例外情况除外):
$wgGroupPermissions['*']['edit']=false;
$wgGroupPermissions['*']['read']=false;
#普通注册用户也一样:
$wgGroupPermissions['user']['edit']=false;
$wgGroupPermissions['user']['read']=false;
#允许所有人对这些页面进行读取访问:
$wgWhitelistRead=数组(“主页”、“公共内容”);
#允许系统操作正常读取和编辑:
$wgGroupPermissions['sysop']['edit']=true;
$wgGroupPermissions['sysop']['read']=true;
当然,您可以用自己的替换上面的
sysop
;我只是在示例中使用它,因为它存在于一个stock MediaWiki安装中


(一些较旧的示例代码建议也包括
“Special:UserLogin”
,可能还包括
“Special:ChangePassword”
“Special:PasswordReset”
。在现代MediaWiki版本中,这应该是不必要的,尽管仍然无害。)

我发现的一个非常接近的解决方案是使用简单的安全扩展: 因此,我正在创建一个没有访问权限的用户组:

$wgGroupPermissions['user']['read']=false

将此组添加到$wgRestrictionLevels=array()

然后将某些页面的读取权限限制到此组


这已经足够了,但并不完全是我想要实现的解决方案。

谢谢,但我已经阅读了$wgGroupPermissions,发现这不是我需要的。更重要的是,混合使用组权限和simplesecurity Extension I可以实现目标,但是。。然后我发现我们正在使用“标记的节转换”扩展和简单的标记,如{{{lst:Namespace:PageName}},将消除所有的安全性。您可能想尝试设置,尽管我不确定是否尊重它。如果不是,那可以说是扩展中的一个bug。