Récupérer des listes d'utilisateurs dans des entreprises ou des projets avec filtrage et pagination.
Liste des utilisateurs
Blue fournit plusieurs requêtes pour lister les utilisateurs à différents niveaux - au niveau de l'entreprise, spécifique à un projet, ou recherche d'un utilisateur individuel. Ces requêtes prennent en charge la pagination, le filtrage et le tri pour gérer efficacement de grandes bases d'utilisateurs.
Exemple de base - Utilisateurs de l'entreprise
Lister tous les utilisateurs d'une entreprise :
query ListCompanyUsers {
companyUserList(companyId: "acme-corp") {
users {
id
email
fullName
jobTitle
lastActiveAt
}
pageInfo {
totalItems
hasNextPage
}
}
}
Exemple avancé - Utilisateurs de projet filtrés
Lister les utilisateurs de projet avec recherche et pagination :
query ListProjectUsers {
projectUserList(
projectId: "web-redesign"
search: "engineer"
first: 20
orderBy: lastActiveAt_DESC
) {
edges {
node {
id
email
fullName
accessLevel
customRole {
id
name
}
}
}
pageInfo {
hasNextPage
endCursor
}
}
}
Requêtes disponibles
companyUserList
Liste tous les utilisateurs d'une entreprise avec filtrage optionnel.
Paramètres d'entrée
Paramètre | Type | Requis | Description |
---|---|---|---|
companyId |
String! | ✅ Oui | ID ou slug de l'entreprise |
notInProjectId |
String | Non | Exclure les utilisateurs déjà dans ce projet |
search |
String | Non | Rechercher par nom ou email |
first |
Int | Non | Nombre de résultats à retourner (pagination vers l'avant) |
after |
String | Non | Curseur pour pagination vers l'avant |
last |
Int | Non | Nombre de résultats à retourner (pagination vers l'arrière) |
before |
String | Non | Curseur pour pagination vers l'arrière |
skip |
Int | Non | Nombre de résultats à ignorer |
orderBy |
UserOrderByInput | Non | Ordre de tri (voir ci-dessous) |
projectUserList
Liste tous les utilisateurs dans un projet spécifique.
Paramètres d'entrée
Paramètre | Type | Requis | Description |
---|---|---|---|
projectId |
String! | ✅ Oui | ID ou slug du projet |
search |
String | Non | Rechercher par nom ou email |
first |
Int | Non | Nombre de résultats (max : 200) |
after |
String | Non | Curseur pour pagination |
orderBy |
UserOrderByInput | Non | Ordre de tri |
user
Récupère un utilisateur unique par ID.
Paramètres d'entrée
Paramètre | Type | Requis | Description |
---|---|---|---|
id |
String! | ✅ Oui | ID de l'utilisateur |
Options de tri
UserOrderByInput Valeurs
Valeur | Description |
---|---|
createdAt_ASC |
Trier par date d'inscription (les plus anciens en premier) |
createdAt_DESC |
Trier par date d'inscription (les plus récents en premier) |
lastActiveAt_ASC |
Trier par dernière activité (les plus anciennes en premier) |
lastActiveAt_DESC |
Trier par dernière activité (les plus récentes en premier) |
firstName_ASC |
Trier par prénom (A-Z) |
firstName_DESC |
Trier par prénom (Z-A) |
lastName_ASC |
Trier par nom de famille (A-Z) |
lastName_DESC |
Trier par nom de famille (Z-A) |
email_ASC |
Trier par adresse email (A-Z) |
email_DESC |
Trier par adresse email (Z-A) |
username_ASC |
Trier par nom d'utilisateur (A-Z) |
username_DESC |
Trier par nom d'utilisateur (Z-A) |
jobTitle_ASC |
Trier par titre de poste (A-Z) |
jobTitle_DESC |
Trier par titre de poste (Z-A) |
Champs de réponse
Objet utilisateur
Champ | Type | Description |
---|---|---|
id |
String! | Identifiant unique de l'utilisateur |
uid |
String! | UID d'authentification Firebase |
username |
String! | Nom d'utilisateur choisi par l'utilisateur |
email |
String! | Adresse email (visible uniquement pour le PROPRIÉTAIRE/ADMIN) |
firstName |
String | Prénom |
lastName |
String | Nom de famille |
fullName |
String | Nom complet (prénom et nom de famille combinés) |
jobTitle |
String | Titre professionnel |
phoneNumber |
String | Numéro de contact |
dateOfBirth |
DateTime | Date de naissance |
isEmailVerified |
Boolean! | Statut de vérification de l'email |
lastActiveAt |
DateTime | Horodatage de la dernière activité |
createdAt |
DateTime! | Date de création du compte |
updatedAt |
DateTime! | Dernière mise à jour du profil |
isOnline |
Boolean! | Statut en ligne actuel |
timezone |
String | Fuseau horaire de l'utilisateur |
locale |
String | Préférence de langue |
theme |
JSON | Préférences de thème UI |
image |
Image | Objet de l'image de profil |
Champs supplémentaires des utilisateurs de projet
Lors de la liste des utilisateurs de projet, des champs supplémentaires sont disponibles :
Champ | Type | Description |
---|---|---|
accessLevel |
UserAccessLevel! | Rôle de l'utilisateur dans le projet |
customRole |
ProjectUserRole | Détails du rôle personnalisé, le cas échéant |
joinedAt |
DateTime! | Date à laquelle l'utilisateur a rejoint le projet |
Informations de pagination
Champ | Type | Description |
---|---|---|
totalItems |
Int! | Nombre total d'utilisateurs |
totalPages |
Int | Nombre total de pages (pour pagination par décalage) |
page |
Int | Numéro de la page actuelle |
perPage |
Int | Éléments par page |
hasNextPage |
Boolean! | Plus de résultats disponibles |
hasPreviousPage |
Boolean! | Résultats précédents disponibles |
startCursor |
String | Curseur du premier élément |
endCursor |
String | Curseur du dernier élément |
Permissions requises
Requête | Permission requise |
---|---|
companyUserList |
Any authenticated user in the company |
projectUserList |
Any project member (including VIEW_ONLY) |
user |
Any authenticated user |
Réponses d'erreur
Entreprise non trouvée
{
"errors": [{
"message": "Company not found",
"extensions": {
"code": "COMPANY_NOT_FOUND"
}
}]
}
Projet non trouvé
{
"errors": [{
"message": "Project not found",
"extensions": {
"code": "PROJECT_NOT_FOUND"
}
}]
}
Accès non autorisé
{
"errors": [{
"message": "You don't have access to this resource",
"extensions": {
"code": "UNAUTHORIZED"
}
}]
}
Notes importantes
- Performance : Utilisez la pagination pour de grandes listes d'utilisateurs (max 200 utilisateurs par demande)
- Recherche : Recherche à travers les champs de prénom, nom de famille et email
- Confidentialité des emails : Les adresses email ne sont visibles que pour les utilisateurs ayant des niveaux d'accès PROPRIÉTAIRE ou ADMIN
- Statut en ligne :
isOnline
se met à jour en temps réel via des connexions WebSocket - Images de profil : Utilisez le champ
image.variants
pour différentes tailles - Filtrage : Le paramètre
notInProjectId
est utile lors de la création d'interfaces de sélection d'utilisateurs - Niveaux d'accès : Les listes d'utilisateurs de projet incluent des informations sur les rôles non disponibles dans les listes d'entreprise
Opérations connexes
- Aperçu de la gestion des utilisateurs - Opérations de gestion des utilisateurs
- Supprimer un utilisateur - Supprimer des utilisateurs des projets
- Rôles personnalisés - Gérer les permissions des utilisateurs