Utenti dell'app
Gli account di chi USA l'applicazione costruita — creare, attivare e disattivare, agire in blocco — e i ruoli che decidono cosa ciascuno vede e può fare.
In Keplin ci sono due popolazioni, e non si mescolano mai:
| Chi | Dove entra | Dove viene gestito |
|---|---|---|
| Chi costruisce | Nella piattaforma — vede l'elenco delle app, disegna schermate, modifica il modello. | In Utenti, nella zona di amministrazione della piattaforma. |
| Chi usa | Nell'applicazione costruita, tramite il suo indirizzo. Non sa nemmeno che Keplin esiste. | In Impostazioni dell'app → Utenti dell'app. |
Questa pagina parla della seconda. L'avviso in cima alla sezione non potrebbe essere più chiaro: "Questi utenti appartengono all'app costruita — accedono all'app in runtime e non hanno alcun accesso alla piattaforma KEPLIN."
L'elenco degli account
Apri le Impostazioni dell'app (l'ingranaggio in cima all'albero) e, nel gruppo Utenti, la sezione Utenti dell'app.

Ogni riga porta l'Utente (username, nome ed email), i Ruoli e l'Ultimo accesso — "mai entrato" quando non c'è mai stato un accesso. Un account disattivato compare marcato come Disattivato.
Sopra l'elenco ci sono tre strumenti di ricerca:
- la ricerca "Cerca per nome, username o email…";
- il filtro per ruolo (Tutti i ruoli, oppure Senza alcun ruolo);
- il filtro per stato (Tutti gli stati).
L'avviso che risolve metà dei problemi
Quando ci sono account senza nessun ruolo, compare un avviso ambra: "{n} utente/i senza alcun ruolo — non vedono dati né schermate. Fai clic per vederli."

È cliccabile, e filtra subito quegli account. Vale la pena saperlo a memoria: la causa numero uno di "sono entrato nell'app ed è tutto vuoto" è un account senza ruolo. Senza ruolo non ci sono autorizzazioni, e senza autorizzazioni non ci sono dati né schermate.
Creare e modificare account
Nuovo utente apre la scheda — in pagina, mai in una finestra.

| Campo | Note |
|---|---|
| Username | Obbligatorio. "Lettere, numeri, punto, trattino, _ e @." È quello che la persona scrive nella schermata di ingresso. |
| Nome | Facoltativo. Quello che compare negli elenchi e nelle assegnazioni delle attività. |
| Facoltativa, ma necessaria per recuperare la password e per ricevere i report pianificati. | |
| Password | Alla creazione è la password iniziale — "l'utente può cambiarla nell'app". In modifica, "compila solo per impostare una nuova password". |
| Attivo | Disattivato, l'account esiste ma "non può accedere all'app". |
| Ruoli | I ruoli di questo account. Un account nuovo nasce con pre-selezionati quelli definiti come Assegnato per impostazione predefinita. |
Salva con Salva. Per modificare un account esistente, il menu ⋮ della riga → Modifica; per eliminarlo, Elimina — irreversibile, e l'utente non riesce più a entrare.
Dica
Disattivare è quasi sempre meglio che eliminare. L'account disattivato non entra, ma la cronologia continua ad avere senso: le attività che ha deciso, i record che ha creato, le notifiche che ha ricevuto.
In blocco
Seleziona più righe con le caselle a sinistra e compare la barra delle azioni: Assegna ruolo, Revoca ruolo, Attiva, Disattiva. Dare lo stesso ruolo a dodici persone è un'operazione, non dodici schede.
Nota
Le autorizzazioni non si modificano sull'account — si modificano sempre sui ruoli. Un'eccezione messa su una persona è un'eccezione che nessuno ritroverà più.
I ruoli
La sezione Autorizzazioni definisce cosa ciascun ruolo può fare. "Ogni ruolo dice cosa si può fare. Le autorizzazioni si sommano: chi ha due ruoli ottiene il meglio di entrambi."

L'elenco mostra ogni ruolo con la descrizione, quanti Utenti ce l'hanno e quante Regole ha. I badge dicono il resto: predefinito (dato a chi si registra o viene appena creato) e accesso totale.
Nuovo ruolo ne crea uno; il menu ⋮ di una riga ha Modifica ed Elimina. Eliminare avvisa quante persone restano senza — "e chi resta senza alcun ruolo smette di vedere i dati".
Un ruolo si apre con cinque schede.
Generale

