私は、デフォルトのシステムよりも柔軟性が必要な同様の問題がありました。私は(mediawikiの拡張に埋め込まれた)、このスクリプトによって、これを解決:
// check each page for gossip permissions
$wgHooks['ArticlePageDataBefore'][] = 'GossipProtection_check_permissions';
/**
* ArticlePageDataBefore hook
*
* $article: article that is requested
* ($fields: not important)
*/
function GossipProtection_check_permissions($article, $fields) {
global $wgUser;
$title = $article->getTitle()->mTextform;
if(is_gossip_page($title))
if(!this_user_is_allowed_on_page($title))
die('You are not allowed on this page');
return true;
}
しかし、MediaWikiの保護サービスを使用することはもちろん、オフよりエレガントです。たとえば、許可されたユーザーのグループを作成できます。