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 fornendo roleId nella mutazione inviteUser
  • 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

Assistente AI

Le risposte sono generate utilizzando l'IA e potrebbero contenere errori.

Come posso aiutarti?

Chiedimi qualsiasi cosa su Blue o su questa documentazione.

Invia per inviare • Maiusc+Invio per una nuova riga • ⌘I per aprire