我正在使用在freebsd 7.4上运行的mediawiki 1.13.3 我对以下任务感到困惑: 如何拒绝某些用户(在我的wiki中拥有帐户)或这些用户组的所有页面的访问权限,但允许对Wiki上的某些页面进行ReadOnly访问。 实现的目标是无法访问维基上的页面,除非一些用户只允许使用少量页面。
我尝试了一些扩展程序但找不到约20000页和几百个用户的解决方案。
答案 0 :(得分:2)
请参阅Manual:Preventing access on mediawiki.org, section "Restrict viewing of all pages"。
具体来说,允许每个人阅读(但不能编辑)主页和名为公共内容的页面,并且只允许sysops读取和编辑所有页面,您将以下行添加到LocalSettings.php:
# prevent editing and reading by anons (except for exception listed below):
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['read'] = false;
# same for normal registered users:
$wgGroupPermissions['user']['edit'] = false;
$wgGroupPermissions['user']['read'] = false;
# allow everyone read access to these pages:
$wgWhitelistRead = array( "Main Page", "Public stuff" );
# allow sysops to read and edit normally:
$wgGroupPermissions['sysop']['edit'] = true;
$wgGroupPermissions['sysop']['read'] = true;
当然,您可以将sysop
替换为您自己的custom user group;我只是在示例中使用它,因为它存在于MediaWiki安装库存中。
(一些较旧的示例代码建议在$wgWhitelistRead
中也包括"Special:UserLogin"
以及可能"Special:ChangePassword"
和"Special:PasswordReset"
。在现代MediaWiki版本中,这应该是不必要的,尽管仍然无害。)
答案 1 :(得分:0)
我发现一个非常接近的解决方案是使用简单的安全扩展: 所以我正在创建一个没有访问权限的用户组:
$wgGroupPermissions['user']['read'] = false;
将此组添加到 $ wgRestrictionLevels = array();
然后限制某些页面对该组的读取访问权限。
相当不错但不完全是我想要实现的解决方案。