Invita utenti a progetti o aziende con livelli di accesso specifici e ruoli personalizzati.
Invita un Utente
La mutazione inviteUser
consente di invitare utenti ai tuoi progetti o aziende Blue. Gli utenti possono essere assegnati a livelli di accesso predefiniti o ruoli personalizzati con permessi specifici.
Esempio Base
Invita un utente con un livello di accesso standard:
mutation InviteUserToProject {
inviteUser(
input: {
email: "newuser@example.com"
projectId: "web-redesign"
accessLevel: MEMBER
}
)
}
Esempio Avanzato
Invita un utente con un ruolo personalizzato a più progetti:
mutation InviteUserWithCustomRole {
inviteUser(
input: {
email: "contractor@example.com"
projectIds: ["web-redesign", "mobile-app", "api-v2"]
accessLevel: MEMBER
roleId: "role_contractor_123"
}
)
}
Parametri di Input
InviteUserInput
Parametro | Tipo | Richiesto | Descrizione |
---|---|---|---|
email |
String! | ✅ Sì | Indirizzo email dell'utente da invitare |
accessLevel |
UserAccessLevel! | ✅ Sì | Livello di accesso da concedere (vedi tabella sottostante) |
projectId |
String | No | ID di un singolo progetto (mutuamente esclusivo con companyId) |
projectIds |
[String!] | No | ID di più progetti quando si utilizza companyId |
companyId |
String | No | ID dell'azienda per l'invito a livello aziendale (mutuamente esclusivo con projectId) |
roleId |
String | No | ID del ruolo personalizzato (richiede accessLevel: MEMBER) |
Valori di UserAccessLevel
Valore | Descrizione |
---|---|
OWNER |
Controllo completo su progetto/azienda |
ADMIN |
Accesso amministrativo, può gestire utenti e impostazioni |
MEMBER |
Accesso standard per membri con funzionalità complete |
CLIENT |
Accesso limitato per clienti esterni |
COMMENT_ONLY |
Può solo visualizzare e commentare i record |
VIEW_ONLY |
Accesso in sola lettura al progetto |
Campi di Risposta
Campo | Tipo | Descrizione |
---|---|---|
success |
Boolean! | Se l'invito è stato inviato con successo |
Permessi Richiesti
Gli utenti devono avere permessi sufficienti per invitare altri. La gerarchia dei permessi è applicata:
Il Tuo Ruolo | Può Invitare |
---|---|
OWNER |
✅ Tutti i livelli di accesso |
ADMIN |
✅ ADMIN, MEMBER, CLIENT, COMMENT_ONLY, VIEW_ONLY (non può invitare OWNER) |
MEMBER |
✅ MEMBER, CLIENT, COMMENT_ONLY, VIEW_ONLY (non può invitare OWNER o ADMIN) |
CLIENT |
✅ Solo CLIENT |
COMMENT_ONLY |
❌ Non può invitare |
VIEW_ONLY |
❌ Non può invitare |
Nota: Per gli inviti aziendali (utilizzando companyId
), solo gli OWNER dell'azienda possono invitare utenti.
Tipi di Invito
Invito al Progetto
Invita un utente a un singolo progetto:
- Usa il parametro
projectId
- Non può usare
companyId
simultaneamente - L'invitante deve avere accesso al progetto
- Si applicano restrizioni sui livelli di accesso
Invito all'Azienda
Invita un utente a un'azienda (e opzionalmente a progetti specifici):
- Usa il parametro
companyId
- Non può usare
projectId
simultaneamente - Solo gli OWNER dell'azienda possono utilizzare questo metodo
- Usa l'array
projectIds
per specificare quali progetti includere - Se
projectIds
è omesso, l'utente ottiene solo accesso all'azienda
Ruoli Personalizzati
Quando si utilizzano ruoli personalizzati:
- Imposta
accessLevel
suMEMBER
- Fornisci l'
roleId
del tuo ruolo personalizzato - L'utente erediterà tutti i permessi definiti nel ruolo personalizzato
- I ruoli personalizzati sono specifici per progetto
Per recuperare i ruoli personalizzati disponibili, utilizza la projectUserRoles
query.
Risposte di Errore
Utente Già nel Progetto
{
"errors": [{
"message": "User is already in the project.",
"extensions": {
"code": "USER_ALREADY_IN_THE_PROJECT"
}
}]
}
Permessi Insufficienti
{
"errors": [{
"message": "You don't have permission to invite users with this access level",
"extensions": {
"code": "UNAUTHORIZED"
}
}]
}
Progetto Non Valido
{
"errors": [{
"message": "Project not found",
"extensions": {
"code": "PROJECT_NOT_FOUND"
}
}]
}
Limite di Inviti Superato
{
"errors": [{
"message": "Unable to invite more people.",
"extensions": {
"code": "INVITATION_LIMIT"
}
}]
}
Non Puoi Invitare Te Stesso
{
"errors": [{
"message": "You are not allowed to add yourself.",
"extensions": {
"code": "ADD_SELF"
}
}]
}
Ruolo Personalizzato Non Valido
{
"errors": [{
"message": "Project user role was not found.",
"extensions": {
"code": "PROJECT_USER_ROLE_NOT_FOUND"
}
}]
}
Azienda Bandita
{
"errors": [{
"message": "Company is banned",
"extensions": {
"code": "COMPANY_BANNED"
}
}]
}
Note Importanti
- Validazione Email: Gli indirizzi email vengono normalizzati e convalidati prima dell'invio degli inviti
- Scadenza dell'Invito: Gli inviti scadono dopo 7 giorni e devono essere reinviati se non accettati
- Notifiche Automatiche: Blue invia automaticamente email di invito ai nuovi utenti
- Proprietari dell'Azienda: I proprietari dell'azienda ricevono automaticamente accesso ADMIN in tutti i progetti
- Impatto sulla Fatturazione: Aggiungere utenti può influenzare il tuo abbonamento se hai prezzi per utente
- Registrazione delle Attività: Tutti gli inviti agli utenti sono registrati per scopi di audit
- Esclusività dei Parametri: Devi fornire
projectId
OcompanyId
, non entrambi - Restrizioni Aziendali: Solo i proprietari dell'azienda possono utilizzare il parametro
companyId
- Auto-Invito: Gli utenti non possono invitare se stessi (verrà generato un errore
ADD_SELF
)
Operazioni Correlate
- Elenca Utenti - Visualizza tutti gli utenti in un progetto o azienda
- Rimuovi Utente - Rimuovi utenti dai progetti
- Ruoli Personalizzati - Gestisci ruoli utente personalizzati