在skins / Vector.php中,我可以隐藏已登出用户的工具箱
添加
全球$ wgUser;
然后
case 'TOOLBOX':
if ( $wgUser->isLoggedIn() ) {
$this->renderPortal( 'tb', $this->getToolbox(), 'toolbox', 'SkinTemplateToolboxEnd' );
}
但不推荐使用User :: isSysop()等。建议使用$ user-> isAllowed来指定权限,但如何使用它来指定管理员和官僚组?我应该使用其他功能吗?
MediaWiki 1.22.2
PHP 5.3.6-13ubuntu3.10 (apache2handler)
MySQL 5.1.69-0ubuntu0.11.10.1-log
答案 0 :(得分:1)
User::isAllowed()
要求获得某些操作的权限,而不是用户组(将其留给wiki管理员为不同的用户组分配不同的权限)。在您的情况下,您需要一个新的用户权限,“see-toolbar”或类似的东西,您可以分配给,例如sysop
中的LocalSettings.php
用户组:
$wgGroupPermissions['sysop']['see-toolbar'] = true;
您的扩展程序还必须添加权限列表:$wgAvailableRights[] = 'see-toolbar';
最后,你会要求获得这样的许可:
if ( $user->isAllowed('see-toolbar') ) {
print toolbar here
}
请注意,任何用户仍可以通过多种方式绕过此限制,例如:通过在其设置中切换皮肤(或通过在网址中附加?useskin=skinname
)。您可能希望确保侧边栏缓存也已关闭(默认情况下它已关闭)。