OrganizationMemberManagement offre une interface unifiée pour gérer les membres et les invitations de votre Organization.
- React
- Next.js
- shadcn
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
viewMemberDetailsAction à la route qui héberge OrganizationMemberDetail :Exemple d’intégration complet
Exemple d’intégration complet
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. Retournezfalsepour annuler.onAfter(input, createdInvitation)s’exécute après la création de l’invitation.
GET /my-org/identity-providers(filtre selon les niveaux d’accès aux membres admissibles)GET /my-org/user-stores(filtre selonis_enabled: true)
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.
- 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_idouidentity_provider_id). - Admissibilité des connexions : le sélecteur d’invitation inclut les connexions configurées avec un niveau d’accès de membre
limitedoufull.
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. Retournezfalsepour annuler.onAfter(invitations)s’exécute après la révocation des invitations.
ComponentAction<MemberInvitation, MemberInvitation>
Contrôle le flux de révocation et de renvoi.
onBefore(invitation)demande une confirmation avant le renvoi. Retournezfalsepour annuler.onAfter(original, newInvitation)s’exécute après la création d’une nouvelle invitation.
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. Conserveztabdans l’URL de votre routeur afin d’ouvrir directement l’onglet demandé.
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. Retournezfalsepour annuler.onAfter(userId)s’exécute après le retrait.
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. Retournezfalsepour 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.
Groupes de messages courants
Groupes de messages courants
header—En-tête du composant
title,description
members,invitations
- Texte affiché lorsque le nombre de membres ou d’invitations dépasse 1 000 éléments
columns.name,columns.roles,columns.last_loginempty_message,search_placeholder
menu_label,remove_from_organization,view_details
title,descriptionroles_label,roles_placeholdersubmit_button,cancel_button,no_roles_available
title,descriptionconfirm_button,cancel_button
success.removed_from_organization,success.role_assignederror.fetch_failed,error.assign_roles_failed,error.remove_from_organization_failed
columns.email,columns.status,columns.invitercolumns.created_at,columns.expires_at,columns.rolesempty_message,search_placeholder,showing_resultsstatus_pending,status_expired
menu_label,view_details,copy_url,revoke_and_resend,revoke
title,descriptionemail_label,email_placeholder,email_helperemail_limit_error,email_invalid_error,email_duplicate_error,email_required_errorroles_label,roles_placeholder,roles_max_selection_message,roles_searching_messageconnection_label,connection_placeholder,connection_helperconnection_group_user_store,connection_group_identity_providersubmit_button,creating,cancel_button
title,email_label,status_labelroles_label,connection_labelcreated_at_label,expires_at_label,invited_by_label,invitation_url_labelcopy_url_button,close_button,revoke_button,resend_button
revoke.title,revoke.description,revoke.confirm_button,revoke.cancel_buttonrevoke_resend.title,revoke_resend.description,revoke_resend.confirm_button,revoke_resend.cancel_button
button,button_plural,count,count_plural,success,max_selection_messageconfirm.title,confirm.title_plural,confirm.description,confirm.description_pluralconfirm.confirm_button,confirm.confirm_button_plural,confirm.cancel_button
success.url_copied,success.invitation_resenterror.fetch_failed,error.fetch_roles_failed,error.create_failederror.revoke_failed,error.resend_failed,error.revoke_resend_failederror.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.
Options de style disponibles
Options de style disponibles
Variables—Propriétés personnalisées CSS
common—Appliquées à tous les thèmeslight—Thème clair uniquementdark—Thème sombre uniquement
OrganizationMemberManagement-rootOrganizationMemberManagement-headerOrganizationMemberManagement-tabsOrganizationInvitationTab-rootOrganizationInvitationTab-tableOrganizationInvitationTab-createModalOrganizationInvitationTab-detailsModalOrganizationInvitationTab-revokeModalOrganizationInvitationTab-revokeResendModalOrganizationInvitationTab-bulkRevokeModalOrganizationInvitationTab-searchInputOrganizationInvitationTab-filterDropdownOrganizationInvitationTab-pagination