2

AccessControl MediaWiki 拡張機能をインストールしましたが、アクセス制御されているページに含まれているものを検索すると、アクセス拒否エラーが発生するようです。

この拡張機能を使用している人はいますか?

私がしたいのは、Wiki の 1 ページを 5 人を除く全員から非表示にすることだけです。

MediaWiki バージョン 1.18.0 AccessControl バージョン 2.1

4

3 に答える 3

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');
于 2012-07-29T01:52:30.180 に答える
1

1.20.2で試してみたところ、含まれるテキストを検索しているページが検索され、検索結果のリストに表示され、AccessControl.phpの「hookUserCan」関数が機能しなかったためにエラーが発生するという問題が発生しました。値を返します。これを修正するために、AccessControl.php ("return doRedirect( 'accesscontrol-info-anonymous' );" の 341 行目を "return false;" に変更しました。これにより、検索結果はページのタイトルだけを返すようになります。これは完全な修正ではありませんが、私の目的には十分です。

編集済み、これはより良い答えです:

AccessControl.php プログラムにいくつかの変更を加えたところ、MediaWiki ユーザー グループで問題なく動作するようになりました。残りの問題は、保護されたページのタイトルが検索結果に表示されることです。これはメインの MediaWiki ソース コード (SpecialSearch.php、562 行目あたり) で修正できますが、そのコードのコメントによると、ページングが台無しになります。

$IP/extensions/AccessControl に解凍できる私の git ディレクトリは次のとおりです。

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

これは AccessControl.php ファイルです: http://pastebin.com/WnyB6gBw

これは MediaWiki 1.20.2 でのみ (簡単に) テストされていることに注意してください。拡張機能の作成者が私が行ったことをレビューし、残っている問題を修正してくれることを願っています。

于 2013-01-02T10:49:13.770 に答える
0

追加してこのエラーを修正しました

return false;

言うすべての行の後

doRedirect( 'accesscontrol-info-anonymous' );
于 2013-07-23T14:08:16.193 に答える