我需要帮助两件事:
我使用f.ex在Mediawiki中创建文章。财务数据,我想阻止所有用户,除了一个名为“财务”的用户或用户组。有没有办法简化,也许在创建这篇文章时?
我想阻止所有特殊页面给用户,怎么做?我阻止了编辑,讨论等,我需要阻止所有特殊页面给用户。
答案 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是否真的是满足您需求的正确工具*