Pobierz, utwórz, zaktualizuj i usuń niestandardowe role użytkowników z dokładnymi uprawnieniami.


Niestandardowe role

Niestandardowe role w Blue pozwalają na zdefiniowanie precyzyjnych zestawów uprawnień dostosowanych do potrzeb Twojego zespołu. Poza standardowymi poziomami dostępu (WŁAŚCICIEL, ADMIN, CZŁONEK itp.), niestandardowe role zapewniają szczegółową kontrolę nad tym, co użytkownicy mogą widzieć i robić w projektach.

Podstawowy przykład - Lista niestandardowych ról

Pobierz wszystkie niestandardowe role dla projektu:

query GetProjectRoles {
  projectUserRoles(filter: { projectId: "web-redesign" }) {
    id
    name
    description
    allowInviteOthers
    canDeleteRecords
  }
}

Zaawansowany przykład - Utwórz niestandardową rolę

Utwórz rolę wykonawcy z określonymi uprawnieniami:

mutation CreateContractorRole {
  createProjectUserRole(
    input: {
      projectId: "web-redesign"
      name: "External Contractor"
      description: "Limited access for external contractors"
      allowInviteOthers: false
      allowMarkRecordsAsDone: true
      canDeleteRecords: false
      showOnlyAssignedTodos: true
      isActivityEnabled: true
      isFormsEnabled: false
      isWikiEnabled: true
      isChatEnabled: false
      isDocsEnabled: true
      isFilesEnabled: true
      isRecordsEnabled: true
      isPeopleEnabled: false
    }
  ) {
    id
    name
  }
}

Dostępne operacje

Zapytanie: projectUserRoles

Pobierz wszystkie niestandardowe role dla projektu.

Parametry wejściowe

Parametr Typ Wymagane Opis
filter.projectId String Nie ID projektu lub slug (jeśli nie podano, zwraca role dla wszystkich dostępnych projektów)

Mutacja: createProjectUserRole

Utwórz nową niestandardową rolę z określonymi uprawnieniami.

Parametry wejściowe

Parametr Typ Wymagane Opis
projectId String! ✅ Tak ID projektu lub slug
name String! ✅ Tak Nazwa roli
description String Nie Opis roli
Permission Flags
allowInviteOthers Boolean Nie Może zapraszać nowych użytkowników (domyślnie: fałsz)
allowMarkRecordsAsDone Boolean Nie Może wykonywać zadania (domyślnie: fałsz)
canDeleteRecords Boolean Nie Może usuwać rekordy (domyślnie: prawda)
Feature Access
isActivityEnabled Boolean Nie Dostęp do sekcji Aktywność (domyślnie: prawda)
isChatEnabled Boolean Nie Dostęp do Czat (domyślnie: prawda)
isDocsEnabled Boolean Nie Dostęp do Dokumentów (domyślnie: prawda)
isFilesEnabled Boolean Nie Dostęp do Plików (domyślnie: prawda)
isFormsEnabled Boolean Nie Dostęp do Formularzy (domyślnie: prawda)
isWikiEnabled Boolean Nie Dostęp do Wiki (domyślnie: prawda)
isRecordsEnabled Boolean Nie Dostęp do Rekordów (domyślnie: prawda)
isPeopleEnabled Boolean Nie Dostęp do sekcji Ludzie (domyślnie: prawda)
Visibility Settings
showOnlyAssignedTodos Boolean Nie Widzi tylko przypisane zadania (domyślnie: fałsz)
showOnlyMentionedComments Boolean Nie Widzi tylko wspomniane komentarze (domyślnie: fałsz)

Mutacja: updateProjectUserRole

Zaktualizuj istniejącą niestandardową rolę.

Parametry wejściowe

Takie same jak createProjectUserRole, plus:

Parametr Typ Wymagane Opis
roleId String! ✅ Tak ID roli do zaktualizowania

Mutacja: deleteProjectUserRole

Usuń niestandardową rolę.

Parametry wejściowe

Parametr Typ Wymagane Opis
roleId String! ✅ Tak ID roli do usunięcia
projectId String! ✅ Tak ID projektu lub slug

