Skip to main content
Le composant OrganizationMemberManagement offre une interface unifiée pour gérer les membres et les invitations de votre Organization.

Prérequis de configuration

Configuration Auth0 requise—Assurez-vous que votre locataire est configuré avec l’API My Organization. Consultez le guide de configuration →

Installation

pnpm

Pour commencer

Pour permettre aux administrateurs d’afficher les détails d’un membre, associez viewMemberDetailsAction à la route qui héberge OrganizationMemberDetail :

Props

Props d’affichage

Les props d’affichage déterminent le rendu du composant sans en modifier le comportement. Utilisez-les pour masquer des sections ou activer le mode lecture seule.

Props d’action

Les props d’action gèrent les interactions utilisateur et définissent ce qui se passe lorsque les utilisateurs effectuent des opérations sur les membres et les invitations. Utilisez les hooks de cycle de vie (onBefore, onAfter) pour intégrer le routage et les analyses de votre application. createInvitationAction Type : ComponentAction<CreateInvitationInput, MemberInvitation> Contrôle la création d’invitations (jusqu’à 10 destinataires par demande).
  • onBefore(input) s’exécute de façon synchrone avant l’envoi. Retournez false pour annuler.
  • onAfter(input, createdInvitation) s’exécute après la création de l’invitation.
Routage des connexions d’invitation Le sélecteur d’invitations répertorie les fournisseurs d’identité SSO Entreprise admissibles ainsi que les magasins d’utilisateurs et répertoires d’utilisateurs activés configurés pour l’Organization. Le sélecteur de connexion interroge les deux sources :
  • GET /my-org/identity-providers (filtre selon les niveaux d’accès aux membres admissibles)
  • GET /my-org/user-stores (filtre selon is_enabled: true)
La charge utile envoyée à createInvitationAction est acheminée à l’aide d’un seul identifiant, selon le type de connexion sélectionné :
  • Connexion SSO Entreprise sélectionnée : la charge utile renseigne identity_provider_id.
  • Connexion Magasin d’utilisateurs / Directory sélectionnée : la charge utile renseigne user_store_id.
Règles de routage des connexions :
  • Sélection automatique : si une Organization ne compte qu’une seule connexion admissible, celle-ci est sélectionnée par défaut et demeure modifiable.
  • Aucune connexion : s’il n’existe aucune connexion admissible, le point d’entrée d’invitation est désactivé et affiche un message explicatif.
  • Révocation et renvoi : le flux de révocation et de renvoi conserve la source de routage de connexion d’origine (user_store_id ou identity_provider_id).
  • Admissibilité des connexions : le sélecteur d’invitation inclut les connexions configurées avec un niveau d’accès de membre limited ou full.
revokeInvitationAction Type : ComponentAction<MemberInvitation[]> Contrôle la révocation des invitations (prend en charge les révocations individuelles et en lot, jusqu’à 10 invitations par lot).
  • onBefore(invitations) demande une confirmation avant la révocation. Retournez false pour annuler.
  • onAfter(invitations) s’exécute après la révocation des invitations.
resendInvitationAction Type : ComponentAction<MemberInvitation, MemberInvitation> Contrôle le flux de révocation et de renvoi.
  • onBefore(invitation) demande une confirmation avant le renvoi. Retournez false pour annuler.
  • onAfter(original, newInvitation) s’exécute après la création d’une nouvelle invitation.
viewMemberDetailsAction Type : ComponentAction<ViewMemberDetailsParams> Se déclenche lorsqu’une ligne de membre ou un badge de rôles est sélectionné. Reçoit { userId, tab }. Connectez ceci pour naviguer vers OrganizationMemberDetail.
  • onAfter({ userId, tab }) s’exécute lors de la sélection. Conservez tab dans l’URL de votre routeur afin d’ouvrir directement l’onglet demandé.
removeFromOrganizationAction Type : ComponentAction<string> Contrôle le retrait d’un membre de l’Organization (adhésion seulement ; ne supprime pas le profil utilisateur du magasin d’utilisateurs Auth0). Les deux hooks reçoivent le userId.
  • onBefore(userId) demande une confirmation avant le retrait. Retournez false pour annuler.
  • onAfter(userId) s’exécute après le retrait.
assignRolesAction Type : ComponentAction<{ userId: string; roleIds: string[] }> Se déclenche après l’attribution de rôles dans la fenêtre modale de la ligne. Le nombre de rôles sélectionnés est limité à 10 par demande d’attribution, et un membre peut avoir jusqu’à 50 rôles au total. Les deux hooks reçoivent { userId, roleIds }.
  • onBefore({ userId, roleIds }) valide la sélection. Retournez false pour annuler.
  • onAfter({ userId, roleIds }) s’exécute après l’attribution des rôles.

