Contrat du Hook
-
ctx : Objet de contexte.
- request.user : Utilisateur connecté.
- locale : Paramètre régional (déduit de l’URL) —
https://{yourTenant}.us.webtask.io/auth0-delegated-admin/en/usersdéfinira locale suren.
- callback(error, settings) : Fonction de rappel à laquelle vous pouvez renvoyer une erreur et un objet de paramètres.
Exemple d’utilisation
Propriétés
- connections : Liste des connexions dans lesquelles cet administrateur est autorisé à créer et à modifier des utilisateurs.
-
dict : Dictionnaire qui vous permet de remplacer le titre du dashboard et le libellé Memberships dans la boîte de dialogue Create User.
- dict.title : Titre à afficher en haut de l’UI.
- dict.memberships : Libellé à définir pour les champs Memberships.
- dict.menuName : Nom à définir pour le menu déroulant situé en haut à droite.
- dict.logoutUrl : URL de remplacement pour l’option de menu de déconnexion.
- userFields : Tableau de champs utilisateur (voir « champs personnalisés » ci-dessous).
- css : URL de type String pour l’importation de CSS.
- altcss : URL de type String pour l’importation d’un deuxième ensemble de CSS. Vous pouvez l’utiliser pour préciser, par exemple, une feuille de style d’accessibilité avec des polices plus grandes. L’utilisateur verra un élément de menu lui permettant d’activer ou de désactiver cet ensemble de CSS.
- languageDictionary : URL de type String ou objet Dictionary (voir « localisation » ci-dessous).
- suppressRawData : Définissez cette valeur sur true pour ignorer les pages qui affichent du JSON brut
-
errorTranslator : Fonction qui traduit les messages d’erreur selon la localisation. Exemple :
(function (error, languageDictionary) { return languageDictionary.customErrors[error] || error; }).toString() -
canCreateUser : Indicateur booléen. S’il est défini sur
false, supprime le boutonCreate Useret interdit la création de nouveaux utilisateurs;truepar défaut.
Champs personnalisés
- Ajouter votre liste de userFields au Settings Query Hook
- Implémenter un Write Hook. Les champs personnalisés nécessitent l’utilisation du Write Hook pour mettre correctement à jour
user_metadataetapp_metadata. Vous devez mettre à jour l’objetusertransmis à la fonction de rappel avec lesuser_metadataetapp_metadatadu contexte (objetctx) fourni au Hook.
-
property (obligatoire) : Nom de propriété de l’objet ctx.payload pour le Write Hook. Dans le Write Hook,
"property": "app_metadata.dbId"définitctx.payload.app_metadata.dbId. - label : Libellé utilisé lorsqu’un libellé est ajouté au champ sur la page d’information utilisateur, la page Create, la page de modification du profil ou la page de recherche.
- sortProperty : Si la table de recherche est triée selon un champ différent de celui-ci, utilisez ce champ. La notation par points est permise.
-
display: true || false || converti en chaîne => Il s’agit de la valeur d’affichage par défaut. Si elle n’est pas remplacée dans la recherche, la modification ou la création, cette valeur sera utilisée.
- si
true, retournera simplementuser.<property>. - Par défaut : si
false, cette valeur ne sera affichée sur aucune page (à moins d’être redéfinie dans search, edit ou create). - si la fonction est convertie en chaîne : exécute la fonction pour obtenir la valeur à afficher. Exemple :
(function display(user, value, languageDictionary) { return moment(value).fromNow(); }).toString()
- si
-
search: faux || object => Décrit le comportement de ce champ sur la page de recherche.
- Par défaut : si
false, n’apparaîtra pas dans le tableau de recherche. - search.display: Remplace la valeur d’affichage par défaut.
- search.listOrder: Spécifie l’ordre des colonnes dans le tableau d’affichage de la recherche.
- search.listSize: Spécifie la largeur par défaut de la colonne.
- search.filter: Indique s’il faut autoriser la recherche de ce champ dans la liste déroulante de recherche. La valeur par défaut est faux.
- search.sort: Indique si cette colonne peut être triée. Utilisez sortProperty si vous souhaitez trier selon un champ autre que property. La valeur par défaut est faux.
- Par défaut : si
-
edit: false || objet => Indique si le champ apparaît dans les boîtes de dialogue de modification. S’il ne s’agit pas d’un champ par défaut et qu’il est défini comme un objet, il apparaîtra sur la page
Change Profile, dans le menu déroulant Actions utilisateur de la page de l’utilisateur.-
Par défaut : si
false, ne s’affichera sur aucune page de modification ou de mise à jour. - edit.display: Remplace la valeur d’affichage par défaut.
- edit.required: Définissez à true pour produire une erreur si aucune valeur n’est fournie. La valeur par défaut est false.
- edit.type required: text || select || password
-
edit.component: InputText || Input Combo || InputMultiCombo || InputSelectCombo
- InputText (par défaut) : Zone de texte simple.
- InputCombo: Liste déroulante interrogeable, avec une seule valeur possible.
- InputMultiCombo: Liste déroulante interrogeable permettant plusieurs valeurs.
- InputSelectCombo: Liste déroulante de sélection d’options.
-
edit.options: Si le composant est l’un de InputCombo, InputMultiCombo ou InputSelectCombo, les valeurs des options doivent être précisées.
- Array(string): Tableau de valeurs (les champs label et value auront la même valeur).
- Array({ “value”: string, “label”: string }): Permet de définir des valeurs distinctes pour value et label. La valeur transmise au Write Hook contiendra la même valeur, mais elle peut être réduite à la seule valeur dans le Write Hook.
- La validation côté serveur s’assurera que toute valeur précisée pour ce champ figure dans le tableau d’options.
-
edit.disabled:
truesi le composant doit être en lecture seule; la valeur par défaut est false. -
edit.validateFunction: Fonction de validation sous forme de chaîne. Notez que cette fonction de validation s’exécutera à la fois côté serveur et côté client. Exemple :
(function validate(value, values, context, languageDictionary) { if (value...) return 'something went wrong'; return false; }).toString().
-
Par défaut : si
-
create: false || object => Indique si le champ apparaît dans la boîte de dialogue de création.
-
Par défaut : si
false, ce champ ne s’affichera pas sur la page de création. - create.placeholder: Définit le texte d’espace réservé à afficher lorsque le champ est vide.
- create.required: Définissez cette valeur à true pour provoquer un échec si aucune valeur n’est fournie. Par défaut, la valeur est false.
- create.type obligatoire: text || select || password
-
create.component: InputText || Input Combo || InputMultiCombo || InputSelectCombo
- InputText (par défaut) : Zone de texte. Valeur par défaut pour les types text et password.
- InputCombo: Liste déroulante interrogeable, avec une seule valeur possible.
- InputMultiCombo: Liste déroulante interrogeable permettant plusieurs valeurs.
- InputSelectCombo: Liste déroulante de sélection d’options.
-
create.options: Si le composant est l’un des suivants : InputCombo, InputMultiCombo ou InputSelectCombo, les valeurs d’option doivent être précisées.
- Array(string): Tableau simple de valeurs;
labeletvalueauront la même valeur. - Array({ “value”: string, “label”: string }): Permet de définir des valeurs distinctes pour
valueetlabel. Ainsi, la valeur dans le Write Hook sera la même, mais elle peut être réduite à la seule valeur dans le Write Hook. - La validation côté serveur veillera à ce que toute valeur précisée pour ce champ se trouve dans le tableau d’options.
- Array(string): Tableau simple de valeurs;
- create.disabled: true si le composant doit être en lecture seule; par défaut, la valeur est false.
-
create.validateFunction: Fonction convertie en chaîne de caractères servant à effectuer la validation.
- Exemple :
(function validate(value, values, context, languageDictionary) { if (value...) return 'something went wrong'; return false; }).toString() - Cette fonction de validation s’exécutera à la fois côté serveur et côté client.
- Exemple :
-
Par défaut : si
Champs prédéfinis
Champs de recherche
- name: Champ généré à partir d’autres champs : fonction d’affichage par défaut :
(function(user, value) { return (value || user.nickname || user.email || user.user_id); }).toString() - email: adresse courriel ou N/A
- last_login_relative: Date et heure de la dernière connexion
- logins_count: Nombre de connexions
- connection: connexion de base de données
Champs d’information de l’utilisateur
- user_id: ID de l’utilisateur
- name: Nom de l’utilisateur
- username: Nom d’utilisateur
- email: Adresse courriel de l’utilisateur
- identity.connection: Valeur de la connexion
- isBlocked: Indique si l’utilisateur est bloqué
- blocked_for: Indique si l’utilisateur fait l’objet de blocages liés à la
- last_ip: Dernière adresse IP utilisée par l’utilisateur pour se connecter
- logins_count: Nombre de connexions de l’utilisateur
- currentMemberships: Liste des adhésions de cet utilisateur
- created_at: Date et heure de création de l’utilisateur
- updated_at: Date et heure de mise à jour de l’utilisateur
- last_login: Date et heure de la dernière connexion de l’utilisateur
Créer et modifier les champs utilisateur
- connection: Base de données de l’utilisateur
- password: Nouveau mot de passe
- repeatPassword: Confirmation du mot de passe de l’utilisateur
- email: Adresse courriel de l’utilisateur
- username: Nom d’utilisateur
Exemple d’utilisation
Localisation
La localisation s’adresse à ceux qui effectuent des tâches non administratives dans le cadre de la gestion des utilisateurs. Auth0 ne prend actuellement pas en charge la localisation dans les pages de Configuration.
https://{yourTenant}.us.webtask.io/auth0-delegated-admin/en/users définira context.locale sur en dans la requête de paramètres.
Le languageDictionary est défini dans la requête de paramètres, ce qui vous permet de :
- Définir explicitement un languageDictionary
- Fournir une URL pour récupérer le contenu du paramètre languageDictionary