✅ プロダクトバリデーター
プロダクトルートは、以下の共通バリデーターファクトリーを組み合わせます。各ファクトリーは、ルートパイプラインの実行前に注入されたルートペイロード/コンテキストを使用します。
一覧
詳細
isAuthenticated()
実装
シグネチャ: isAuthenticated(): Validator。isAuthenticated() として呼び出され、context.authenticate(payload) を実行します。アダプターが注入されない場合のデフォルトは getBearerTokenInfo です。プロダクトサービスは、省略された authMode または 'bearer' に Bearer 認証を、'cookie' には Cookie 認証を注入します。Cookie モードにはホスト側の Cookie 解析が必要です。無効または欠落した認証は 401 として報告されます。
利用箇所: createProductRoute、createProductBatchRoute、updateProductBatchRoute、deleteProductBatchRoute、updateProductRoute、deleteProductRoute、copyProductRoute、copyProductBatchRoute、getProductImageUploadUrlRoute、createProductImageRoute、deleteProductImageRoute、createProductVariantRoute、getProductVariantRoute、updateProductVariantRoute、deleteProductVariantRoute、createProductVariantBulkRoute、updateProductVariantBulkRoute、deleteProductVariantBulkRoute、findProductsByOrganizationIdRoute、getProductLikersRoute。
checkIdentityType(['admin'])
実装
シグネチャ: checkIdentityType(['admin']): Validator。すべてのプロダクト利用箇所は checkIdentityType(['admin']) を呼び出します。context.db.identities と configuration.identity.typeIds を必要とし、ペイロードを認証してトークンのアイデンティティを読み込み、その typeId を configuration.identity.typeIds.admin と比較します。依存関係の欠落には 500、無効なユーザーアクセストークンには 401、アイデンティティ検索・タイプ欠落・認可失敗には 403 をスローします。
利用箇所: createProductRoute、createProductBatchRoute、updateProductBatchRoute、deleteProductBatchRoute、updateProductRoute、deleteProductRoute、copyProductRoute、copyProductBatchRoute、getProductImageUploadUrlRoute、createProductImageRoute、deleteProductImageRoute、createProductVariantRoute、updateProductVariantRoute、deleteProductVariantRoute、createProductVariantBulkRoute、updateProductVariantBulkRoute、deleteProductVariantBulkRoute、getProductLikersRoute。
hasOrgRole
実装
プロダクトルートは hasOrgRole(['owner', 'admin', 'member'], ['params', 'requestParams', 'organizationId']) を呼び出します。ペイロードを認証し、その組織を読み込み、呼び出し元のメンバーシップロールを configuration.organization.roles と比較します。ルートでは checkIdentityType ではなく isAuthenticated() に続いて実行されます。データベース/構成の欠落には 500、無効なトークンには 401、組織 ID 欠落には 400、検索・メンバーシップ・ロールの失敗には 403 をスローします。