2014-04-21 88 views
0

我想根據登錄的用戶隱藏導航組件中的頁面。我有兩種方法。在CRX-DE頁面的節點上設置權限;拒絕所有用戶使用;然後允許它爲特定的組。我一直在嘗試;沒有找到太大的成功。其他;我可以在jsp中根據用戶組獲得登錄用戶的ID;我可以設置頁面的屬性'隱藏在導航中'。但我無法找到如何在jsp中設置該屬性。請建議。如何根據CQ5中的登錄用戶隱藏頁面?

編輯: 我使用的是默認的身份驗證。我想在默認的'list'組件中隱藏一個導航頁面。如果我使用CUG;屬於該組的用戶仍然能夠在列表組件中看到特定頁面的鏈接;並要求登錄點擊該頁面。我想要鏈接本身隱藏,如果用戶屬於一個特定的組 謝謝。

回答

0

我同意ryanluka,當問題可以通過更簡單的方法解決時,應該避免爲JCR權限。我修改了默認列表組件的list.jsp。使用Userpropertiesutil提取登錄用戶的ID;並以該團體爲基礎;在jQuery中編寫代碼以從列表組件中刪除特定頁面的div。

+0

嗨,我也面臨同樣的問題。我有一個處理程序,我正在從視覺上的html組件調用該處理程序的方法。現在在處理程序中,我想知道登錄用戶的ID但不知道如何。任何想法我怎麼能得到那個? – samir

+0

您可以在處理程序類中使用jackrabbit api獲取登錄用戶的ID;通過調整resourceResolver到會話。參考這個問題http://stackoverflow.com/questions/22549502/how-to-get-the-cq5-userinfo-in-java-or-jsp-by-using-jackrabbit – user2776643

0

如果您在AEM中使用默認身份驗證功能(如Geometrixx),這依賴於AEM中存在的用戶,則可以使用「封閉用戶組」。 CUG允許您設置哪些用戶或組可以查看或不能查看特定頁面。您可以在每個頁面的頁面屬性對話框中看到在哪裏設置CUG。我很確定CUG設置也沿着頁面層次結構繼承。

爲此使用JCR權限是一件更復雜的事情,因爲它是如此低層次的架構。但是,對於更復雜的解決方案,有時候這是解決方案的必要部分。

+0

感謝您的回覆。如果我不夠清楚,請聯繫我。我正在使用默認身份驗證。我想在默認的「列表」組件中隱藏導航頁面。如果我使用CUG;屬於該組的用戶仍然能夠在列表組件中看到特定頁面的鏈接;並且會在點擊該頁面時被要求登錄。如果用戶屬於特定組,我希望鏈接本身被隱藏。我通過從用戶/組管理控制檯拒絕該頁面對特定組的許可來實現它。 – user2776643

+0

現在;如果登錄的用戶來自該組;該頁面不會出現在列表組件的導航欄中。請提供建議/反饋/意見。謝謝。 – user2776643

相關問題