- 我们正在运行一个MediaWiki。
- 我们创建了一个自定义名称空间(“ NS_FOO”)。
- 我们为“ NS_FOO”(LocalSettings.php)添加了名称空间(写)保护
- 适用于除我们自定义用户组“ QM”以外的所有用户。
- 我们在此自定义名称空间中添加了页面。
一切正常,也就是说,除“ QM”组的成员外,没有用户可以编辑这些页面。
- 我们尝试使用api(属于QM组成员的用户的自动密码)编辑此页面
我们收到错误:
code:"protectednamespace"
info:"You do not have permission to edit pages in the FOO namespace."
这是LocalSettings.php的一部分:
define("NS_FOO",3000);
define("NS_FOO_TALK",3001);
$wgExtraNamespaces[NS_FOO] = "foo";
$wgExtraNamespaces[NS_FOO_TALK] = "foo_talk";
# add protection
$wgNamespaceProtection[NS_foo] = ['QM-edit-rights'];
# Allow QM to edit "FOO" namespace
$wgGroupPermissions['QM']['QM-edit-rights'] = true;
$wgGroupPermissions['QM']['edit'] = true;
$wgGroupPermissions['QM']['createpage'] = true;
$wgGroupPermissions['QM']['delete'] = true;
etc.
我知道以下事实:使用api可能会出错。但是在这种情况下,它似乎仅取决于受保护的名称空间。因为:
- 在默认名称空间中更改页面时,api编辑工作正常。因此,使用我们的api调用更改页面似乎没有任何问题。
- 另一方面,当个人完成而不使用api时,受保护命名空间中的编辑可以正常工作。
但是结合使用api编辑受保护的命名空间中的页面会产生上面引用的错误。
我对漫游器密码(或api访问)的理解是,它应该继承用户的组权限。而且,如果允许用户编辑页面,则该漫游器也应该能够执行该页面(如果没有进一步限制,则该漫游器密码将不受限制)。
机器人密码是否需要对受保护的名称空间有一些额外的权限?
还是一般来说机器人无法更改受保护名称空间中的页面?
这是mediawiki的错误吗?