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 undroleId
in derinviteUser
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
- Benutzer einladen - Benutzer benutzerdefinierte Rollen zuweisen
- Benutzer auflisten - Benutzer und deren Rollen anzeigen
- Benutzer entfernen - Benutzer aus Projekten entfernen