Mediawiki文章权限,阻止特殊页面

时间:2014-03-06 14:36:36

标签: permissions mediawiki

我需要帮助两件事:

  1. 我使用f.ex在Mediawiki中创建文章。财务数据,我想阻止所有用户,除了一个名为“财务”的用户或用户组。有没有办法简化,也许在创建这篇文章时?

  2. 我想阻止所有特殊页面给用户,怎么做?我阻止了编辑,讨论等,我需要阻止所有特殊页面给用户。

1 个答案:

答案 0 :(得分:3)

首先:如果您确实需要设置每篇文章的权限,那么您使用的是错误的工具。 Mediawiki旨在开放和高度协作,并努力解决A)需要黑客攻击和B)永远不会完全安全。 (请参阅MediaWiki: Security issues with authorization extensions。简而言之:成为用户访问受限制网页内容的方式。)

现在,如果您仍想尝试限制对某些网页的访问,则会有few extensions to choose from。在 Extension:Lockdown 中,您可以设置每个命名空间权限和特殊页面限制。然后,您必须为每个访问设置创建一个命名空间,并将您的财务数据放在受限制的命名空间中,例如Restricted:Financial 你的LocalSettings.php看起来像这样(只是一个例子!):

#add a new user group
$wgGroupPermissions['trusted-user'] = $wgGroupPermissions['user'];

#add namespace
define('NS_RESTRICTED', 550);
define('NS_RESTRICTED_TALK', 551);
$wgExtraNamespaces[NS_RESTRICTED] = 'Restricted';
$wgExtraNamespaces[NS_RESTRICTED_TALK] = 'Restricted_talk';

#lockdown namespace 
$wgNamespacePermissionLockdown[NS_RESTRICTED]['read'] = array('trusted-user');
$wgNamespacePermissionLockdown[NS_RESTRICTED_TALK]['read'] = array('trusted-user');

#disallow inclusion
$wgNonincludableNamespaces[] = NS_RESTRICTED;
$wgNonincludableNamespaces[] = NS_RESTRICTED_TALK;

请注意,我们将命名空间添加到$wgNonincludableNamespaces,以防止用户通过包含来查看内容(只需在某些页面上编写{{Restricted:Financial}})。

然后我们继续锁定所有特殊页面:

$wgSpecialPageLockdown['Statistics'] = array('sysop');
$wgSpecialPageLockdown['Version'] = array('sysop');
$wgSpecialPageLockdown['Export'] = array('sysop');
...

这将是一个很长的列表,随着特殊页面的出现,它会在MediaWiki的版本之间发生一些变化。

*在开始沿着这条路走下去之前,请阅读https://www.mediawiki.org/wiki/Manual:Preventing_access#Restrict_viewing_of_certain_specific_pages处的警告,并再次考虑MediaWiki是否真的是满足您需求的正确工具*