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 :

  1. Définissez accessLevel à MEMBER
  2. Fournissez l'roleId de votre rôle personnalisé
  3. L'utilisateur héritera de toutes les autorisations définies dans le rôle personnalisé
  4. 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 OU companyId, 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

Assistant IA

Les réponses sont générées par l'IA et peuvent contenir des erreurs.

Comment puis-je vous aider ?

Posez-moi toutes vos questions sur Blue ou cette documentation.

Entrez pour envoyer • Maj+Entrée pour une nouvelle ligne • ⌘I pour ouvrir