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ącroleId
w mutacjiinviteUser
. - 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
- Zaproś użytkownika - Przypisz niestandardowe role użytkownikom
- Lista użytkowników - Wyświetl użytkowników i ich role
- Usuń użytkownika - Usuń użytkowników z projektów