| Campo | Cosa fa |
|---|---|
| Nome / Descrizione | Identificazione. La descrizione compare nell'elenco e nella scheda degli utenti. |
| Accesso totale | "Tutto, senza eccezioni — e resta corretto quando l'app cresce." |
| Assegnato per impostazione predefinita | "Assegnato a chi si registra o viene appena creato." |
Sull'Accesso totale: "non ci sono regole da elencare: una API o una schermata create domani gli appartengono già. È quello che si vuole in un amministratore — ed è l'opposto di quello che si vuole in tutti gli altri."
Dati — cosa ciascuno arriva a vedere
La scheda che pesa di più. Una riga per API di tabella, con quattro segni di spunta — Visualizza, Crea, Modifica, Elimina — e l'Ambito dei record.
| Ambito | Significa |
|---|---|
| Tutti i record | Senza restrizione di righe. |
| Solo i miei | Solo i record il cui "Campo che dice di chi è" corrisponde all'utente con sessione attiva. |
| Con condizione… | Solo i record che soddisfano un filtro — con valori fissi o provenienti dalla sessione di chi sta usando l'app. |
E la frase che decide l'architettura di sicurezza di un'app intera:
"L'ambito è applicato sul server, in tutte le letture e scritture — nelle schermate, nel codice, nei report e nei workflow. Senza nessuna regola, questo ruolo non vede nulla di questa API."
Ossia: un report non aggira le autorizzazioni, un workflow non aggira le autorizzazioni, un evento di schermata non aggira le autorizzazioni. Passano tutti dallo stesso filtro, sul server.
Schermate
Per ogni schermata e ogni dispositivo — Web, Tablet, Telefono — un livello di accesso:

| Livello | Cosa fa |
|---|---|
| Nascosto | "Non appare nei menu, e la rotta scritta a mano viene rifiutata." |
| Visualizza (sola lettura) | "Apre in sola lettura — i campi e i pulsanti che salvano restano disattivati." |
| Modifica | "Apre e funziona." |
Le scorciatoie visualizza tutti / nascondi tutti, nell'intestazione di ogni colonna, riempiono l'intero dispositivo in una volta.
Atenção
"Il «visualizza» è un aiuto visivo; ciò che ferma davvero la scrittura sono le autorizzazioni di Dati, sul server." Una schermata in sola lettura evita errori; non ferma nessuno che sia determinato. La porta che chiude davvero è quella di Dati.
Menu
A differenza delle schermate, un menu è visibile per impostazione predefinita — "la porta è la schermata, e quella è già chiusa". Qui si nasconde il resto: un gruppo intero del menu, la campanella delle notifiche, una voce specifica, per dispositivo. Deselezionare un gruppo si porta dietro i figli.
Azioni
Le azioni sono "i verbi che esistono solo in questa app: approvare, chiudere,
esportare". Si dichiarano una volta, nel pannello Azioni dell'elenco dei
ruoli — una Chiave (aprovar-oportunidade) e un Nome ("Aprovar
oportunidade"), pulsante Nuova azione — e ogni ruolo spunta quelle che
concede.
Si usano in due posti:
- nelle proprietà di qualunque widget, nel campo Accesso, perché il widget compaia solo a chi ha l'azione;
- in codice TypeScript:
keplin.session.can("aprovar-oportunidade").
Un'azione che nessuno concede compare marcata come "nessun ruolo la concede" — segno che o manca di assegnarla, o non serve più a niente.
Si salva tutto in una volta, con Salva.
Come tutto questo si compone in runtime
Quando una persona entra nell'app pubblicata:
- Si autentica con l'account dell'app (o tramite il fornitore di identità dell'organizzazione, se l'app è in OAuth).
- I suoi ruoli si sommano: ottiene il meglio di ciascuno.
- I menu e le schermate vengono filtrati prima che la pagina si disegni.
- Ogni lettura e ogni scrittura passano dall'ambito dei dati, sul server — che venga dalle schermate, da un report, da un workflow o da uno script.
Domande frequenti
Ho creato l'account, la persona entra, e non vede niente. Probabilmente non ha un ruolo. Guarda l'avviso ambra nell'elenco degli utenti. Se ha un ruolo, controlla nella scheda Dati di quel ruolo se ci sono regole — "senza nessuna regola, questo ruolo non vede nulla di questa API".
Voglio che ogni commerciale veda solo le sue opportunità. Nella scheda Dati, ambito Solo i miei, con il Campo che dice di chi è puntato al campo del responsabile. Funziona dappertutto, report compresi.
Un utente dell'app riesce a entrare nella piattaforma? No. Sono account di mondi diversi, conservati separatamente. Un utente dell'app non ha alcun accesso alla piattaforma, e un account della piattaforma non entra nell'app costruita senza avere lì un account proprio.
Gli account viaggiano quando esporto l'app? Per impostazione predefinita no: "viaggia l'applicazione, con i ruoli e le autorizzazioni, non chi la usa". Solo l'esportazione con segreti, protetta da passphrase porta con sé anche gli account. Vedi Importare ed esportare app.

