默认情况下,在开放的MediaWiki站点上,每个人(包括访问者/匿名用户)都可以编辑页面内容。请注意,这并不包括站点上的所有页面。默认情况下,某些页面(例如包含工具和报告的特殊页面)就无法随意编辑。如果你想限制页面的编辑,可以通过几种方法来实现。你可以对整个用户组禁用该操作,也可以仅保护特定页面;你可能还会发现阻止用户的功能很有用。

防止特定用户组编辑所有页面

如果你想限制用户对所有页面的编辑,可以通过禁用整个用户组的编辑操作来实现。该方法可以用于任何默认配置组和/或管理员创建的自定义组。当用户组无法编辑页面时,也意味着它无法创建新页面。你可以通过在配置文件LocalSettings.php中插入代码来限制用户组编辑页面。比如下面的:

$wgGroupPermissions['*']['edit'] = false;

未注册用户将无法编辑页面。第一对括号中的星号*对应所有用户所属的用户组,但注册用户所在的组具有专门启用的编辑权限,因此注册用户不会受到影响。请记住,如果用户属于多个组,并且其中一个组的用户权限被禁用,但另一个组的用户权限被启用,则该用户将能够执行该操作。要限制其他用户组的页面编辑,只需将该组的标签放在第一对括号内的引号之间即可。例如:

$wgGroupPermissions['user']['edit'] = false;

这将阻止所有注册用户编辑页面。请注意,由于注册用户既属于该组又属于所有用户所属的组(标有 * 的组),为了使他们无法编辑页面,你必须将上述两行代码添加都到LocalSettings.php文件中。请记住,这也会影响管理员组,因为admin/sysop组没有专门启用此权限,并且他们也是用户组的成员(所有注册用户都是)。在这种情况下,如果你希望某个特定组能够编辑页面,就可以专门将该权限添加到该组;你可以使用相同的代码,但要将false更改为true,并将组的标签放在第一对括号中。例如:

$wgGroupPermissions['sysop']['edit'] = true;

将为sysop组(管理员组)启用编辑权限。你可以通过网站前端的“工具”菜单> “特殊页面”按钮> “用户和权限”部分> “用户组权限”按钮来查看所有用户组的权限。

防止用户编辑特定页面

如果你想阻止用户仅编辑特定页面,你可以使用每个页面的保护功能来实现。为此,请打开页面,选择右上角的“更多”按钮,然后从下拉菜单中选择“保护”。从下一页上的相应选项中,你可以选择希望受影响的用户组,并且可以保护页面不被编辑和/或移动。

默认情况下,只有管理员可以保护页面。

通过阻止特定用户来防止他们编辑页面

阻止特定用户编辑页面的另一种方法是阻止他们。但请注意,这也会禁用可以对页面执行的其他操作。被阻止的用户将只能阅读页面。要阻止用户,请转到左侧的“工具”菜单> “特殊页面”按钮>下一页的“用户和权限”部分> “阻止用户”按钮。在打开的表单上,你可以指定注册用户的用户名(以防你想要阻止注册用户)或未注册用户的 IP 地址。还有一些其他选择。

通过扩展来阻止用户编辑页面

这里只简单介绍一下TitleBlacklist这款扩展,目前它已经内置于安装包之中,无需单独安装。它的作用是设立一个黑名单(可以使用正则表达式),如果一个页面的标题与黑名单中的规则相匹配,用户将不能创建此页面、上传文件至此页面,或将其他页面移动至此页面。例如可以在MediaWiki:Titleblacklist页面中创建如下内容:

Foo <autoconfirmed|noedit|errmsg=blacklisted-testpage> # 这个页面名称不被允许
[Bb]ar # 不应该有人创建关于它的条目
.*pandora.* # 这个单词不允许存在于页面名称的任何部分

其中noedit可以禁止编辑页面(如果页面已存在)。

最后修改:2024 年 04 月 29 日
如果觉得我的文章对你有用,请随意赞赏