Benutzerdefinierte Benutzerrollen mit granularen Berechtigungen abrufen, erstellen, aktualisieren und löschen.


Benutzerdefinierte Rollen

Benutzerdefinierte Rollen in Blue ermöglichen es Ihnen, präzise Berechtigungssets zu definieren, die auf die Bedürfnisse Ihres Teams zugeschnitten sind. Neben den standardmäßigen Zugriffslevels (EIGENTÜMER, ADMIN, MITGLIED usw.) bieten benutzerdefinierte Rollen eine granulare Kontrolle darüber, was Benutzer innerhalb von Projekten sehen und tun können.

Einfaches Beispiel - Benutzerdefinierte Rollen auflisten

Alle benutzerdefinierten Rollen für ein Projekt abrufen:

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

Fortgeschrittenes Beispiel - Benutzerdefinierte Rolle erstellen

Eine Auftragnehmerrolle mit spezifischen Berechtigungen erstellen:

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

Verfügbare Operationen

Abfrage: projectUserRoles

Alle benutzerdefinierten Rollen für ein Projekt abrufen.

Eingabeparameter

Parameter Typ Erforderlich Beschreibung
filter.projectId String Nein Projekt-ID oder Slug (wenn nicht angegeben, werden Rollen für alle zugänglichen Projekte zurückgegeben)

Mutation: createProjectUserRole

Eine neue benutzerdefinierte Rolle mit spezifischen Berechtigungen erstellen.

Eingabeparameter

Parameter Typ Erforderlich Beschreibung
projectId String! ✅ Ja Projekt-ID oder Slug
name String! ✅ Ja Rollenname
description String Nein Rollenbeschreibung
Permission Flags
allowInviteOthers Boolean Nein Kann neue Benutzer einladen (Standard: falsch)
allowMarkRecordsAsDone Boolean Nein Kann Aufgaben abschließen (Standard: falsch)
canDeleteRecords Boolean Nein Kann Datensätze löschen (Standard: wahr)
Feature Access
isActivityEnabled Boolean Nein Zugriff auf den Aktivitätsbereich (Standard: wahr)
isChatEnabled Boolean Nein Zugriff auf den Chat (Standard: wahr)
isDocsEnabled Boolean Nein Zugriff auf Docs (Standard: wahr)
isFilesEnabled Boolean Nein Zugriff auf Dateien (Standard: wahr)
isFormsEnabled Boolean Nein Zugriff auf Formulare (Standard: wahr)
isWikiEnabled Boolean Nein Zugriff auf Wiki (Standard: wahr)
isRecordsEnabled Boolean Nein Zugriff auf Datensätze (Standard: wahr)
isPeopleEnabled Boolean Nein Zugriff auf den Personenbereich (Standard: wahr)
Visibility Settings
showOnlyAssignedTodos Boolean Nein Nur zugewiesene Aufgaben sehen (Standard: falsch)
showOnlyMentionedComments Boolean Nein Nur erwähnte Kommentare sehen (Standard: falsch)

Mutation: updateProjectUserRole

Eine vorhandene benutzerdefinierte Rolle aktualisieren.

Eingabeparameter

Gleich wie createProjectUserRole, plus:

Parameter Typ Erforderlich Beschreibung
roleId String! ✅ Ja ID der zu aktualisierenden Rolle

Mutation: deleteProjectUserRole

Eine benutzerdefinierte Rolle löschen.

Eingabeparameter

Parameter Typ Erforderlich Beschreibung
roleId String! ✅ Ja ID der zu löschenden Rolle
projectId String! ✅ Ja Projekt-ID oder Slug

Antwortfelder

ProjectUserRole Objekt

Feld Typ Beschreibung
id String! Eindeutige Rollenkennung
name String! Rollenname
description String Rollenbeschreibung
createdAt DateTime! Erstellungszeitstempel
updatedAt DateTime! Letzter Aktualisierungszeitstempel
Permissions
allowInviteOthers Boolean! Kann Benutzer einladen
allowMarkRecordsAsDone Boolean! Kann Aufgaben abschließen
canDeleteRecords Boolean! Kann Datensätze löschen
Feature Flags
isActivityEnabled Boolean! Zugriff auf den Aktivitätsbereich
isChatEnabled Boolean! Zugriff auf den Chat
isDocsEnabled Boolean! Zugriff auf Docs
isFilesEnabled Boolean! Zugriff auf Dateien
isFormsEnabled Boolean! Zugriff auf Formulare
isWikiEnabled Boolean! Zugriff auf Wiki
isRecordsEnabled Boolean! Zugriff auf Datensätze
isPeopleEnabled Boolean! Zugriff auf den Personenbereich
Visibility
showOnlyAssignedTodos Boolean! Aufgaben-Sichtbarkeitsfilter
showOnlyMentionedComments Boolean! Kommentar-Sichtbarkeitsfilter

Erforderliche Berechtigungen

Operation Erforderliche Berechtigung
projectUserRoles Any project member
createProjectUserRole Project OWNER or ADMIN
updateProjectUserRole Project OWNER or ADMIN
deleteProjectUserRole Project OWNER or ADMIN

Fehlerantworten

Unzureichende Berechtigungen

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

Rolle nicht gefunden

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

Rollenlimit erreicht

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

Wichtige Hinweise

  • Standardberechtigungen: Bei der Erstellung von Rollen haben nicht angegebene boolesche Berechtigungen standardmäßig den Wert falsch, außer für canDeleteRecords, das standardmäßig den Wert wahr hat.
  • Rollenvergabe: Weisen Sie benutzerdefinierte Rollen zu, indem Sie accessLevel: MEMBER festlegen und roleId in der inviteUser Mutation bereitstellen.
  • Hierarchie: Benutzerdefinierte Rollen werden für Hierarchiezwecke als Mitgliedsebene behandelt.
  • Rollenlimits: Jedes Projekt kann maximal 20 benutzerdefinierte Rollen haben.
  • Funktionszugriff: Die Funktionsflags steuern den Zugriff auf ganze Abschnitte der Anwendung.

Anwendungsfälle

Auftragnehmerrolle

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

Abteilungsleiter

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

Nur-Lese-Beobachter

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

Verwandte Operationen

KI-Assistent

Antworten werden mit KI generiert und können Fehler enthalten.

Wie kann ich Ihnen helfen?

Fragen Sie mich alles über Blue oder diese Dokumentation.

Eingabe zum Senden • Shift+Eingabe für neue Zeile • ⌘I zum Öffnen