
MediaWikiで管理者の役割を持たないすべてのユーザーに、すべての官僚活動(すべてのタスク、すべての特殊ページなど)をロックしたいと思います。
これが私が現在半自動で行う方法です。
まずインストールします拡張ロック。
その後、すべての特殊ページをロックする前に、すべての操作をロックします。すべての特殊ページをロックするよりもはるかに簡単なためです(約6つの作業がありますが、約150の特殊ページがあります)。
すべての操作をロックするには、LocalSettings.phpに次のように入力しました。
$wgActionLockdown['edit'] = array( 'sysop' );
$wgActionLockdown['delete'] = array( 'sysop' );
$wgActionLockdown['move'] = array('sysop');
$wgActionLockdown['protect'] = array( 'sysop' );
$wgActionLockdown['history'] = array( 'sysop' );
$wgActionLockdown['createtalk'] = array('sysop');
その後、すべての特殊ページをロックするのは少し難しいですが、現在は次のように自動的にロックできます。
1)すべての特別ページのリストは以下にあります。https://en.wikipedia.org/wiki/Help:Special_page
2)シェル(CLUI)からstdinにページをダウンロードし、grepを使用して名前を一致させ、並べ替えて名前をフィルタリングし(重複も削除します)、出力をtxtファイルにリダイレクトしました。
curl https://en.wikipedia.org/wiki/Help:Special_page -s | grep -oP 'Special:\K[a-zA-Z0-9]*' | sort -u > special_page_names.txt
三)私はAWKを使ってExtension:Lockdownを使って各名前をブロックテンプレートに入れました。
awk '{ print "$wgSpecialPageLockdown[\47"$0"\47] = array(\47sysop\47);" }' special_page_names.txt > special_page_names_processed.txt
- 出力をLocalSettings.phpに貼り付けました。
すべての特別なWebページをロックするより簡単な方法を知っていますか?
ジョブや特殊ページ以外の項目をロックする場合は注意してください。
答え1
人々がログインできる必要があります。
$wgSpecialPageLockdown['ユーザーログイン'] = ['*'];
他のすべての特殊ページはブロックされます。
$wgSpecialPageLockdown[] = array('sysop');