> ## Documentation Index
> Fetch the complete documentation index at: https://auth0.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Administration déléguée : Hook d’accès

> Comment utiliser le hook d’accès avec l’extension Delegated Administration.

Le Hook de filtrage n’appliquant qu’une logique de filtrage, vous aurez besoin d’une deuxième couche de logique pour déterminer si l’utilisateur actuel (ou la personne agissant en tant qu’administrateur) est autorisé à accéder à un utilisateur spécifique.

Pour en savoir plus sur le Hook de filtrage, lisez [Delegated Administration : Hook de filtrage](/docs/fr-ca/customize/extensions/delegated-administration-extension/delegated-administration-hooks/delegated-administration-filter-hook).

Le **Hook d’accès** vous permet de déterminer si l’utilisateur actuel est autorisé à lire, supprimer, bloquer, débloquer ou mettre à jour un utilisateur spécifique.

## Contrat Hook

* **ctx** : Objet de contexte.

  * **payload** : Objet de la charge utile.

    * **action** : Action en cours d’exécution (par exemple, **delete:user**).
    * **user** : Utilisateur sur lequel l’action est exécutée.
* **callback(error)**: Rappel auquel vous pouvez renvoyer une erreur si l’accès est refusé.

## Exemples de cas d’utilisation

Kelly gère le département des Finances, et elle ne devrait pouvoir accéder qu’aux utilisateurs de son département.

```javascript lines theme={null}
function(ctx, callback) {
  if (ctx.payload.action === 'delete:user') {
    return callback(new Error('You are not allowed to delete users.'));
  }

  // 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 access all users.
  if (department === 'IT') {
    return callback();
  }

  ctx.log('Verifying access:', ctx.payload.user.app_metadata.department, department);

  if (!ctx.payload.user.app_metadata.department || ctx.payload.user.app_metadata.department !== department) {
    return callback(new Error('You can only access users within your own department.'));
  }

  return callback();
}
```

## Remarques

Si ce hook n’est pas configuré, tous les utilisateurs seront accessibles à l’utilisateur actuel.

Le hook prend en charge les noms d’actions suivants (que vous définissez en utilisant la valeur de **ctx.payload.action**) :

* read:user
* delete:user
* reset:password
* change:password
* change:username
* change:email
* read:devices
* read:logs
* remove:multifactor-provider
* block:user
* unblock:user
* send:verification-email

## En savoir plus

* [Administration déléguée : Hook de filtrage](/docs/fr-ca/customize/extensions/delegated-administration-extension/delegated-administration-hooks/delegated-administration-filter-hook)
* [Administration déléguée : Hook de requête des adhésions](/docs/fr-ca/customize/extensions/delegated-administration-extension/delegated-administration-hooks/delegated-administration-memberships-query-hook)
* [Administration déléguée : Requête de paramètres du hook](/docs/fr-ca/customize/extensions/delegated-administration-extension/delegated-administration-hooks/delegated-administration-settings-query-hook)
* [Administration déléguée : Write Hook](/docs/fr-ca/customize/extensions/delegated-administration-extension/delegated-administration-hooks/delegated-administration-write-hook)
