【Trailhead】項目レベルとオブジェクトレベルのセキュリティや安全なナビゲーション演算子を使ってみる

スポンサーリンク
項目レベルとオブジェクトレベルのセキュリティや安全なナビゲーション演算子を使ってみる Salesforce

こんにちは、にいるです。

今日は、Trailheadのモジュール「項目レベルとオブジェクトレベルのセキュリティや安全なナビゲーション演算子を使ってみる」について、チャレンジ内容をまとめておきます。

2021/12/10までの更新期限なので、お忘れなく!

【Trailhead】項目レベルとオブジェクトレベルのセキュリティや安全なナビゲーション演算子を使ってみる

1.【Trailhead】項目レベルとオブジェクトレベルのセキュリティや安全なナビゲーション演算子を使ってみる

このモジュールはデベロッパー資格の更新のために必要なモジュールです。

新機能の紹介も含まれているので、Salesforceデベロッパーの方はやっておきましょう。

2.チャレンジ内容

ではチャレンジ内容を見ていきます。

■英語

Enforce Field and Object Level Security and Use the Safe Navigation Operator in Apex
Simplify your code by using the Security.stripInaccessible method in the Apex class. Also catch any null references using the Safe Navigation operator.

Note: Complete the necessary setup configuration in the Unit text prior to the hands-on challenge section.
Create a new Apex class
Name: ApexSecurityRest
Copy and paste the ApexSecurityRest code provided above.
Use the Security.stripInaccessible method logic to process the results. Remove fields that the user does not have Read access to.
Remove the redundant object- and field-level access checks for Name and Top_Secret. Note: Delete the unneeded code rather than commenting it out.
Apply the Safe Navigation operator functionality to Account in order to avoid null references.

■日本語

フィールドおよびオブジェクトレベルのセキュリティを実施し、Apexで安全なナビゲーション演算子を使用する
ApexクラスのSecurity.stripInaccessibleメソッドを使用して、コードを簡略化します。 また、SafeNavigation演算子を使用してnull参照をキャッチします。

注:ハンズオンチャレンジセクションの前に、ユニットテキストで必要なセットアップ構成を完了してください。
新しいApexクラスを作成します
名前:ApexSecurityRest
上記のApexSecurityRestコードをコピーして貼り付けます。
Security.stripInaccessibleメソッドロジックを使用して結果を処理します。 ユーザーが読み取りアクセス権を持っていないフィールドを削除します。
NameおよびTop_Secretの冗長なオブジェクトレベルおよびフィールドレベルのアクセスチェックを削除します。 注:コメントアウトするのではなく、不要なコードを削除してください。
null参照を回避するために、SafeNavigation演算子機能をアカウントに適用します。

2.解答

まず最初に取引先責任者にカスタム項目を作成します。

2-1.項目作成

デベロッパー資格の更新

作成した項目は標準ユーザプロファイルには見えないよう[参照可能]のチェックボックスをオフにしておきます。

デベロッパー資格の更新

2-2.Apexコード

バッジもGetしました。

デベロッパー試験の更新

3.エラー

エラーにひっかかったので3つ残しておきます。

3-1.Security.StripInaccessibleの機能

■英語

Your Apex code must contain Security.stripInaccessible with the correct access type in the results processing. Please review the original code beginning on line 14 and recheck the results processing logic in your code.

■日本語

Apexコードには、結果処理で正しいアクセスタイプのSecurity.stripInaccessibleが含まれている必要があります。 14行目から始まる元のコードを確認し、コードの結果処理ロジックを再確認してください。

3-2.安全なナビゲーション演算子の機能

■英語

The correct Safe Navigation logic was not found. Your Apex code should use the Safe Navigation operator to check for null values for Account Name. Please review line 18 of the original code and recheck your code for the Safe Navigation operator.

■日本語

正しいセーフナビゲーションロジックが見つかりませんでした。 Apexコードは、Safe Navigation演算子を使用して、アカウント名のnull値をチェックする必要があります。 元のコードの18行目を確認し、SafeNavigationオペレーターのコードを再確認してください。

3-3.schemaクラスのアクセスチェックはいらないよ

■英語

Your Apex code still contains field-level access checks that are redundant now that you’ve added Security.stripInaccessible. Review the original code beginning on line 10 and then double-check your code. Ensure that you delete the redundant code, rather than commenting it out.

■日本語

Apexコードには、Security.stripInaccessibleを追加したため、冗長なフィールドレベルのアクセスチェックが含まれています。 10行目から始まる元のコードを確認してから、コードを再確認してください。 コメントアウトするのではなく、冗長なコードを必ず削除してください。

4.まとめ

いかがでしたでしょうか。

このTrailheadは資格更新のために必要な資格です。

アクセスチェックの簡素化はすごくいいですね。
このモジュールでは3行もつらつらと書いてありましたが、引数3つ指定すればSecurity.stripInaccessibleの1行だけになりますね。

安全なナビゲーション演算子もすごく便利だと思います。

皆さんもぜひ色々と試してみてください。
他にも色々と標準機能やSalesforce機能について紹介していますので、ご覧ください。

ではでは!

Salesforce 機能別 まとめページ

コメント

タイトルとURLをコピーしました