Invitez des utilisateurs à des projets ou des entreprises avec des niveaux d'accès spécifiques et des rôles personnalisés.
Inviter un utilisateur
La mutation inviteUser
vous permet d'inviter des utilisateurs à vos projets ou entreprises Blue. Les utilisateurs peuvent se voir attribuer des niveaux d'accès prédéfinis ou des rôles personnalisés avec des autorisations spécifiques.
Exemple de base
Invitez un utilisateur avec un niveau d'accès standard :
mutation InviteUserToProject {
inviteUser(
input: {
email: "newuser@example.com"
projectId: "web-redesign"
accessLevel: MEMBER
}
)
}
Exemple avancé
Invitez un utilisateur avec un rôle personnalisé à plusieurs projets :
mutation InviteUserWithCustomRole {
inviteUser(
input: {
email: "contractor@example.com"
projectIds: ["web-redesign", "mobile-app", "api-v2"]
accessLevel: MEMBER
roleId: "role_contractor_123"
}
)
}
Paramètres d'entrée
InviteUserInput
Paramètre | Type | Requis | Description |
---|---|---|---|
email |
String! | ✅ Oui | Adresse e-mail de l'utilisateur à inviter |
accessLevel |
UserAccessLevel! | ✅ Oui | Niveau d'accès à accorder (voir tableau ci-dessous) |
projectId |
String | Non | ID de projet unique (mutuellement exclusif avec companyId) |
projectIds |
[String!] | Non | Plusieurs ID de projet lors de l'utilisation de companyId |
companyId |
String | Non | ID de l'entreprise pour une invitation au niveau de l'entreprise (mutuellement exclusif avec projectId) |
roleId |
String | Non | ID de rôle personnalisé (nécessite accessLevel: MEMBER) |
Valeurs de UserAccessLevel
Valeur | Description |
---|---|
OWNER |
Contrôle total sur le projet/l'entreprise |
ADMIN |
Accès administratif, peut gérer les utilisateurs et les paramètres |
MEMBER |
Accès standard de membre avec toutes les fonctionnalités |
CLIENT |
Accès limité pour les clients externes |
COMMENT_ONLY |
Ne peut que visualiser et commenter les enregistrements |
VIEW_ONLY |
Accès en lecture seule au projet |
Champs de réponse
Champ | Type | Description |
---|---|---|
success |
Boolean! | Indique si l'invitation a été envoyée avec succès |
Autorisations requises
Les utilisateurs doivent disposer de permissions suffisantes pour inviter d'autres utilisateurs. La hiérarchie des permissions est appliquée :
Votre rôle | Peut inviter |
---|---|
OWNER |
✅ Tous les niveaux d'accès |
ADMIN |
✅ ADMIN, MEMBER, CLIENT, COMMENT_ONLY, VIEW_ONLY (ne peut pas inviter OWNER) |
MEMBER |
✅ MEMBER, CLIENT, COMMENT_ONLY, VIEW_ONLY (ne peut pas inviter OWNER ou ADMIN) |
CLIENT |
✅ CLIENT uniquement |
COMMENT_ONLY |
❌ Ne peut pas inviter |
VIEW_ONLY |
❌ Ne peut pas inviter |
Remarque : Pour les invitations d'entreprise (utilisant companyId
), seuls les PROPRIÉTAIRES d'entreprise peuvent inviter des utilisateurs.
Types d'invitation
Invitation de projet
Invitez un utilisateur à un projet unique :
- Utilisez le paramètre
projectId
- Ne peut pas utiliser
companyId
simultanément - L'invitant doit avoir accès au projet
- Des restrictions de niveau d'accès s'appliquent
Invitation d'entreprise
Invitez un utilisateur à une entreprise (et éventuellement à des projets spécifiques) :
- Utilisez le paramètre
companyId
- Ne peut pas utiliser
projectId
simultanément - Seuls les PROPRIÉTAIRES d'entreprise peuvent utiliser cette méthode
- Utilisez le tableau
projectIds
pour spécifier quels projets inclure - Si
projectIds
est omis, l'utilisateur obtient uniquement un accès à l'entreprise
Rôles personnalisés
Lors de l'utilisation de rôles personnalisés :
- Définissez
accessLevel
àMEMBER
- Fournissez l'
roleId
de votre rôle personnalisé - L'utilisateur héritera de toutes les autorisations définies dans le rôle personnalisé
- Les rôles personnalisés sont spécifiques au projet
Pour récupérer les rôles personnalisés disponibles, utilisez la projectUserRoles
requête.
Réponses d'erreur
Utilisateur déjà dans le projet
{
"errors": [{
"message": "User is already in the project.",
"extensions": {
"code": "USER_ALREADY_IN_THE_PROJECT"
}
}]
}
Permissions insuffisantes
{
"errors": [{
"message": "You don't have permission to invite users with this access level",
"extensions": {
"code": "UNAUTHORIZED"
}
}]
}
Projet invalide
{
"errors": [{
"message": "Project not found",
"extensions": {
"code": "PROJECT_NOT_FOUND"
}
}]
}
Limite d'invitation dépassée
{
"errors": [{
"message": "Unable to invite more people.",
"extensions": {
"code": "INVITATION_LIMIT"
}
}]
}
Impossible de s'inviter soi-même
{
"errors": [{
"message": "You are not allowed to add yourself.",
"extensions": {
"code": "ADD_SELF"
}
}]
}
Rôle personnalisé invalide
{
"errors": [{
"message": "Project user role was not found.",
"extensions": {
"code": "PROJECT_USER_ROLE_NOT_FOUND"
}
}]
}
Entreprise bannie
{
"errors": [{
"message": "Company is banned",
"extensions": {
"code": "COMPANY_BANNED"
}
}]
}
Remarques importantes
- Validation des e-mails : Les adresses e-mail sont normalisées et validées avant l'envoi des invitations
- Expiration des invitations : Les invitations expirent après 7 jours et doivent être renvoyées si elles ne sont pas acceptées
- Notifications automatiques : Blue envoie automatiquement des e-mails d'invitation aux nouveaux utilisateurs
- Propriétaires d'entreprise : Les propriétaires d'entreprise reçoivent automatiquement un accès ADMIN dans tous les projets
- Impact sur la facturation : Ajouter des utilisateurs peut affecter votre abonnement si vous avez un tarif par utilisateur
- Journalisation des activités : Toutes les invitations d'utilisateurs sont enregistrées à des fins d'audit
- Exclusivité des paramètres : Vous devez fournir soit
projectId
OUcompanyId
, pas les deux - Restrictions d'entreprise : Seuls les propriétaires d'entreprise peuvent utiliser le paramètre
companyId
- Auto-invitation : Les utilisateurs ne peuvent pas s'inviter eux-mêmes (cela déclenchera l'erreur
ADD_SELF
)
Opérations connexes
- Lister les utilisateurs - Voir tous les utilisateurs dans un projet ou une entreprise
- Supprimer un utilisateur - Supprimer des utilisateurs des projets
- Rôles personnalisés - Gérer les rôles d'utilisateur personnalisés