オブジェクトの親のユーザー許可レベルをクエリしますか?
-
29-10-2019 - |
質問
私は機会にマスターデテールを備えたカスタムオブジェクトを持っています。このカスタムオブジェクトを照会するときに、ユーザーがアクセス/読み取り/書き込みアクセスを読み取っているかどうかを判断する方法はありますか?
私のニーズを明確にするために、私は自分のページ(非ビジュアルフォース)をレコードに明確に区別して、編集することができるレコードとレコードを明確に区別する方法を探しています。
解決
ユーザーは、機会に対して持っているのと同じアクセスになります。 Profile
オブジェクトは権限を公開しますが、オブジェクトのCRUD設定について知ることができないようです。
統合作品を作成していますか、それともVisualForceを使用していますか? VisualForceを使用している場合、インターフェイスはセキュリティコントロールを自動的に尊重し、使用することが許可されていないデータを隠し、使用するときにフィールドを読み取ることができます <apex:inputField>
彼らがフィールドに手紙を書く許可がない場合。
**編集**誰かがより良い解決策を持っているかもしれませんが、クエリのレコードを更新し、それぞれが成功か失敗かを保存し、それを使用してインターフェイスを制御しようとするのはどうですか?少しハック、他に何か見つけたら、必ず更新します。
** 2012年1月25日編集**これに出会ったばかりです: http://www.salesforce.com/us/developer/docs/api/index_left.htm#starttopic=content/sforce_api_objects_userrecordaccess.htm?searchtype = system
それがあなたが必要とするものを正確に与えることをかなり確信しています!
他のヒント
これにはあなたの質問に対する答えが含まれているかもしれません http://salesforceblogger.blogspot.com/2012/04/query-user-access-level-in-apex.html
API 24.0で公開されているUserrecordAccessテーブルがあります。
アクセスのレベルを見つけるためにクエリする方法はわかりませんが、Apexクラスが共有キーワードを使用する場合、オブジェクトの共有を尊重します。キャッチできます。
共有で使用していない場合、Apexは共有モデルを尊重せず、技術的にはユーザーがアクセスできなくてもデータを更新できます。
VisualForceを使用している場合、laceysnrが指摘したように <apex:inputfield>
要素は、読み取りのアクセスのみがある場合、ユーザーに自動的に読み取り専用を表示します。