2014-10-06 133 views
1

我創建了一個自定義常規角色,並將它插入到so-portlet(security-role-ref元素)的portlet.xml中,並且我還將其與liferay-portlet中的相應角色.XML。 但是,當用戶僅擁有此自定義常規角色時,將顯示一條錯誤消息「您沒有訪問此Portlet所需的角色」。 奇怪的是,這隻發生在用戶的個人網站上,任何其他網站用戶都能夠查看特定的portlet。Liferay 6.2 portlet自定義角色

有沒有人有這方面的想法?

+0

可以檢查設置/該特定Portlet實例的權限?這些設置覆蓋了門戶的權限和Portlet的默認權限 – yannicuLar 2014-10-06 13:04:45

+0

我正在使用社交辦公主題,在此主題中嵌入了所謂的portlet。默認情況下,在sidebar_portlets.vm中,portlet首選項設置爲這樣:$ velocityPortletPreferences.setValue(「displayStyle」,「0」) $ velocityPortletPreferences.setValue(「portletSetupShowBorders」,「false」) – jkonst 2014-10-06 13:26:29

+0

是否可以更改這些portlet權限(例如,哪些角色可以查看此portlet)programmaticaly? – jkonst 2014-10-06 14:19:46

回答

0

個人網站是一個私人網站,如果我記得不錯,所以我認爲你的用戶不是網站會員,查看私人網頁的必要條件。

+0

是的,但我的用戶實際上能夠查看此portlet所在的頁面,並且還可以在同一頁面上正常查看其他一些portlet。 – jkonst 2014-10-06 12:49:08

1

既然你有你的應用程序自定義常規角色,你應該修改默認的角色權限

  1. 日誌作爲管理員
  2. 轉到Control PanelRoles
  3. 找到自己的角色,並從Actions菜單在右側,選Define Permissions
  4. 從左側菜單中,找到您的應用程序
  5. 編輯您的權限。確保爲您的角色授予「查看」操作。您還可以允許它爲所有網站(默認),或者你可以選擇「用戶個人站點」 enter image description here

現在,如果你想爲一個特定的portlet實例異常(這就是我意味着我的問題,在評論),您可以:

  1. 登錄以管理員
  2. 導航到特定頁面,添加您的portlet實例。
  3. 啓用編輯控件,並編輯您的portlet(迷你菜單上的右上側,用扳手圖標)
  4. 選擇permissions,讓您的角色允許查看portlet
+0

你的回答是正確的,它應該適用於我的情況,但我所談論的portlet是在此應用程序列表中不可用的so-portlet [user_bar,sites-port-portlet中的2個不同portlet]因爲它在每個網站頁面左側邊欄的「添加應用程序」列表中也不可用。 – jkonst 2014-10-07 08:33:58

相關問題