我有幾個自定義實體。有兩個用戶:user1
和user2
。如何限制訪問MS Dynamics CRM實體列表中的特定項目
對於一個實體類型,我在列表中有2個項目。
我只需要顯示user1
只有一個項目,並且只需要user2
。
我試圖通過共享對話框來管理權限,但它只能限制寫入權限,但我需要從列表視圖中隱藏項目。
我該怎麼做?
我有幾個自定義實體。有兩個用戶:user1
和user2
。如何限制訪問MS Dynamics CRM實體列表中的特定項目
對於一個實體類型,我在列表中有2個項目。
我只需要顯示user1
只有一個項目,並且只需要user2
。
我試圖通過共享對話框來管理權限,但它只能限制寫入權限,但我需要從列表視圖中隱藏項目。
我該怎麼做?
CRM的安全模式限制訪問記錄使用安全角色。您可以使用「本地讀取」權限設置自定義實體,該權限僅允許用戶訪問自己讀取的記錄。
然後User1將擁有Record1,而User2擁有Record2。
或者,您也可以考慮擁有業務單位層次結構,該業務單元層次結構還會細分數據的可見性。
查看How role-based security can be used to control access to entities in Microsoft Dynamics CRM和The security model of Microsoft Dynamics CRM瞭解更多信息。
你可以用兩個Solution來做這個功能。
解決方案1:使用現場安全配置文件,在此解決方案中,您必須在字段定製中啓用字段安全選項,然後轉到定製>定製系統>字段安全配置文件,然後您可以看到您的字段啓用字段安全選項,然後單擊新建按鈕並選擇用戶1,然後選擇所需的權限選項,在讀取字段1的更新創建和字段2和用戶2的相同。(注意:此選項僅適用於用戶避難所管理員安全角色。)
解決方案2:您可以使用Javascript並處理此操作客戶端。首先你必須去形成自定義並添加新的庫並添加此代碼。
function onload()
{
checkUser();
}
function checkUser()
{
var userID = Xrm.Page.context.getUserId();
if(userID == "user1 id")
{
Xrm.Page.getControl("field1").setVisible(true);
Xrm.Page.getControl("field2").setVisible(false);
}
else if(userID == "user2 id")
{
Xrm.Page.getControl("field1").setVisible(false);
Xrm.Page.getControl("field2").setVisible(true);
}
}
,然後在加載事件的形式調用的onload功能,在和所有的東西是偉大的:)
我希望你的問題解決了:)