Recupera, crea, aggiorna ed elimina ruoli utente personalizzati con permessi granulari.
Ruoli Personalizzati
I ruoli personalizzati in Blue ti consentono di definire set di permessi precisi su misura per le esigenze del tuo team. Oltre ai livelli di accesso standard (PROPRIETARIO, AMMINISTRATORE, MEMBRO, ecc.), i ruoli personalizzati offrono un controllo granulare su ciò che gli utenti possono vedere e fare all'interno dei progetti.
Esempio Base - Elenca Ruoli Personalizzati
Recupera tutti i ruoli personalizzati per un progetto:
query GetProjectRoles {
projectUserRoles(filter: { projectId: "web-redesign" }) {
id
name
description
allowInviteOthers
canDeleteRecords
}
}
Esempio Avanzato - Crea Ruolo Personalizzato
Crea un ruolo di appaltatore con permessi specifici:
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
}
}
Operazioni Disponibili
Query: projectUserRoles
Recupera tutti i ruoli personalizzati per un progetto.
Parametri di Input
Parametro | Tipo | Richiesto | Descrizione |
---|---|---|---|
filter.projectId |
String | No | ID o slug del progetto (se non fornito, restituisce i ruoli per tutti i progetti accessibili) |
Mutazione: createProjectUserRole
Crea un nuovo ruolo personalizzato con permessi specifici.
Parametri di Input
Parametro | Tipo | Richiesto | Descrizione |
---|---|---|---|
projectId |
String! | ✅ Sì | ID o slug del progetto |
name |
String! | ✅ Sì | Nome del ruolo |
description |
String | No | Descrizione del ruolo |
Permission Flags | |||
allowInviteOthers |
Boolean | No | Può invitare nuovi utenti (predefinito: falso) |
allowMarkRecordsAsDone |
Boolean | No | Può completare attività (predefinito: falso) |
canDeleteRecords |
Boolean | No | Può eliminare registrazioni (predefinito: vero) |
Feature Access | |||
isActivityEnabled |
Boolean | No | Accesso alla sezione Attività (predefinito: vero) |
isChatEnabled |
Boolean | No | Accesso alla Chat (predefinito: vero) |
isDocsEnabled |
Boolean | No | Accesso ai Documenti (predefinito: vero) |
isFilesEnabled |
Boolean | No | Accesso ai File (predefinito: vero) |
isFormsEnabled |
Boolean | No | Accesso ai Moduli (predefinito: vero) |
isWikiEnabled |
Boolean | No | Accesso al Wiki (predefinito: vero) |
isRecordsEnabled |
Boolean | No | Accesso ai Registri (predefinito: vero) |
isPeopleEnabled |
Boolean | No | Accesso alla sezione Persone (predefinito: vero) |
Visibility Settings | |||
showOnlyAssignedTodos |
Boolean | No | Vedi solo le attività assegnate (predefinito: falso) |
showOnlyMentionedComments |
Boolean | No | Vedi solo i commenti menzionati (predefinito: falso) |
Mutazione: updateProjectUserRole
Aggiorna un ruolo personalizzato esistente.
Parametri di Input
Stesso di createProjectUserRole
, più:
Parametro | Tipo | Richiesto | Descrizione |
---|---|---|---|
roleId |
String! | ✅ Sì | ID del ruolo da aggiornare |
Mutazione: deleteProjectUserRole
Elimina un ruolo personalizzato.
Parametri di Input
Parametro | Tipo | Richiesto | Descrizione |
---|---|---|---|
roleId |
String! | ✅ Sì | ID del ruolo da eliminare |
projectId |
String! | ✅ Sì | ID o slug del progetto |
Campi di Risposta
Oggetto ProjectUserRole
Campo | Tipo | Descrizione |
---|---|---|
id |
String! | Identificatore unico del ruolo |
name |
String! | Nome del ruolo |
description |
String | Descrizione del ruolo |
createdAt |
DateTime! | Timestamp di creazione |
updatedAt |
DateTime! | Timestamp dell'ultimo aggiornamento |
Permissions | ||
allowInviteOthers |
Boolean! | Può invitare utenti |
allowMarkRecordsAsDone |
Boolean! | Può completare attività |
canDeleteRecords |
Boolean! | Può eliminare registrazioni |
Feature Flags | ||
isActivityEnabled |
Boolean! | Accesso alla sezione Attività |
isChatEnabled |
Boolean! | Accesso alla Chat |
isDocsEnabled |
Boolean! | Accesso ai Documenti |
isFilesEnabled |
Boolean! | Accesso ai File |
isFormsEnabled |
Boolean! | Accesso ai Moduli |
isWikiEnabled |
Boolean! | Accesso al Wiki |
isRecordsEnabled |
Boolean! | Accesso ai Registri |
isPeopleEnabled |
Boolean! | Accesso alla sezione Persone |
Visibility | ||
showOnlyAssignedTodos |
Boolean! | Filtro di visibilità delle attività |
showOnlyMentionedComments |
Boolean! | Filtro di visibilità dei commenti |
Permessi Richiesti
Operazione | Permesso Richiesto |
---|---|
projectUserRoles |
Any project member |
createProjectUserRole |
Project OWNER or ADMIN |
updateProjectUserRole |
Project OWNER or ADMIN |
deleteProjectUserRole |
Project OWNER or ADMIN |
Risposte di Errore
Permessi Insufficienti
{
"errors": [{
"message": "You don't have permission to manage custom roles",
"extensions": {
"code": "UNAUTHORIZED"
}
}]
}
Ruolo Non Trovato
{
"errors": [{
"message": "Custom role not found",
"extensions": {
"code": "PROJECT_USER_ROLE_NOT_FOUND"
}
}]
}
Limite di Ruolo Raggiunto
{
"errors": [{
"message": "Project user role limit reached.",
"extensions": {
"code": "PROJECT_USER_ROLE_LIMIT"
}
}]
}
Note Importanti
- Permessi Predefiniti: Quando si creano ruoli, i permessi booleani non specificati predefiniscono a falso, eccetto per
canDeleteRecords
che predefinisce a vero - Assegnazione Ruolo: Assegna ruoli personalizzati impostando
accessLevel: MEMBER
e fornendoroleId
nella mutazioneinviteUser
- Gerarchia: I ruoli personalizzati sono trattati come livello MEMBRO ai fini gerarchici
- Limiti di Ruolo: Ogni progetto può avere un massimo di 20 ruoli personalizzati
- Accesso alle Funzionalità: I flag delle funzionalità controllano l'accesso a intere sezioni dell'applicazione
Casi d'Uso
Ruolo di Appaltatore
{
name: "Contractor",
allowInviteOthers: false,
canDeleteRecords: false,
showOnlyAssignedTodos: true,
isActivityEnabled: true,
isChatEnabled: false,
isPeopleEnabled: false
}
Responsabile di Dipartimento
{
name: "Department Lead",
allowInviteOthers: true,
allowMarkRecordsAsDone: true,
canDeleteRecords: true,
isActivityEnabled: true,
isWikiEnabled: true,
isPeopleEnabled: true
}
Osservatore in Sola Lettura
{
name: "Observer",
allowMarkRecordsAsDone: false,
canDeleteRecords: false,
allowInviteOthers: false,
showOnlyMentionedComments: true,
isFormsEnabled: false
}
Operazioni Correlate
- Invita Utente - Assegna ruoli personalizzati agli utenti
- Elenca Utenti - Visualizza utenti e i loro ruoli
- Rimuovi Utente - Rimuovi utenti dai progetti