2013-03-13 32 views
0

我正在嘗試添加自定義權限,特定於使用ServiceBuilder構建的自定義模型(請參閱resource-actions/default.xml中的以下摘錄)。我的portlet已經部署,正在使用中。將操作鍵添加到現有模型權限

我有這方面的兩個問題:

  1. 我想我將不得不重新創建相應的資源的升級方法讓自己的新行動的主要考慮。是這樣嗎 ?
  2. 如果我必須再次爲我的所有模型實例添加資源,以前分配的權限是否會保留?

最好的問候, 阿蘭


的資源行動default.xml中的文件解壓:

<permissions> 
     <supports> 
      <action-key>VIEW</action-key> 
      <action-key>DELETE</action-key> 
          ... 
      <action-key>NEW_CUSTOM_PERMISSION</action-key> 
     </supports> 
        ... 
    </permissions> 
+0

我很樂意提供幫助,但我真的無法理解您的問題。你可以嘗試多解釋一下你的兩個問題嗎? – yannicuLar 2013-03-14 14:50:09

+0

我創建了一個Project實例,並在其上設置了標準操作(view,delete,assign_members,...)。我現在想添加一個新的actionKey來設置招聘權限,與assign_members不同。如果我在resource-actions/project.xml中添加此actionKey,我會在角色權限定義中看到action.RECRUIT上的新條目,並且我可以將權限分配給該角色。我不知道這是否是我需要做的(似乎有效)。我不確定資源創建(對ResourceLocalServiceUtil.addResources的調用)是否取決於在調用時定義的操作鍵。希望澄清。 – 2013-03-14 15:54:28

回答

1

在許可制度的邏輯是角色 - >操作鍵 - >資源

'Action-keys - > Resources'在您的Portlet的業務邏輯中定義,並將隨其攜帶其他頁面或門戶實例。通過這種方式,您可以控制資源(頁面,模型,服務構建器實體等)如何通過公開的操作鍵來控制portlet的每個實例。

的「角色 - >動作 - 鍵」的關係在2種方式可以爲同一個portlet的情況有所不同:

  1. 通過分配角色動作鍵(從管理員的控制面板),你完全可以使用您部署Portlet的特定門戶的不同角色。這樣,您還可以定義該門戶網站每個頁面中將遵循的一些最小/默認權限。對於Expamle,在門戶P1中,角色R1中的所有用戶都可以執行操作A1,而在門戶P2中,使用權限表時沒有任何角色R1都可以使用
  2. ,您可以優化或覆蓋上述權限,並賦予不同的權限對放置在同一門戶的不同頁面中的實例的權限。例如,角色R1中的用戶在頁面p1中可以執行操作,而在另一頁面p2上,他們不能操作

您可以將操作鍵想象爲資源和角色之間的中間層,抽象創建角色與資源綁定的完美組合

+0

感謝您的回答......如果我理解邏輯,如果我只是添加一個新的actionKey,沒有理由爲所有現有項目調用addResources。在我的新操作Key和資源或角色之間沒有映射,因此除非我將操作鍵分配給角色(範圍組 - 模板或公司)或直到我分配爲止,否則任何人(除omniadmin外)都將具有招聘權限對特定實體實例的特定角色的許可。那是對的嗎 ? – 2013-03-14 22:08:49

+0

幾乎在那裏。 amniadmin確實將角色分配給操作鍵。但是resource-actionKey映射在portlet中完成。內容管理器將不知道資源,只有actionKeys – yannicuLar 2013-03-14 23:27:24

+0

明白了。謝謝! – 2013-03-15 06:16:06