Chi è l'Utente corrente
Se la tua app è utilizzata da altri Utenti oltre all'Amministratore, in ogni momento ci potrebbero essere più Utenti che contemporaneamente richiamano le medesime Viste. Alcune di essere mostrano le medesime informazioni a tutti gli Utenti, ad esempio la Vista "Magazzino" della app "Vicinato" elenca tutti gli Attrezzi prestabili a tutti i Partecipanti. Altre Viste devono mostrare informazioni differenti (o non mostrarne affatto) ai diversi Utenti, ad esempio la Vista "Tuoi Attrezzi" deve mostrare all'Utente solo gli Attrezzi di sua proprietà, compresi quelli ritirati dal prestito. In questi casi, nella costruzione della Vista dobbiamo considerare non solo le informazioni delle Entità elencate (gli Attrezzi), ma anche le informazioni della Entità Utente corrente, cioè dell'Utente che sta usando la Vista.
Filtrare le Entità sull'Utente corrente
La modalità più frequente per considerare l'Utente corrente in una Vista è filtrare le Entità elencate dalla Vista usando una relazione che le lega all'Utente corrente. Andiamo quindi alla ricerca di una o più relazioni che collegano le Entità elencate con Entità di tipo Utente. Ad esempio, abbiamo già visto come risalire da una Entità al suo Autore (Entità → Autore); se l'Entità su cui è costruita la Vista ha altri Campi riferimento che richiamano Utenti, possiamo utilizzare anche queste altre relazioni.
Prendiamo come esempio la Vista "Tuoi Attrezzi" della app "Vicinato", che vogliamo elenchi gli Attrezzi di proprietà dell'Utente corrente. La costruiamo come variazione della Vista "Magazzino, aggiungendo la relazione Attrezzo → Autore (l'Autore dell'Attrezzo è il suo Proprietario) e modificando i Filtri.
| identifica il Proprietario (=Autore) dell'Attrezzo | Nella sezione Relazioni aggiungi Contenuto - Utente - Nome utente dell'autore del contenuto e rinomina come "Proprietario" |
| limita l'elenco agli Attrezzi di cui è Proprietario l'Utente corrente | Nella sezione Criteri del filtro aggiungi Utente - Corrente - Filtra la vista con l'utente attualmente autenticato, come Relazione seleziona "Proprietario", come operatore seleziona è uguale a e come è l'utente autenticato seleziona si |
| includi gli Attrezzi non disponibili al prestito | Nella sezione Criteri del filtro elimina il Filtro presente in "Magazzino" Contenuto - Stato - Prestabile |
Se l'Utente corrente non ha relazioni con le Entità della Vista
Il metodo sopra descritto non funziona se le Entità elencate nella Vista non hanno alcuna relazione con Entità di tipo Utente. Anche in questi casi Drupal "sa" chi è l'Utente corrente e ne rende disponibili le informazioni attraverso appositi Token.
Nelle sezioni Intestazione e Piè di pagina sono disponibili i Token [current-user:CAMPO], dove CAMPO è il nome interno di un Campo dell'Entità Utente. I Token più utili sono [current-user:name] che restituisce il nome dell'Utente corrente e [current-user:uid] che restituisce il suo identificativo.
Questi Token non sono purtroppo elencati sotto Replacement Patterns né sono disponibili nelle altre sezioni della Vista. Per disporre delle informazioni relative all'Utente corrente anche nella sezione Campi, occorre installare ed attivare il modulo aggiuntivo Twig Tweaks. Questo modulo aggiunge alle Viste alcuni Token "di sistema", cioè non dipendenti dalle Entità elencate dalla Vista. In particolare, mette a disposizione i Token {{ drupal_token('current-user:CAMPO') }} ad esempio {{ drupal_token('current-user:uid') }}.
