2012-05-07 30 views
2

這基本上是兩個問題?首先,我想知道如何在用戶嘗試訪問具有高級用戶查看權限的頁面時更改頁面生命週期重定向。默認情況下,Liferay指向localhost:web/guest/home,他們有他們的登錄頁面。在我的應用程序中,我在頁面中有不同的登錄名,我想重定向到下一頁。我正在瀏覽網頁,發現通過設置auth.login.site.url=/whereiwontittopoint應該將其重定向到那裏。但事實並非如此。我正在使用Liferay 6.0.6 Community Editions。有沒有人做過這個?這是正確的方式還是需要用鉤子來完成?當Liferay不具備特定角色時,Liferay更改默認重定向頁面

我的其他問題如下。我想在某些頁面上擁有自定義角色。我想當一個用戶沒有特定的角色被重定向到一個完全不同的頁面而不是默認的登錄。我相當確定這可以通過在某些服務上使用鉤子來完成,但出於某種原因,我無法識別此服務。

編輯 好的第一個問題,我解決了問題。對於第二個問題,我在這裏得到的答案不是我想要的,可能是因爲我沒有正確發佈問題。這是一個完整的場景,我已經做了什麼,我需要做什麼:

首先,我將每個liferay頁面上的/ web/guest路徑更改爲web/somthing /,但這可能不起關鍵作用,但當發生這種情況時,問題(一些問題)就開始了。總體思路如下。我使用spring mvc來創建應用程序。我已經爲我的應用程序創建了一個後端,管理員可以從中創建其他用戶可以看到的頁面(這不是通過轉到liferay的控制面板並添加頁面,而是通過應用程序的邏輯來完成的)。一旦創建頁面取決於某些邏輯,我爲該特定頁面創建角色(客戶角色也通過代碼而不是liferay管理員)。如果滿足一些標準而另一些則不滿足,則某些用戶被賦予這個角色。在這裏,我的問題出現了,一旦插入我的應用程序的用戶試圖訪問一個頁面(通過在瀏覽器中輸入一個直接的URL到頁面),這需要爲我爲該頁面創建的角色的視圖驗證,並且用戶會他沒有適當的角色,他得到重定向讓說localhost /網頁/(用戶名)/家個人頁面,由於某種原因,在默認情況下,該網頁liferay他能夠查看所有其他用戶的個人數據(用戶名)應用程序。我的問題是如何通過代碼來處理上述場景發生的重定向。 我嘗試過一次嘗試掛鉤servlet.service.events.pre動作,並在用戶訪問該頁面之前檢查他是否具有適當的權限,並實際更改他的請求。到目前爲止,我有一些問題,但我可以解決它們,但這種方法並不是我正在尋找的東西,因爲此操作在應用程序的每個請求之前執行(並且頁面處理只是該應用程序的一小部分)這意味着我將有大量的代碼無故執行。我想知道是否有任何方法可以添加異常將在我創建角色時重定向的位置?如果不是我應該鉤住什麼動作,這將幫助我解決這種情況,但無法通過掛鉤servlet.service.events.pre動作創建不需要的extrea流量?

回答

0

爲1.設置default.landing.page.path=/whereiwontittopoint在portal.properties,看到Liferay Login page redirect

爲2.創建一個鉤子,設置servlet.service.events.post=com.my.action.MyAction和impliment這個動作,在這一點上,你可以將用戶重定向到另一個頁面。

+1

你一定誤解了我。我爲第一個問題發佈的答案是如何設置不同的登錄頁面。我在問如何改變Liferay重定向到登錄的位置。我解決了那個問題,我犯了一個錯誤,應該使用auth.login.url =而不是我使用的那個。 –

+0

對於第二個問題,該行爲將在每一次生產中都極其昂貴的請求之後執行。當我定義一個自定義角色並將其添加到頁面時,我詢問是否有方法,如果我還可以定義什麼liferay將執行的操作,如果沒有獲得該角色的用戶嘗試訪問請求該角色的頁面。 –

+0

您可以嘗試覆蓋錯誤頁面事件'servlet.service.events.pre.error.page' – Mark

2

對於第二個東西有點哈克的方式可能是如下

1)定義設置要針對其在portal-ext.properties檢查的角色。您可以添加一些屬性,如my.super.secret。角色=角色名稱1,角色名稱2

2)在portal-ext.properties中爲重定向頁面url添加一個屬性,以便您可以在那裏重定向用戶。

3)爲Layout添加一個名爲的自定義屬性checkForSecretRoles它必須是布爾值,並且在頁面上可見。這將顯示每個頁面的管理頁面中的複選框,以便管理員可以輕鬆地檢查或取消選中值

4)在您的主題(portal_normal.vm)中添加條件以檢查頁面是否具有祕密角色,然後檢查用戶角色是否屬於portal-ext.properties中定義的任何角色。如果是,則發出重定向到您的自定義指定的頁面重定向頁面url屬性

1
  1. 關於第一個問題,它應該工作 -

    auth.forward.last.paths=/sign-in 
    

    登錄將頁面名稱

  2. 第二個問題的答案是,您必須創建一個Hook擴展操作,並在portal-ext.properties中創建以下條目。

    login.events.post=com.liferay.portal.events.LoginPostAction,com.liferay.portal.events.CustomLandingPageAction 
    

有很多的信息,您可以在論壇上有關如何使用此屬性中找到。

相關問題