2012-11-29 99 views

回答

3

Liferay使用RBAC權限模型,這可能不會允許您通過權限來實現此目的。這是因爲將系統角色從授予訪客的權限中剝離出來是完全不合邏輯的。

考慮一些其他的選擇,從我的頭頂:

  • 創建佈局模板,顯示或隱藏取決於一些門戶列當前用戶是否是不能容人(不能完全肯定這是否會是那麼容易,因爲它取決於哪些變量究竟是佈局模板速度環境中可用)
  • 套牌,portlet中的另一個Portlet
  • 只需勾登錄門戶的JSP
  • 可能是Javascript嗎?也許最簡單的解決方案,而不是最好的,雖然
+2

有關創建佈局模板將是要走的路的建議。結帳這個博客文章的速度變量可用:http://alimozzaman.wordpress.com/2011/01/16/liferay-6-theme-variables/ – Jonny

+0

謝謝喬尼,只是我正在考慮的博客文章! –

+0

哈哈很棒的頭腦! :) – Jonny

2

實現這一目標的另一種方法是創建一個包含登錄portlet的公共頁面,讓我們說的頁面被稱爲登錄(此頁和它的門戶應該是客人觀看)。

接下來,創建另一個頁面並調用此Welcome。將一些portlet放在上面以供登錄用戶查看。該頁面應該最好是私人的,但如果它是公開的,請確保您更改權限,以便客人看不到portlet等。

現在轉到控制面板>門戶>門戶設置並修改導航鏈接(將鼠標懸停在問號圖標上爲解釋每個鏈接做什麼的信息性工具提示)。

下面是一個例子,從我上面的登錄和歡迎頁提及以下的:

enter image description here

Simples!沒有代碼修改或自定義主題!

0

Liferay將signed-in類添加到您的<body>元素中。如果你可以用它在HTML中可用,只是未顯示活,加

.signed-in .portlet_login { 
    display:none; 
} 

或類似的主題或登錄門戶組件的外觀&感受先進的造型。

0

根據$is_signed_in檢查可以渲染/不渲染很多東西。

is_signed_in對於登錄用戶將爲true,否則爲false

一些例子是從以下portal_vm.vm

#if(!$is_signed_in) 
      <a href="$sign_in_url" id="sign-in" rel="nofollow">$sign_in_text</a>    
#end 


#if($is_signed_in) 
#if($permissionChecker.isOmniadmin()== true) 
    #dockbar() 
#end 

#if(!$is_signed_in) 
       $theme.include($themeServletContext, "/jsp/someJsp.jsp") 
#end