> ## 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 de requête des adhésions

> Découvrez comment utiliser le hook de requête des adhésions avec l’extension Delegated Administration (Administration déléguée).

Lors de la création d’un nouvel utilisateur, l’interface utilisateur affiche un menu déroulant où vous pouvez choisir le ou les adhésions que vous souhaitez attribuer à l’utilisateur. Ces adhésions sont ensuite définies à l’aide du **Membership Query Hook (Appel de requête des adhésions)**.

## Contrat Hook

* **ctx** : Objet contextuel.
* **callback(error, \{ createMemberships: true/false, memberships: })** : Rappel auquel vous pouvez renvoyer une erreur et un objet contenant la configuration des adhésions.

## Exemple d’utilisation

Les utilisateurs du service informatique doivent pouvoir créer des utilisateurs dans d’autres services. Les utilisateurs des autres services ne doivent pouvoir créer des utilisateurs que pour leur propre service.

```javascript lines theme={null}
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 ]);
}
```

## Remarques

Étant donné que vous ne pouvez utiliser cette requête que dans l’interface utilisateur (IU), vous devrez attribuer les adhésions à l’aide de **Write Hook** (Appel d’écriture) si vous devez appliquer des règles concernant l’attribution des utilisateurs à des services spécifiques.

S’il n’existe qu’un seul groupe d’adhésion possible, le champ Adhésions ne s’affichera pas dans l’interface utilisateur (IU).

Vous pouvez permettre à l’utilisateur final de saisir n’importe quelle valeur dans le champ **memberships (adhésions)** en définissant **createMemberships** sur true :

```javascript lines theme={null}
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 ]
  });
}
```

## En savoir plus

* [Administration déléguée : Hook d’accès](/docs/fr-ca/customize/extensions/delegated-administration-extension/delegated-administration-hooks/delegated-administration-access-hook)
* [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 : 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)
