> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Delegated Administration Extension で Filter Hook を使用する方法を説明します。

# Delegated Administration: Filter Hook

デフォルトでは、**Delegated Admin - User** ロールを持つユーザーには、Auth0 アカウントに関連付けられたすべてのユーザーが表示されます。ただし、**Filter Hook** を使用して、ユーザーに表示されるデータを絞り込むことができます。

<div id="hook-contract">
  ## Hook の仕様
</div>

* **ctx**: コンテキストオブジェクト。
* **callback(error, query)**: エラー、またはユーザーの絞り込みに使用する lucene クエリを返すためのコールバック。拡張機能はこのクエリを、<Tooltip tip="Management API: お客様が管理タスクを実行できるようにする製品。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Management+API">Management API</Tooltip> の [**Get Users** エンドポイント](https://auth0.com/docs/api/management/v2#!/Users/get_users) に送信します。

lucene クエリの詳細については、[User Search Query Syntax](/docs/ja-jp/manage-users/user-search/user-search-query-syntax) を参照してください。

<div id="sample-use">
  ### 使用例
</div>

Kelly が Finance 部門を管理している場合、表示されるのは同じ Finance 部門に属するユーザーだけであるべきです。この場合、現在のユーザーは Kelly で、その所属部門は Finance 部門なので、現在のユーザーの部門に基づいてユーザーを絞り込みます。

```javascript lines theme={null}
function(ctx, callback) {
  // 現在のユーザーのメタデータから部署を取得する。
  var department = ctx.request.user.app_metadata && ctx.request.user.app_metadata.department;
  if (!department || !department.length) {
    return callback(new Error('The current user is not part of any department.'));
  }

  // IT部門はすべてのユーザーを閲覧できる。
  if (department === 'IT') {
    return callback();
  }

  // Luceneクエリを返す。
  return callback(null, 'app_metadata.department:"' + department + '"');
}
```

<div id="search-engine-override">
  ### 検索エンジンのオーバーライド
</div>

レスポンスで使用する検索エンジンを指定することで、既定の検索エンジンをオーバーライドできます。

```javascript lines theme={null}
// luceneクエリを返す。
return callback(null, { query: 'app_metadata.department:"' + department + '"', searchEngine: 'v2' });
```

<div id="notes">
  ## 注意
</div>

絞り込みに使用するタームには、シングルクォート、ダブルクォート、その他の特殊文字 (**+** や **-** など) を使用しないでください。Lucene クエリで問題が発生する可能性があります。

OR、NOT、AND などの演算子を複数使用する場合は、どの演算子がどこに適用されるかを明確にするため、それらの検索パラメーターを丸括弧 \[`()`] で囲んでください。

この Hook を設定しない場合、検索では**すべてのユーザー**が返されます。

<div id="learn-more">
  ## 詳しくはこちら
</div>

* [Delegated Administration: Access Hook](/docs/ja-jp/customize/extensions/delegated-administration-extension/delegated-administration-hooks/delegated-administration-access-hook)
* [Delegated Administration: メンバーシップ クエリ Hook](/docs/ja-jp/customize/extensions/delegated-administration-extension/delegated-administration-hooks/delegated-administration-memberships-query-hook)
* [Delegated Administration: 設定クエリ Hook](/docs/ja-jp/customize/extensions/delegated-administration-extension/delegated-administration-hooks/delegated-administration-settings-query-hook)
* [Delegated Administration: Write Hook](/docs/ja-jp/customize/extensions/delegated-administration-extension/delegated-administration-hooks/delegated-administration-write-hook)