Props de personnalisation

customMessages Remplacez les textes fournis avec le composant. Chaque champ est facultatif et utilise la valeur par défaut intégrée.
header—En-tête du composant
  • title, description
tabs—Libellés des onglets
  • members, invitations
count_capped—Indicateur de nombre plafonné
  • Texte affiché lorsque le nombre de membres ou d’invitations dépasse 1 000 éléments
member.table—Affichage du tableau des membres
  • columns.name, columns.roles, columns.last_login
  • empty_message, search_placeholder
member.actions—Actions associées aux lignes des membres
  • menu_label, remove_from_organization, view_details
member.assign_roles—Fenêtre modale d’attribution de rôles
  • title, description
  • roles_label, roles_placeholder
  • submit_button, cancel_button, no_roles_available
member.remove_from_organization—Confirmation de suppression d’un membre
  • title, description
  • confirm_button, cancel_button
member.success / member.error—États des actions sur les membres
  • success.removed_from_organization, success.role_assigned
  • error.fetch_failed, error.assign_roles_failed, error.remove_from_organization_failed
invitation.table—Affichage du tableau des invitations
  • columns.email, columns.status, columns.inviter
  • columns.created_at, columns.expires_at, columns.roles
  • empty_message, search_placeholder, showing_results
  • status_pending, status_expired
invitation.actions—Actions associées aux lignes des invitations
  • menu_label, view_details, copy_url, revoke_and_resend, revoke
invitation.create—Fenêtre modale de création d’une invitation
  • title, description
  • email_label, email_placeholder, email_helper
  • email_limit_error, email_invalid_error, email_duplicate_error, email_required_error
  • roles_label, roles_placeholder, roles_max_selection_message, roles_searching_message
  • connection_label, connection_placeholder, connection_helper
  • connection_group_user_store, connection_group_identity_provider
  • submit_button, creating, cancel_button
invitation.details—Panneau de détails de l’invitation
  • title, email_label, status_label
  • roles_label, connection_label
  • created_at_label, expires_at_label, invited_by_label, invitation_url_label
  • copy_url_button, close_button, revoke_button, resend_button
invitation.revoke / invitation.revoke_resend—Confirmations de révocation
  • revoke.title, revoke.description, revoke.confirm_button, revoke.cancel_button
  • revoke_resend.title, revoke_resend.description, revoke_resend.confirm_button, revoke_resend.cancel_button
invitation.bulk_revoke—Confirmation de révocation en masse
  • button, button_plural, count, count_plural, success, max_selection_message
  • confirm.title, confirm.title_plural, confirm.description, confirm.description_plural
  • confirm.confirm_button, confirm.confirm_button_plural, confirm.cancel_button
invitation.error / invitation.success—États et alertes des invitations
  • success.url_copied, success.invitation_resent
  • error.fetch_failed, error.fetch_roles_failed, error.create_failed
  • error.revoke_failed, error.resend_failed, error.revoke_resend_failed
  • error.bulk_revoke_failed, error.connection_required, error.copy_url_failed

style Personnalisez l’apparence à l’aide de variables CSS et de surcharges de classes. Les variables prennent en charge les permissions light, dark et common. Les surcharges de classes ciblent des emplacements nommés dans l’arborescence des composants.
Variables—Propriétés personnalisées CSS
  • common—Appliquées à tous les thèmes
  • light—Thème clair uniquement
  • dark—Thème sombre uniquement
Classes—Surcharges de classes d’éléments ciblés
  • OrganizationMemberManagement-root
  • OrganizationMemberManagement-header
  • OrganizationMemberManagement-tabs
  • OrganizationInvitationTab-root
  • OrganizationInvitationTab-table
  • OrganizationInvitationTab-createModal
  • OrganizationInvitationTab-detailsModal
  • OrganizationInvitationTab-revokeModal
  • OrganizationInvitationTab-revokeResendModal
  • OrganizationInvitationTab-bulkRevokeModal
  • OrganizationInvitationTab-searchInput
  • OrganizationInvitationTab-filterDropdown
  • OrganizationInvitationTab-pagination

Personnalisation avancée

Hooks disponibles

Ces hooks fournissent la logique sous-jacente sans interface utilisateur. Utilisez-les pour créer des interfaces entièrement personnalisées tout en tirant parti de l’intégration à l’API Auth0.