MediaWikiに登録されているユーザーのすべてのコンテンツをロックするには?

MediaWikiに登録されているユーザーのすべてのコンテンツをロックするには?

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
  1. 出力をLocalSettings.phpに貼り付けました。

すべての特別なWebページをロックするより簡単な方法を知っていますか?

ジョブや特殊ページ以外の項目をロックする場合は注意してください。

ベストアンサー1

人々がログインできる必要があります。

$wgSpecialPageLockdown['ユーザーログイン'] = ['*'];

他のすべての特殊ページはブロックされます。

$wgSpecialPageLockdown[] = array('sysop');

おすすめ記事