設問
標準リードコントローラを使用してカスタム Visualforce ページに項目レベルのセキュリティを確実に適用するには、アーキテクトは何をすべきですか?
選択肢
A. 標準リード コントローラで「共有あり」キーワードを使用します。
B. 何もありません。フィールドレベルのセキュリティは自動的に適用されます。
C. {!Schema.sObjectType.Lead.fields.isAccessible()} 式を使用します。
D. Schema.SObject.Lead.isAccessible() メソッドを使用します。
解答
B. 何もありません。フィールドレベルのセキュリティは自動的に適用されます。
解説
A. 標準リード コントローラで「共有あり」キーワードを使用します。
不正解です。「共有あり」はレコードレベルの共有(例:レコードが閲覧・編集できるか)に関するもので、項目単位の可視性(FLS)には影響しません。FLSの制御とは別次元の話であり、ここでは無関係です。
B. 何もありません。フィールドレベルのセキュリティは自動的に適用されます。
正解です。標準コントローラ使用時は、Salesforceプラットフォームが内部的にFLSチェックを自動適用します。開発者が個別にフィールド可視性を確認したり、条件分岐を設ける必要は一切ありません。
C. {!Schema.sObjectType.Lead.fields.isAccessible()} 式を使用します。
不正解です。この式はカスタムコントローラや拡張コントローラを使っている場合に必要です。標準コントローラではFLSは自動適用されるため、このような式による手動チェックは不要です。
D. Schema.SObject.Lead.isAccessible() メソッドを使用します。
不正解です。これはApexコード内でオブジェクトレベルアクセス(たとえばクエリ実行時)を確認するためのメソッドであり、フィールドレベルのセキュリティチェックとは直接関係がありません。また、Visualforce側でこのメソッドを使うべきではありません。
第94問
こちらをクリック