Hook の仕様
-
ctx: コンテキスト オブジェクト。
- request.user: 現在ログインしているユーザー。
- locale: ロケール (URL から推測) —
https://{yourTenant}.us.webtask.io/auth0-delegated-admin/en/usersの場合、locale はenに設定されます。
- callback(error, settings): エラーと settings オブジェクトを返せるコールバック。
使用例
プロパティ
- connections: この管理者がユーザーを作成・編集できる 接続 の一覧。
-
dict: ダッシュボードのタイトルと、ユーザー作成ダイアログ内の メンバーシップ ラベルを上書きできる辞書。
- dict.title: UI の上部に表示するタイトル。
- dict.memberships: メンバーシップ項目に設定するラベル。
- dict.menuName: 右上のドロップダウンメニューに表示する名前。
- dict.logoutUrl: logout メニュー項目用の代替 URL。
- userFields: ユーザーフィールドの配列 (下記の「カスタムフィールド」を参照) 。
- css: CSS を読み込むための String URL。
- altcss: 2 つ目の CSS セットを読み込むための String URL。これを使って、たとえば大きなフォント向けのアクセシビリティ用 CSS を指定できます。ユーザーには、この CSS セットをオン/オフできるメニュー項目が表示されます。
- languageDictionary: String URL または辞書オブジェクト (下記の「ローカライズ」を参照) 。
- suppressRawData: true に設定すると、Raw JSON を表示するページをスキップします
-
errorTranslator: ローカライズに応じてエラーメッセージを翻訳する関数。例:
(function (error, languageDictionary) { return languageDictionary.customErrors[error] || error; }).toString() -
canCreateUser: Boolean の flag。
falseに設定するとユーザー作成ボタンが削除され、新規ユーザーを作成できなくなります。デフォルトはtrueです。
カスタムフィールド
- userFields のリストを 設定クエリ Hook に追加する
- Write Hook を実装する。カスタムフィールドで
user_metadataとapp_metadataを正しく更新するには、Write Hook を使用する必要があります。Hook に渡されるコンテキスト (ctxオブジェクト) 内のuser_metadataとapp_metadataを使って、コールバック関数に渡されるユーザーオブジェクトを更新する必要があります。
-
property (必須) : Write Hook の ctx.payload オブジェクトのプロパティ名。Write Hook では、
"property": "app_metadata.dbId"を指定するとctx.payload.app_metadata.dbIdが設定されます。 - label: ユーザー情報ページ、作成ページ、プロファイル編集ページ、または検索ページで、フィールドにラベルを追加する際に使用するラベルです。
- sortProperty: 検索テーブルでこのフィールドではなく別のフィールドを使って並べ替える場合は、そのフィールドを指定します。ドット記法を使用できます。
-
display: true || false || 文字列化した値 => これはデフォルトの表示値です。search、edit、または create で上書きしない場合は、この値が使用されます。
trueの場合は、user.<property>をそのまま返します。- デフォルト:
falseの場合、この値はどのページにも表示されません (search、edit、または Create で上書きされた場合を除く) 。 - 文字列化された関数の場合: 表示する値を取得するために関数を実行します。例:
(function display(user, value, languageDictionary) { return moment(value).fromNow(); }).toString()
-
search: false || object => このフィールドの検索ページでの挙動を説明します。
- デフォルト:
falseの場合、検索テーブルには表示されません。 - search.display: デフォルトの表示設定を上書きします。
- search.listOrder: 検索テーブルに表示される列の順序を指定します。
- search.listSize: 列のデフォルト幅を指定します。
- search.filter: 検索ドロップダウンでこのフィールドを検索対象にするかどうかを指定します。デフォルトは false です。
- search.sort: この列を並べ替え可能にするかどうかを指定します。property 以外のフィールドで並べ替える場合は、sortProperty を使用します。デフォルトは false です。
- デフォルト:
-
edit: false || オブジェクト => このフィールドを編集ダイアログに表示するかどうかを示します。既定のフィールドではなく、オブジェクトに設定されている場合は、ユーザーページの User Actions ドロップダウンにある
Change Profileページに表示されます。-
デフォルト:
falseの場合、編集/更新ページには表示されません。 - edit.display: デフォルトの表示値を上書きします。
- edit.required: 値がない場合にエラーにするには、true に設定します。デフォルトは false です。
- edit.type required: text || select || password
-
edit.component: InputText || Input Combo || InputMultiCombo || InputSelectCombo
- InputText (デフォルト): シンプルなテキストボックス。
- InputCombo: 検索可能なドロップダウン。単一の値のみ指定できます。
- InputMultiCombo: 検索可能なドロップダウン。複数の値を指定できます。
- InputSelectCombo: オプションを選択するドロップダウン。
-
edit.options: component が InputCombo、InputMultiCombo、InputSelectCombo のいずれかである場合は、オプション値を指定する必要があります。
- Array(string): 値の配列 (label フィールドと value フィールドには同じ値が設定されます) 。
- Array({ “value”: string, “label”: string }): value と label に別々の値を設定できます。この場合、Write Hook では同じ値になりますが、Write Hook 内で value のみに絞り込むこともできます。
- サーバー側のバリデーションにより、このフィールドに指定した値が options 配列内に含まれていることが保証されます。
-
edit.disabled: コンポーネントを読み取り専用にする場合は
trueです。デフォルトは false です。 -
edit.validateFunction: バリデーション用の文字列化された関数です。このバリデーション関数はサーバー側とクライアント側の両方で実行される点に注意してください。例:
(function validate(value, values, context, languageDictionary) { if (value...) return 'something went wrong'; return false; }).toString().
-
デフォルト:
-
create: false || object => フィールドを作成ダイアログに表示するかどうかを示します。
-
デフォルト:
falseの場合、Createページには表示されません。 - create.placeholder: 入力が空の場合に表示するプレースホルダーテキストを指定します。
- create.required: 値がない場合にエラーにするには true に設定します。デフォルトは false です。
- create.type 必須: text || select || password
-
create.component: InputText || Input Combo || InputMultiCombo || InputSelectCombo
- InputText (デフォルト): テキストボックス。type が text または password の場合のデフォルトです。
- InputCombo: 検索可能なドロップダウン。単一の値のみ指定できます。
- InputMultiCombo: 複数の値を指定できる検索可能なドロップダウン。
- InputSelectCombo: オプションを選択するドロップダウン。
-
create.options: component が InputCombo、InputMultiCombo、InputSelectCombo のいずれかである場合は、オプションの値を指定する必要があります。
- Array(string): シンプルな値の配列です。label と value には同じ値が設定されます。
- Array({ “value”: string, “label”: string }): value と label に別々の値を設定できます。これにより、Write Hook 内の値は同じになりますが、Write Hook では value のみに絞り込むこともできます。
- サーバー側のバリデーションにより、このフィールドに指定された値が options 配列内に含まれていることが保証されます。
- create.disabled: component を読み取り専用にする場合は true、デフォルトは false です。
-
create.validateFunction: バリデーションをチェックするための文字列化された関数です。
- 例:
(function validate(value, values, context, languageDictionary) { if (value...) return 'something went wrong'; return false; }).toString() - このバリデーション関数は、サーバー側とクライアント側の両方で実行されます。
- 例:
-
デフォルト:
事前定義済みフィールド
検索フィールド
- name: 他のフィールドから生成されるフィールド。既定の表示関数:
(function(user, value) { return (value || user.nickname || user.email || user.user_id); }).toString() - email: メールアドレスまたは N/A
- last_login_relative: 最終ログイン日時
- logins_count: ログイン回数
- connection: 接続
ユーザー情報フィールド
- user_id: ユーザー ID
- name: ユーザー名
- username: ユーザーのユーザー名
- email: ユーザーのメールアドレス
- identity.connection: 接続の値
- isBlocked: ユーザーがブロックされているかどうか
- blocked_for: ユーザーがによってブロックされているかどうか
- last_ip: ユーザーが最後にログインに使用した IP アドレス
- logins_count: ユーザーのログイン回数
- currentMemberships: このユーザーのメンバーシップ一覧
- created_at: ユーザーが作成された日時
- updated_at: ユーザーが更新された日時
- last_login: ユーザーが最後にログインした日時
ユーザーフィールドの作成と編集
- connection: ユーザーの接続
- password: 新しいパスワード
- repeatPassword: ユーザーのパスワードの再入力
- email: ユーザーのメールアドレス
- username: ユーザーのユーザー名
使用例
ローカライズ
このローカライズ機能は、ユーザー管理時の非管理者向け機能を利用するユーザーを対象としています。Auth0 は現在、Configuration ページではローカライズをサポートしていません。
https://{yourTenant}.us.webtask.io/auth0-delegated-admin/en/users のようにすると、設定クエリ内の context.locale は en に設定されます。
languageDictionary は設定クエリの一部として設定され、次のことができます。
- languageDictionary を明示的に定義する
- languageDictionary パラメータの内容を取得する URL を指定する