在 Liferay 6.2 Dockbar 中隐藏注销 Link

Hide Sign Out Link in Liferay 6.2 Dockbar

在 Liferay 6.1 中,我们创建了一个钩子来隐藏停靠栏中的注销 link。但是,当我查看 6.2 的代码时,我看到以下内容:

<c:if test="<%= themeDisplay.isShowSignOutIcon() %>">
    <aui:nav-item cssClass="sign-out" href="<%= themeDisplay.getURLSignOut() %>" iconCssClass="icon-off" label="sign-out" />
</c:if>

无论我如何 google,我都找不到任何对 themeDisplay.isShowSignOutIcon() 的引用,除了 API 引用,这对我没有好处,因为它根本没有评论。我确实找到了讨论原生 LR 主题属性的页面,显然确定是否 show/hide 注销 linkn 不是原生主题属性之一。

有谁知道您是否可以将主题本身设置为 show/hide 退出 link 以及您将如何做?

我找到的唯一调用 ThemeDisplay.setShowSignOutIcon 的地方是在 ServicePreAction (linking master branch here). That being said, it looks like it's not configurable, but you can easily create another ServicePreAction in a hook. Please see an example in this plugin (referencing portal.properties and liferay-hook.xml 中,但自然也有我相信您会找到的代码。不大)

另一种选择 - 如果您只是想无条件地摆脱 link:使用 CSS 来隐藏它。是的,它仍然会在那里,但无论您选择隐藏 link 的何种方式,/c/portal/logout 处的 actopm 仍然可用...

我也分析了ServicePreAction的代码,发现这段代码的作用是:

  • 检查用户是否登录
  • 如果是,显示 'sign out' link,否则显示

您可以简单地创建一个挂钩来覆盖 html/portlet/dockbar/view_user_account.jspf 以从此 jsp 中删除该代码片段以在所有情况下隐藏它,或者根据您的需要将条件修改为 show/hide要求。