Administration déléguée : Hook de filtrage
Par défaut, les utilisateurs ayant le rôle Administrateur délégué - Utilisateur voient tous les utilisateurs associés au compte Auth0. Cependant, vous pouvez filtrer les données que les utilisateurs voient en utilisant le Hook de filtrage.
Contrat Hook
ctx : Objet de contexte.
callback(error, query): Callback auquel vous pouvez renvoyer une erreur ou la requête lucene utilisée lors du filtrage des utilisateurs. L’extension enverra cette requête au point de terminaison Obtenir les utilisateurs de Management API.
Pour en savoir plus sur la requête lucene, consultez Syntaxe de la requête de recherche d’utilisateur.
Exemples de cas d’utilisation
Kelly gère le département des finances; elle ne doit voir que les utilisateurs qui font également partie du service financier. Nous filtrerons les utilisateurs en fonction du service de l’utilisateur actuel (qui, dans ce cas, est le service financier et Kelly, respectivement).
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 + '"');
}
Was this helpful?
Remplacement du moteur de recherche
Vous pouvez remplacer le moteur de recherche par défaut en précisant votre choix dans la réponse.
// Return the lucene query.
return callback(null, { query: 'app_metadata.department:"' + department + '"', searchEngine: 'v2' });
Was this helpful?
Remarques
N’utilisez pas de guillemets simples, de guillemets doubles ou d’autres caractères spéciaux (tels que + ou -) dans les termes sur lesquels vous souhaitez effectuer un filtrage. Cela peut entraîner des problèmes avec la requête Lucene.
Si vous utilisez plusieurs opérateurs comme OR, NOT, ou AND, utilisez ces paramètres de recherche entre parenthèses [()
] pour délimiter quel opérateur est en vigueur à quel endroit.
Si vous ne configurez pas ce hook, la recherche renvoie tous les utilisateurs.