MediaWiki访问控制扩展的问题

时间:2012-07-26 20:16:07

标签: mediawiki acl access-control

我已经安装了AccessControl MediaWiki扩展程序,但如果您搜索甚至包含在访问控制的页面中的任何内容,它似乎会导致访问被拒绝错误。

使用此扩展程序的任何人?

我想要做的就是在除了5个人之外的所有人中隐藏一个页面。

MediaWiki版本1.18.0 AccessControl版本2.1

3 个答案:

答案 0 :(得分:1)

我通过添加另一个命名空间来解决它,以便放置我需要保护的页面。然后我通过实现searchablenamespaces钩子来删除命名空间。

通过执行此操作,只会通过搜索恰好位于访问控制页面中的文本来显示拒绝访问页面。

以下是$ IP / extensions / NoSearchNameSpace / NoSearchNameSpace.php的代码

<?php
// This is a quick hack to remove certain listed namespaces from being searchable
// Just set a list of namespace IDs in the wgNoSearchNamespaces array in LocalSettings
// ie $wgNoSearchNamespaces = array(500,501) would remove 500 and 501 from being searched
$wgHooks['SearchableNamespaces'][] = 'noSearchNameSpace';
function noSearchNameSpace($arr){
    global $wgNoSearchNamespaces;
    foreach($wgNoSearchNamespaces as $ns){
        unset($arr[$ns]);
    }

    return $arr;
}

示例LocalSettings.php条目:

// Add two custom namespaces. One for ACL pages.
// one for pages that will be ACL'd that should not be searched.
$wgExtraNamespaces[500] = "ACL";
$wgExtraNamespaces[501] = "NoSearch";


// Include the NoSearchNamespace extension
require_once("extensions/NoSearchNamespace/NoSearchNameSpace.php");
$wgNoSearchNamespaces = array('500','501');

答案 1 :(得分:1)

我尝试使用1.20.2,当我搜索的页面包含要搜索的文本时将其放入搜索结果列表中,这会导致问题,因为AccessControl.php中的“hookUserCan”函数会导致错误没有返回值。为了解决这个问题,我修改了AccessControl.php的第341行(“return doRedirect('accesscontrol-info-anonymous');”to“return false;”。这会强制搜索结果只返回页面的标题,如果未经授权的用户试图打开它,则会收到权限错误。这不是一个完美的解决方案,但它足以满足我的目的。

编辑,这是一个更好的答案:

我对AccessControl.php程序进行了一些修改,现在它似乎可以与MediaWiki用户组一起使用。剩下的问题是受保护页面的标题显示在搜索结果中。这可以在主MediaWiki源代码(SpecialSearch.php,第562行)中修复,但根据该代码中的注释,它会搞砸分页。

这是我的git目录,可以解压缩到$ IP / extensions / AccessControl:

https://ejc.s3.amazonaws.com/AccessControlGit.zip

以下是AccessControl.php文件:http://pastebin.com/WnyB6gBw

请注意,这仅使用MediaWiki 1.20.2进行了测试(简要)。我希望扩展的作者能够回顾我的所作所为并解决剩下的问题。

答案 2 :(得分:0)

我通过添加

修复了此错误
return false;

在所有LINES之后

doRedirect( 'accesscontrol-info-anonymous' );
相关问题