mediawiki - MediaWiki 访问控制扩展的问题

标签 mediawiki acl access-control

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

有人使用这个扩展吗?

我想做的就是向除 5 人之外的所有人隐藏 wiki 中的一页。

MediaWiki 版本 1.18.0 访问控制版本2.1

最佳答案

我通过添加另一个命名空间来放置我需要保护的页面来解决这个问题。然后,我通过实现 searchablenamespaces Hook 来删除该命名空间的可搜索性。

通过这样做,仅通过搜索恰好位于访问控制页面中的文本就永远不会显示访问被拒绝的页面。

这是 $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');

关于mediawiki - MediaWiki 访问控制扩展的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11677336/

相关文章:

php - 如何将 Mediawiki 连接到自定义用户数据库?

properties - Semantic Mediawiki 1.8.0 不显示自定义命名空间中的页面属性

php - CakePHP ACL 示例

amazon-web-services - 限制某些用户而非其他用户访问 Cloudfront(S3) 文件的简单示例

access-control - Symfony2 - 访问控制

mediawiki - 将 (?) 信息框从维基百科移植到我自己的维基

javascript - MediaWiki WikiEditor 工具栏高度大小 100%

php - Magento 自定义 ACL 默认返回 TRUE

带路由的 Symfony2 访问控制