Liferay-删除控制面板菜单

Posted

技术标签:

【中文标题】Liferay-删除控制面板菜单【英文标题】:Liferay- remove Control Panel menu 【发布时间】:2018-01-11 01:04:10 【问题描述】:

我正在使用 Liferay 7 GA 4。左侧有 Liefray 菜单(控制面板、用户等...)

我想为普通用户删除此菜单,并使其仅对管理员可见。

任何人都可以帮助我找到我该怎么做?

提前非常感谢

【问题讨论】:

【参考方案1】:

您需要将此代码包装在主题中的portal_normal.ftl 中。

<@liferay.control_menu />

您可以创建theme context contributor 向模型中添加一个值,该值将确定用户是否应该获得菜单。

代码可能是这样的

    Boolean isAdmin = false;
    ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);
    try 
        Group group = themeDisplay.getScopeGroup();
        PermissionChecker permissionChecker = themeDisplay.getPermissionChecker();
        if (themeDisplay.isSignedIn() && groupPermission.contains(permissionChecker, group,
                ActionKeys.VIEW_SITE_ADMINISTRATION)) 
            isAdmin = true;

        
     catch (PortalException e) 
        LOG.warn(e);
    
    contextObjects.put("is_site_admin", isAdmin);

关键是使用权限检查器。

【讨论】:

...并在页面某处提供“注销”链接,因为该链接也会消失(它是用户个人栏的一部分,您希望将其消失)跨度> 非常感谢。我会尝试这个解决方案。我还有一个问题;我需要将“我的帐户”链接放在此菜单之外(对于普通用户将被删除)并将其放在页面的右上角(例如在注销/用户名等旁边)谢谢非常提前。 您想要整个“我的帐户”子菜单吗? 看看 这将呈现整个事情。如果用户没有其他部分的权限,它应该做正确的事情。你可能需要用css隐藏一些东西。如果您可以减少较小的代码位,或者查看实现。 我找到了解决方案:isAdmin = themeDisplay.isSignedIn() && permissionChecker.isOmniAdmin()。非常感谢。我的问题现在解决了!

以上是关于Liferay-删除控制面板菜单的主要内容,如果未能解决你的问题,请参考以下文章

将 portlet 移动到 liferay 7 中的控制面板部分?

如何在 liferay 6.2 CE 中创建一个 UserModelListener,它捕获仅​​在控制面板-> 用户组织中更新的用户详细信息的数据

Autodesk License Service在控制面板中无法删除

怎么找英伟达控制面板?

让Win10控制面板在右键菜单中安家

win10右击开始按钮不显示控制面板