2013-08-19 29 views
2

我有一種情況,我想要使用現場安全性,但只有當記錄上的屬性爲特定值時纔會使用。該實體是聯繫人,並且有一個稱爲VIP的屬性。當用戶打開該記錄並且VIP值爲true並且他們不在VIP團隊中時,則用戶不能看到標記爲字段安全性的字段。基於屬性值的CRM 2011現場安全性

是否可以編寫一個插件來做到這一點,或者是否有更好的解決方案?

+0

如果用戶打開記​​錄並且VIP是假的,該怎麼辦? – Bvrce

+0

他們可以打開記錄並查看所有字段。如果這是真的,只有有權訪問的人才能看到標記的字段。我想我可能已經得到安全角色和團隊混合。現場安全只適用於團隊嗎? –

+0

現場安全只適用於自定義實體,並不限於團隊。它只是VIP區域將被顯示或隱藏?根據我的理解,用戶將能夠根據字段是否可見來推斷聯繫人是否爲VIP;所以在這種情況下我沒有看到現場級安全。 JavaScript將是一個顯示/隱藏字段的簡單選項,但字段仍然是「只」隱藏。 – Bvrce

回答

2

您可以連接到表單的onLoad事件並檢查用戶的團隊和VIP字段並相應地顯示其他字段。

不知道是否有一個更簡單的方式來獲得球隊,一個OData的要求將是一種選擇: http://msdn.microsoft.com/en-us/library/gg334767.aspx

命令應該是這樣的:

var userid = Xrm.Page.context.getUserId(); 
var cmd = "/TeamMembershipSet?$select=TeamId&$filter=SystemUserId eq guid'" + userid + "'"; 

要設置字段的知名度,有看看這個鏈接: http://danielbergsten.wordpress.com/2011/02/15/crm-2011-javascript-for-hiding-a-field-based-on-another-fields-value/

+0

謝謝!那麼,爲了做到這一點,OData請求可以使用SDK 2011 SDK中的SDK.REST.js,還是使用SDK.JQuery.js?代碼將調用該命令是什麼? –

+0

看看發佈的MSDN鏈接,它列出了一些例子,例如http://msdn.microsoft.com/en-us/library/gg985387.aspx – pat

0

這可以用role based forms來解決。

  • 創建的VIP團隊
  • 一種新的形式選擇新的形式與基於角色的形式結合
  • 字段級安全的安全角色是一個好主意,如果貴賓場應該永遠不會被較低特權的用戶訪問;即使通過訪問數據的報告和其他方法。由於它們完全獨立於安全角色,因此管理現場級安全配置文件的工作量更大;他們被分配給用戶或團隊。

    +0

    這不是解決問題。當VIP值爲true且用戶不屬於VIP團隊時,我想禁用單獨字段的讀取權限(讓我們稱之爲我最喜歡的顏色)。如果VIP值爲false,則任何人都可以看到我最喜歡的顏色字段的值。 –

    0

    對我來說,你,管理員,必須是現場級安全角色的成員。

    我也不得不重新啓動IIS/CRM網站來咬它。