委任管理:メンバーシップクエリフック

新しいユーザーの作成では、ユーザーインターフェイスにドロップダウンが表示され、ユーザーに割り当てるメンバーシップを選択することができます。これらのメンバーシップはメンバーシップクエリフックを使って定義されます。

フックコントラクト

  • ctx:コンテキストオブジェクトです。

  • callback(error, { createMemberships: true/false, memberships:}):エラーとメンバーシップ構成を含むオブジェクトを返すコールバックです。

使用例

IT部のユーザーは他の部署にユーザーを作成できなくてはなりません。他の部署のユーザーは自身の部署にのみユーザーを作成できなくてはなりません。

function(ctx, callback) {
  var currentDepartment = ctx.payload.user.app_metadata && ctx.payload.user.app_metadata.department;
  if (!currentDepartment || !currentDepartment.length) {
    return callback(null, [ ]);
  }

  if (currentDepartment === 'IT') {
    return callback(null, [ 'IT', 'HR', 'Finance', 'Marketing' ]);
  }

  return callback(null, [ ctx.payload.user.app_metadata.department ]);
}

Was this helpful?

/

注記

このクエリが使用できるのはUI内だけであるため、特定部署のユーザー割り当てにルールの実行が必要な場合には、書き込みフックを使用してメンバーシップを割り当てなければなりません。

メンバーシップのグループが1つだけの場合、UIに[Memberships(メンバーシップ)]フィールドは表示されません。

createMembershipsをtrueに設定すると、エンドユーザーがmembershipsフィールドに任意の値を入力できるようになります。

function(ctx, callback) {
  var currentDepartment = ctx.payload.user.app_metadata.department;
  if (!currentDepartment || !currentDepartment.length) {
    return callback(null, [ ]);
  }

  return callback(null, {
    createMemberships: ctx.payload.user.app_metadata.department === 'IT' ? true : false,
    memberships: [ ctx.payload.user.app_metadata.department ]
  });
}

Was this helpful?

/

もっと詳しく