1. Cloud development

ユーザー登録後スクリプト

日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

この例は、新規ユーザーがSitecore Content Hubに追加された後に実行される ユーザー登録後 ウェブスクリプトを示しています。外部プロバイダーがGoogleの場合、そのユーザーを特定のユーザーグループに追加します。

!注始める前に

  • 事前登録プロセスで必要なユーザーグループやプロファイルを設定してください。

  • Googleというユーザーグループを作成しましょう。

  • 事前登録ワークフローのスクリプトロジックとスキーマプロパティが一致していることを確認してください。

文字

using System.Linq;

if (Context.ExternalUserInfo?.Provider != "Google") return;

var query = Query.CreateQuery(entities => from e in entities where e.DefinitionName == "Usergroup" && e.Property("GroupName") == "Google" select e);

var googleGroupId = await MClient.Querying.SingleIdAsync(query); if (!googleGroupId.HasValue) throw new InvalidOperationException("Google usergroup not found.");

var relation = await Context.User.GetRelationAsync("UserGroupToUser"); relation.Parents.Add(googleGroupId.Value);

await MClient.Entities.SaveAsync(Context.User);

脚本の説明

このセクションでは、スクリプトを実行順に順に進め、各パートについて説明します。番号付きの項目はシーケンスを記述しており、実行命令ではありません。

  1. 必要なライブラリも含めてください。

    using System.Linq;

  2. 外部ユーザープロバイダーを確認してください。プロバイダーがGoogleしていなければ、スクリプトは終了します。

    if (Context.ExternalUserInfo?.Provider != "Google") return;

  3. Googleユーザーグループを取得するクエリを作成します。

    var query = Query.CreateQuery(entities => from e in entities where e.DefinitionName == "Usergroup" && e.Property("GroupName") == "Google" select e);

  4. クエリを実行してGoogleグループIDを取得します。

    var googleGroupId = await MClient.Querying.SingleIdAsync(query);

  5. ユーザーグループが見つからない場合は、InvalidOperationExceptionを投げてください。

    if (!googleGroupId.HasValue) throw new InvalidOperationException("Google usergroup not found.");

  6. ユーザーのユーザーグループの関係を取得しましょう。

    var relation = await Context.User.GetRelationAsync("UserGroupToUser");

  7. ユーザーグループ関係を通じてGoogleグループをユーザーのオブジェクトに追加します。

    relation.Parents.Add(googleGroupId.Value);

  8. ユーザーエンティティを保存してください。

    await MClient.Entities.SaveAsync(Context.User);

セットアップ

  • ユーザー登録後スクリプトを作成、公開、有効化します。
この記事を改善するための提案がある場合は、 お知らせください!