Open SourceSviluppo WebIn evidenza

Visualizza Email Utente

Un modulo Drupal che ho creato per risolvere un comune problema amministrativo.

DrupalPHPAccess Control

Questo è nato come soluzione a un problema che continuavo a riscontrare sui siti Drupal. Gli amministratori avevano bisogno di accesso selettivo alle email degli utenti. Quello che è iniziato come una semplice correzione è cresciuto fino a diventare un modulo utilizzato da centinaia di siti. È stato fantastico vederlo evolvere attraverso Drupal 8, 9 e 10.

Il problema

Drupal 8 fino alla versione 9.1 non disponeva di un modo integrato per consentire selettivamente ai ruoli non amministratori di visualizzare gli indirizzi email degli utenti. I siti necessitavano di moderatori o personale di supporto per visualizzare le email senza concedere privilegi amministrativi completi. Le uniche opzioni erano codice personalizzato o condivisione eccessiva.

L'approccio

Un piccolo modulo Drupal che aggiunge un permesso e aggancia hook_entity_field_access() per filtrare la visibilità del campo email al momento del controllo di accesso. Nessuna interfaccia di configurazione, nessuno schema, nessun comportamento a sorpresa. Il permesso può essere assegnato per ruolo tramite il sistema RBAC nativo di Drupal.

Decisioni degne di nota

  • Priorità ai permessi. Sfrutta l'accesso basato sui ruoli esistente di Drupal, quindi gli amministratori non devono imparare un'altra superficie di configurazione.
  • Hook di accesso a livello di campo. Filtra a livello di entità e campo, quindi la regola si applica uniformemente su REST, GraphQL, l'interfaccia di amministrazione e le pagine utente.
  • Zero cerimonie. Un permesso, un hook, nessun modulo di impostazioni. Il modulo è abbastanza piccolo da poter essere revisionato in pochi minuti.

Stato

Funzionalità integrata nel core di Drupal a partire dalla versione 9.2, che è il miglior risultato che un modulo contrib possa sperare. Ancora mantenuto per i siti su Drupal 8 e dalla versione 9.0 alla 9.1. Centinaia di siti lo hanno adottato prima che il core raggiungesse il livello. Pubblicato su Drupal.org.

Vuoi un lavoro simile per il tuo team?

Ingegneria senior per prodotti AI, cloud e web, dall'architettura alla messa in produzione.