3

我正在使用在 freebsd 7.4 上运行的 mediawiki 1.13.3 我对以下任务感到困惑:如何拒绝某些用户(在我的 wiki 中有帐户)或这些用户组对所有页面的访问但允许只读访问对于 wiki 上的某些页面。实现的目标是无法访问 wiki 上的页面,除非某些用户只允许很少的页面。

我已经尝试了一些扩展,但找不到约 20000 个页面和数百个用户的解决方案。

4

2 回答 2

2

参见手册: mediawiki.org 上的阻止访问,“限制查看所有页面”部分

具体来说,为了让每个人都可以阅读(但不能编辑)主页和名为Public stuff的页面,并且只允许管理员阅读和编辑所有页面,您可以在 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上面替换为您自己的自定义用户组;我只是在示例中使用它,因为它存在于库存 MediaWiki 安装中。

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

于 2013-08-15T20:36:42.910 回答
0

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

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

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

然后将某些页面的读取权限限制为该组。

相当不错,但不完全是我想要实现的解决方案。

于 2013-08-20T10:00:40.890 回答