🏢 組織バリデーターブロック
組織バリデーターブロックは、Nodeblocksアプリケーションにおける組織関連操作のための検証機能を提供します。これらのバリデーターは、組織管理とメンバーシップ操作のための適切なアクセス制御とデータ検証を確保します。
🎯 概要
組織バリデーターブロックは以下を目的として設計されています:
- メンバーシップと権限に基づく組織アクセスの検証
- 役割ベースのアクセス制御による適切な組織管理の確保
- 組織メンバーシップ検証のサポート
- 安全な操作のための組織固有の検証ロジックの処理
- 組織ワークフローのための再利用可能な検証の提供
📋 組織バリデーター種類
アクセス制御バリデーター
組織リソースに対するユーザー権限をチェックするバリデーター。
🔧 利用可能な組織バリデーター
validateOrganizationAccess
許可されたサブジェクトとトークン情報に基づいて組織アクセスを検証します。
目的: ユーザーが適切な組織メンバーシップと権限を持つことを確保
パラメータ:
allowedSubjects
:string[]
- 許可されたユーザータイプ/サブジェクトの配列authenticate
:Authenticator
- 認証機能(オプション、デフォルトはgetBearerTokenInfo)payload
:RouteHandlerPayload
- リクエストコンテキストとデータを含む
戻り値: void
- ユーザーが適切な権限を持つ場合は通過
スロー:
- NodeblocksError (401) メッセージ「App token is not valid」または「User token is not valid」(無効なトークン用)
- NodeblocksError (404) メッセージ「Organization not found」(組織が存在しない場合)
- NodeblocksError (403) メッセージ「Organization has no users」(ユーザーのない組織用)
- NodeblocksError (403) メッセージ「User does not belong to this organization」(非メンバー用)
- NodeblocksError (403) メッセージ「User is not authorized to access this organization」(不正アクセス用)
- NodeblocksError (401) メッセージ「Token does not have a valid access type」(無効なトークンタイプ用)
サポートされるサブジェクト:
'admin'
- 管理者アクセス'member'
- 組織メンバーアクセス'owner'
- 組織所有者アクセス
組織IDソース(順序で確認):
payload.context.data.organizationId
payload.params.requestParams.organizationId
payload.params.requestQuery.organizationId
payload.params.requestBody.organizationId
ユーザー役割設定(デフォルト):
{
admin: 'admin',
member: 'member',
owner: 'owner'
}
アクセスロジック:
- アプリトークン: appIdが有効な場合は常に通過
- ユーザートークン:
- 組織の存在を検証
- 組織にユーザーがいることを検証
- ユーザーが組織に属することを検証
- ユーザー役割が許可されたサブジェクトと一致することを検証
- アクセスが許可されるには少なくとも1つのサブジェクトが一致する必要がある
使用方法:
import { validators } from '@nodeblocks/backend-sdk';
const { validateOrganizationAccess } = validators;
// 組織メンバーアクセス
compose(validateOrganizationAccess(['member']), organizationHandler);
// 組織所有者または管理者アクセス
compose(validateOrganizationAccess(['owner', 'admin']), organizationHandler);
// 組織の全メンバー(任意の役割)
compose(validateOrganizationAccess(['owner', 'admin', 'member']), organizationHandler);
📋 検証フロー
メンバーシップ検証
- トークンの有効性を確認
- 組織の存在を検証
- 組織ユーザーリストの存在を確認
- ユーザーメンバーシップを検証
- ユーザー役割権限を評価
役割ベースアクセス
組織バリデーターは階層的役割システムをサポートします:
- Owner: 完全な組織制御
- Admin: 管理業務とメンバー管理
- Member: 基本的な組織アクセス
エラー処理
すべての検証エラーは適切なHTTPステータスコードとメッセージを含みます。
🔗 関連ドキュメント
- 組織スキーマブロック - 組織データ検証と契約
- 組織ハンドラーブロック - 組織ビジネスロジック関数
- 組織ルートブロック - 組織HTTPエンドポイント定義
- 組織フィーチャーブロック - 組織コンポーズ機能