Indice

Filtrare una Vista sull'Utente corrente

Cambiare la Vista in base all'Utente che la sta guardando. Token relativi all'Utente corrente.
Moduli: Twig Tweak
Aggiornata il:
Stato: 🟩Pronta

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 prestitoNella 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') }}.