如何锁定 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)我从 shell (CLUI) 将页面下载到 stdin,使用 grep 匹配名称,使用 sort 过滤名称(这也会删除重复项)并将输出重定向到 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

3)我使用 AWK 将每个名称放入 Extension:Lockdown 的阻止模板中:

awk '{ print "$wgSpecialPageLockdown[\47"$0"\47] = array(\47sysop\47);" }' special_page_names.txt > special_page_names_processed.txt
  1. 我将输出粘贴到 LocalSettings.php 中

您知道锁定所有特殊网页的更简单方法吗?

请注意,如果您锁定除操作和特殊页面之外的其他任何内容。

答案1

人们需要能够登录。

$wgSpecialPageLockdown['用户登录'] = ['*'];

所有其他特殊页面均被阻止。

$wgSpecialPageLockdown[] = 数组('sysop');

相关内容