Pola odpowiedzi

Obiekt ProjectUserRole

Pole Typ Opis
id String! Unikalny identyfikator roli
name String! Nazwa roli
description String Opis roli
createdAt DateTime! Znacznik czasu utworzenia
updatedAt DateTime! Znacznik czasu ostatniej aktualizacji
Permissions
allowInviteOthers Boolean! Może zapraszać użytkowników
allowMarkRecordsAsDone Boolean! Może wykonywać zadania
canDeleteRecords Boolean! Może usuwać rekordy
Feature Flags
isActivityEnabled Boolean! Dostęp do sekcji Aktywność
isChatEnabled Boolean! Dostęp do Czat
isDocsEnabled Boolean! Dostęp do Dokumentów
isFilesEnabled Boolean! Dostęp do Plików
isFormsEnabled Boolean! Dostęp do Formularzy
isWikiEnabled Boolean! Dostęp do Wiki
isRecordsEnabled Boolean! Dostęp do Rekordów
isPeopleEnabled Boolean! Dostęp do sekcji Ludzie
Visibility
showOnlyAssignedTodos Boolean! Filtr widoczności zadań
showOnlyMentionedComments Boolean! Filtr widoczności komentarzy

Wymagane uprawnienia

Operacja Wymagane uprawnienie
projectUserRoles Any project member
createProjectUserRole Project OWNER or ADMIN
updateProjectUserRole Project OWNER or ADMIN
deleteProjectUserRole Project OWNER or ADMIN

Odpowiedzi błędów

Niedostateczne uprawnienia

{
  "errors": [{
    "message": "You don't have permission to manage custom roles",
    "extensions": {
      "code": "UNAUTHORIZED"
    }
  }]
}

Nie znaleziono roli

{
  "errors": [{
    "message": "Custom role not found",
    "extensions": {
      "code": "PROJECT_USER_ROLE_NOT_FOUND"
    }
  }]
}

Osiągnięto limit ról

{
  "errors": [{
    "message": "Project user role limit reached.",
    "extensions": {
      "code": "PROJECT_USER_ROLE_LIMIT"
    }
  }]
}

Ważne uwagi

  • Domyślne uprawnienia: Podczas tworzenia ról, nieokreślone uprawnienia boolean domyślnie mają wartość fałsz, z wyjątkiem canDeleteRecords, które domyślnie mają wartość prawda.
  • Przypisanie ról: Przypisz niestandardowe role, ustawiając accessLevel: MEMBER i podając roleId w mutacji inviteUser.
  • Hierarchia: Niestandardowe role są traktowane jako poziom CZŁONKA w celach hierarchicznych.
  • Limity ról: Każdy projekt może mieć maksymalnie 20 niestandardowych ról.
  • Dostęp do funkcji: Flagi funkcji kontrolują dostęp do całych sekcji aplikacji.

Przykłady użycia

Rola wykonawcy

{
  name: "Contractor",
  allowInviteOthers: false,
  canDeleteRecords: false,
  showOnlyAssignedTodos: true,
  isActivityEnabled: true,
  isChatEnabled: false,
  isPeopleEnabled: false
}

Lider działu

{
  name: "Department Lead",
  allowInviteOthers: true,
  allowMarkRecordsAsDone: true,
  canDeleteRecords: true,
  isActivityEnabled: true,
  isWikiEnabled: true,
  isPeopleEnabled: true
}

Obserwator tylko do odczytu

{
  name: "Observer",
  allowMarkRecordsAsDone: false,
  canDeleteRecords: false,
  allowInviteOthers: false,
  showOnlyMentionedComments: true,
  isFormsEnabled: false
}

Powiązane operacje

Asystent AI

Odpowiedzi są generowane przy użyciu sztucznej inteligencji i mogą zawierać błędy.

Jak mogę Ci pomóc?

Zapytaj mnie o cokolwiek dotyczącego Blue lub tej dokumentacji.

Wciśnij Enter, aby wysłać • Shift+Enter, aby dodać nową linię • ⌘I, aby otworzyć