Hämta listor över användare i företag eller projekt med filtrering och paginering.


Lista Användare

Blue tillhandahåller flera frågor för att lista användare på olika nivåer - företagsomfattande, projektspecifika eller individuell användaruppslagning. Dessa frågor stöder paginering, filtrering och sortering för att effektivt hantera stora användarbaser.

Grundläggande Exempel - Företagsanvändare

Lista alla användare i ett företag:

query ListCompanyUsers {
  companyUserList(companyId: "acme-corp") {
    users {
      id
      email
      fullName
      jobTitle
      lastActiveAt
    }
    pageInfo {
      totalItems
      hasNextPage
    }
  }
}

Avancerat Exempel - Filtrerade Projektanvändare

Lista projektanvändare med sökning och paginering:

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
    }
  }
}

Tillgängliga Frågor

companyUserList

Listar alla användare i ett företag med valfri filtrering.

Inmatningsparametrar

Parameter Typ Obligatorisk Beskrivning
companyId String! ✅ Ja Företags-ID eller slug
notInProjectId String Nej Exkludera användare som redan finns i detta projekt
search String Nej Sök efter namn eller e-post
first Int Nej Antal resultat att returnera (framåt paginering)
after String Nej Cursor för framåt paginering
last Int Nej Antal resultat att returnera (bakåt paginering)
before String Nej Cursor för bakåt paginering
skip Int Nej Antal resultat att hoppa över
orderBy UserOrderByInput Nej Sorteringsordning (se nedan)

projectUserList

Listar alla användare i ett specifikt projekt.

Inmatningsparametrar

Parameter Typ Obligatorisk Beskrivning
projectId String! ✅ Ja Projekt-ID eller slug
search String Nej Sök efter namn eller e-post
first Int Nej Antal resultat (max: 200)
after String Nej Cursor för paginering
orderBy UserOrderByInput Nej Sorteringsordning

user

Hämtar en enskild användare efter ID.

Inmatningsparametrar

Parameter Typ Obligatorisk Beskrivning
id String! ✅ Ja Användar-ID

Sorteringsalternativ

UserOrderByInput Värden

Värde Beskrivning
createdAt_ASC Sortera efter registreringsdatum (äldst först)
createdAt_DESC Sortera efter registreringsdatum (nyast först)
lastActiveAt_ASC Sortera efter senaste aktivitet (äldst först)
lastActiveAt_DESC Sortera efter senaste aktivitet (nyast först)
firstName_ASC Sortera efter förnamn (A-Z)
firstName_DESC Sortera efter förnamn (Z-A)
lastName_ASC Sortera efter efternamn (A-Z)
lastName_DESC Sortera efter efternamn (Z-A)
email_ASC Sortera efter e-postadress (A-Z)
email_DESC Sortera efter e-postadress (Z-A)
username_ASC Sortera efter användarnamn (A-Z)
username_DESC Sortera efter användarnamn (Z-A)
jobTitle_ASC Sortera efter jobbtitel (A-Z)
jobTitle_DESC Sortera efter jobbtitel (Z-A)

Svarsfält

Användarobjekt

Fält Typ Beskrivning
id String! Unik användaridentifierare
uid String! Firebase autentisering UID
username String! Användarens valda användarnamn
email String! E-postadress (synlig för ÄGARE/ADMIN endast)
firstName String Förnamn
lastName String Efternamn
fullName String Sammanfattat för- och efternamn
jobTitle String Professionell titel
phoneNumber String Kontakt nummer
dateOfBirth DateTime Födelsetdatum
isEmailVerified Boolean! E-postverifieringsstatus
lastActiveAt DateTime Tidstämpel för senaste aktivitet
createdAt DateTime! Datum för kontots skapande
updatedAt DateTime! Senaste profiluppdatering
isOnline Boolean! Aktuell online-status
timezone String Användarens tidszon
locale String Språkpreferens
theme JSON UI-tema preferenser
image Image Profilbildsobjekt

Ytterligare Fält för Projektanvändare

När man listar projektanvändare finns det ytterligare fält tillgängliga:

Fält Typ Beskrivning
accessLevel UserAccessLevel! Användarens roll i projektet
customRole ProjectUserRole Anpassade rolluppgifter om tillämpligt
joinedAt DateTime! När användaren gick med i projektet

Paginering Info

Fält Typ Beskrivning
totalItems Int! Totalt antal användare
totalPages Int Totalt antal sidor (för offset paginering)
page Int Aktuellt sidnummer
perPage Int Objekt per sida
hasNextPage Boolean! Fler resultat tillgängliga
hasPreviousPage Boolean! Tidigare resultat tillgängliga
startCursor String Första objektets cursor
endCursor String Sista objektets cursor

Obligatoriska Behörigheter

Fråga Obligatorisk Behörighet
companyUserList Any authenticated user in the company
projectUserList Any project member (including VIEW_ONLY)
user Any authenticated user

Felmeddelanden

Företag Hittades Inte

{
  "errors": [{
    "message": "Company not found",
    "extensions": {
      "code": "COMPANY_NOT_FOUND"
    }
  }]
}

Projekt Hittades Inte

{
  "errors": [{
    "message": "Project not found",
    "extensions": {
      "code": "PROJECT_NOT_FOUND"
    }
  }]
}

Obehörig Åtkomst

{
  "errors": [{
    "message": "You don't have access to this resource",
    "extensions": {
      "code": "UNAUTHORIZED"
    }
  }]
}

Viktiga Anteckningar

  • Prestanda: Använd paginering för stora användarlistor (max 200 användare per begäran)
  • Sökning: Sökningar görs över förnamn, efternamn och e-postfält
  • E-postintegritet: E-postadresser är endast synliga för användare med ÄGARE eller ADMIN-åtkomstnivåer
  • Online-status: isOnline uppdateras i realtid via WebSocket-anslutningar
  • Profilbilder: Använd image.variants fältet för olika storlekar
  • Filtrering: notInProjectId parametern är användbar när man bygger användarvalgränssnitt
  • Åtkomstnivåer: Projektanvändarlistor inkluderar rollinformation som inte är tillgänglig i företagslistor

Relaterade Åtgärder

AI-assistent

Svar genereras med hjälp av AI och kan innehålla misstag.

Hur kan jag hjälpa dig?

Fråga mig vad som helst om Blue eller denna dokumentation.

Tryck Enter för att skicka • Shift+Enter för ny rad • ⌘I för att öppna