AccessControl MediaWiki 拡張機能をインストールしましたが、アクセス制御されているページに含まれているものを検索すると、アクセス拒否エラーが発生するようです。
この拡張機能を使用している人はいますか?
私がしたいのは、Wiki の 1 ページを 5 人を除く全員から非表示にすることだけです。
MediaWiki バージョン 1.18.0 AccessControl バージョン 2.1
AccessControl MediaWiki 拡張機能をインストールしましたが、アクセス制御されているページに含まれているものを検索すると、アクセス拒否エラーが発生するようです。
この拡張機能を使用している人はいますか?
私がしたいのは、Wiki の 1 ページを 5 人を除く全員から非表示にすることだけです。
MediaWiki バージョン 1.18.0 AccessControl バージョン 2.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.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 でのみ (簡単に) テストされていることに注意してください。拡張機能の作成者が私が行ったことをレビューし、残っている問題を修正してくれることを願っています。
追加してこのエラーを修正しました
return false;
言うすべての行の後
doRedirect( 'accesscontrol-info-anonymous' );