在Mediawiki上阻止匿名用户访问历史记录?

时间:2016-07-20 10:01:07

标签: mediawiki

我不希望未注册(未登录)的用户能够在我的Mediawiki安装上访问修订历史记录。我已经找到了一些关于通过CSS隐藏选项卡的SE问题,但我希望实际上阻止访问整个“历史”页面,甚至通过直接URL访问。

有很多功能强大的插件可以用各种复杂的方式限制用户访问,但我希望在开始设置大规模扩展之前,这个功能有一个简单的“关闭”功能。

2 个答案:

答案 0 :(得分:3)

最简单的方法是将这行代码添加到LocalSettings.php文件的底部:

$wgHooks['MediaWikiPerformAction'][] = function( $output, $article, $title, $user, $request, $wiki ) {
  if( ( !$user || $user->isAnon() ) && ( $request->getVal('action') == 'history' ) ) {
    return false;
  }
  return true;
}

请注意,此解决方案需要PHP 5.5 +和mediawiki 1.25 +

答案 1 :(得分:0)

我试图将代码添加到最新的1.32构建中,并引发服务器错误500。看来他们已经一起废除了wgHooks。通过使用Lockdown扩展,我可以完成相同的操作,请参见此处:

https://www.mediawiki.org/wiki/Extension:Lockdown

我在LocalSettings.php中使用了此选项

$wgActionLockdown['history'] = [ 'user' ];