メインコンテンツへスキップ
Delegated Admin - User ロールのユーザーはデフォルトで、そのAuth0アカウントに紐づけられたすべてのユーザーを表示できます。しかし、 フィルターフック を使うと、ユーザーに表示されるデータをフィルタリングすることができます。

フックコントラクト

  • ctx :コンテキストオブジェクト。
  • callback(error, query) :ユーザーをフィルタリングするときに使用する、エラーまたはluceneクエリを返すことができるコールバック。この拡張機能はこのクエリを** ユーザー取得** エンドポイントに送信します。
luceneクエリについて詳しくは、「ユーザー検索クエリ構文」を参照してください。

サンプルユースケース

財務部門を管理するKellyには、財務部門に所属するユーザーしか表示されるべきではありません。そこで、該当するユーザーと部門(この場合は、財務部門とKelly)に応じて全体のユーザーにフィルターをかけます。
function(ctx, callback) {
  // Get the department from the current user's metadata.
  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.'));
  }

  // The IT department can see all users.
  if (department === 'IT') {
    return callback();
  }

  // Return the lucene query.
  return callback(null, 'app_metadata.department:"' + department + '"');
}

検索エンジンのオーバーライド

デフォルトの検索エンジンは、応答で選択を指定することでオーバーライドできます。
// Return the lucene query.
return callback(null, { query: 'app_metadata.department:"' + department + '"', searchEngine: 'v2' });

注記

フィルタイリングする際には一重引用符、二重引用符、その他の特殊文字( +- など)は使用しないでください。使用するとLuceneクエリに問題が生じる可能性があります。 OR、NOT、ANDなどの複数の演算子を使用する場合は、それらの検索パラメーターを括弧[()]で囲み、どの演算子がどこで有効かを明確にしてください。 このフックを構成しないと、検索結果に すべてのユーザー が返されます。

もっと詳しく

I