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

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

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

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

提前非常感谢

【问题讨论】:

    标签: liferay-7


    【解决方案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()。非常感谢。我的问题现在解决了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-18
    • 2019-10-13
    • 1970-01-01
    • 1970-01-01
    • 2014-09-19
    • 1970-01-01
    相关资源
    最近更新 更多