2016-07-31 10 views
0

私はいくつかのカスタムエンティティを持っています。 2人のユーザー:user1user2があります。MS Dynamics CRMのエンティティリストの特定のアイテムへのアクセスを制限する方法

1つのエンティティタイプでは、リストに2つのアイテムがあります。

user1の項目は1つだけ表示し、user2の項目は1つだけ表示する必要があります。

共有ダイアログでアクセス許可を管理しようとしましたが、書き込み権限のみを制限できますが、リストビューから項目を非表示にする必要があります。

どうすればいいですか?

答えて

2

CRMセキュリティモデルの限界が記録へのアクセスに解決を望む素晴らしい:)

ですセキュリティロールを使用します。カスタムエンティティはローカル読取りの特権で設定できます。ローカル読取りの特権は、ユーザーが所有するレコードを読み取るためのアクセス権だけです。

User1はRecord1を所有し、User2はRecord2を所有します。

また、データの可視性をセグメント化するビジネスユニットの階層を検討することもできます。

詳細については、How role-based security can be used to control access to entities in Microsoft Dynamics CRMThe security model of Microsoft Dynamics CRMをご覧ください。

1

この機能は2つのソリューションで実行できます。

解決策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); 
    } 
} 

、その後、loadイベントの形でのonload関数を呼び出すとオーバーとすべてのものは、私はあなたの問題は:)

関連する問題