1. セキュリティ フェーズのスクリプト

アクション スクリプトの例 (セキュリティ フェーズ)

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

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

以下に、セキュリティ フェーズ (処理中) のトリガーによって実行されるアクション スクリプトの例を示します。 このスクリプトは、Web タイプのアセットを作成または変更しようとしているユーザーが正しいセキュリティ グループに属しているかどうかを検証します。

ユース ケース

  1. ユーザーがアセットを作成または変更します。
  2. アセット タイプが Web の場合、このユーザーが Web エージェンシー ユーザー ユーザー グループ (この例のために作成されたユーザー グループ) に属しているかどうかがスクリプトによってチェックされます。
  3. ユーザーが正しいユーザー グループに属していない場合は、例外がスローされます。

前提条件

Web は、M.AssetType の既定のタイプではありません。 必要に応じて作成する必要があります。

  • [管理] に移動して [タクソノミー] を選択します。

  • [M.Asset] を検索します。

    タクソノミー上の M.AssetType

  • [+] をクリックして、M.AssetType タクソノミーに新しいクラスを追加します。

    M.AssetType タクソノミーに新しいクラスを追加します。

  • 新しいアイテムのラベルとして「Web」と入力します。

    M.AssetType タクソノミーの新しいクラスとして Web を追加する

  • [保存] をクリックして、新しいアセット タイプの WebM.AssetType タクソノミーに追加します。

スクリプト

var loadConfig = new EntityLoadConfiguration
{
    CultureLoadOption = CultureLoadOption.None,
    RelationLoadOption = new RelationLoadOption("UserGroupToUser"),
    PropertyLoadOption = PropertyLoadOption.None
};

var user = await MClient.Entities.GetAsync(Context.TriggeringUserId.Value, loadConfig);
if (user == null) throw new InvalidOperationException("Triggering user could not be found.");

var webAgencyGroup = await MClient.Users.GetUserGroupAsync("Web agency users");
if (webAgencyGroup == null) throw new InvalidOperationException("Web agency usergroup not found.");

var userGroups = await user.GetRelationAsync<IChildToManyParentsRelation>("UserGroupToUser");

if (!userGroups.Parents.Contains(webAgencyGroup.Id.Value))
{
    throw new ForbiddenException("Only users of usergroup 'Web agency users' are allowed to create or modify assets of image-type 'Web'.");
}

スクリプトの説明

  1. このエンティティとともに読み込むプロパティを指定する EntityLoadConfiguration オブジェクトを作成します。
この記事を改善するための提案がある場合は、 お知らせください!