fabrik: permessi ed autorizzazioni

Nel precedente tutorial abbiamo realizzato un form che salva i dati in una tabella del database, e creato una lista per gestire i record. Gestire i record vuol dire poterli cancellarli, editarli o inserirne di nuovi. Uno degli aspetti più importanti nella gestione dei dati è la solita questione: chi può fare cosa.

Stabilire i ruoli è importante al fine di progettare bene la nostra applicazione, quindi una delle cose che dovrò considerare e chi sarà ad inserire i dati, quale gruppo di persone, e quale gruppo potrà editarli. Immaginate gli operatori di una azienda sanitaria qualsiasi, tipo un pronto soccorso, questi all'arrivo di un paziente devono compilare dei form/cartelle cliniche descrivendone sintomi, cause, procedure mediche e medicinali somministrati, ma non potranno fare nessuna correzione una volta registrati questi dati.

Ci sarà poi un gruppo di operatori di livello più elevato che avrà i permessi per editare e correggere le cartelle cliniche con un meccanismo che possa tracciare chi ha modificato cosa.

Quindi capite che è di estrema importanza iniziare a progettare la nostra applicazione con un occhio alla questione permessi.

Per il form e per la lista trattati nello scorso articolo "creare un form con la sua lista di dati" , non sono state fatte molte considerazioni in quanto quell'esercizio ci serviva per capire come orientarci all'interno del CCK.

Adesso passiamo alle varie configurazioni per dare i permessi al gruppo o utente il quale potrà eseguire gli inserimenti, quale le correzioni e quale le eliminazioni. Un ulteriore variabile potrebbe essere quella di far editare/cancellare i record al proprietario di questi. Mi spiego: in un ipotetico gruppo potrebbero esserci degli utenti che svolgono un lavoro di "data-entry", potremmo decidere di far editare/correggere o eliminare i record solo all'utente che lo ha generato; come dire che ognuno può editare o eliminare solo i record che ha inserito.

In questo caso avremmo bisogno di un ulteriore campo chiamato "user_id" (che è la chiava secondaria collegata alla tabella users di joomla) dove in automatico verrebbe registrato l'id dell'utente che sta creando il record, potendo così distinguere quali gli utenti "owner" i proprietari. Questo eventualmente sarà oggetto di un prossimo articolo, per adesso continuiamo per la strada già intrapresa.

Portiamoci nel pannello di controllo di Fabrik e clicchiamo sul menù "LISTE" e successivamente sul nome della nostra lista (utenti corsi), nella colonna di sinistra clicchiamo su "ACCESS" ed impostiamo i permessi per chi potrà leggere i dati, chi potrà inserirli ed editarli e quelli per chi potrà eliminarli, quindi:

  • vedi liste: Public
  • vista record: Public
  • edita i record: registered
  • aggiungi righe: registered
  • elimina record: Super User
  • vuota i record: Super User
fabrik per joomla gestire i permessi 

 I gruppi scelti fanno parte del core di joomla, quindi in una situazione reale non andremo a dare i permessi di inserimento a qualsivoglia utente registrato, ma sarà più opportuno creare un apposito gruppo, magari seguendo questa guida.

Testando adesso nel front-end del sito, ci accorgeremo che richiamando il form, un messaggio di allert ci informa che: "Ci dispiace, ma non sei autorizzato ad aggiungere questo record" .

Mentre visualizzando la lista non visualizzeremo più i pulsanti per l'inserimento e per la modifica.

ADESSO LIMITIAMO LA VISUALIZZAZIONE e MODIFICA dei DATI al SOLO UTENTE PROPRIETARIO

Iniziamo con l'inserire un campo user_id scegliendo come tipo il plug-in user.

Nella Tabs Opzioni Configuriamolo in maniera che nei dati utente vi sia "ID", sarà possibile anche scegliere il nome dell'utente, il suo indirizzo email o il nik name. Per questa guida usate ID!

Per le altre configurazioni dovrete scegliere secondo la logica che vorrete dargli, quindi proseguite nella Tabs Opzioni con;

Aggiorna su modifica: Dovrebbe stare su NO se si tratta di una scheda personale, altrimenti ad ogni utente che ne modificherà il contenuto corrisponderà un id diverso. Comodo se vogliamo costruire un sistema di controllo di chi effettua le modifiche, il vecchio id verrà sostituito con il nuovo id dell'utente che effettua la modifica. Con qualche modifica sarà possibile costruire un sistema che tenga traccia di tutti gli utenti che hanno fatto le modifiche, memorizzando data, ora e modifica......ma questo esula da questa guida.

Utilizza profilo social: Valido solo se per il login l'utente usa il suo profilo. Joomla deve essere configurato per fare ciò.

Nella Tabs nascosto sceglieremo le seguenti impostazioni: Imposteremo nascosto su SI, altrimenti chi inserirà i dati si ritroverà una dropdown list con la possibilità di scegliere un utente tra gli utenti a cui dare la paternità dell'inserimento, non necessario nella nostra guida, ma è possibile che in altre situazioni serva.

Impostazioni per la visualizzazione delle liste o del dettaglio

Come abbiamo fatto sopra, adesso ci portiamoci nel pannello di controllo di Fabrik e clicchiamo sul menù "LISTE" e successivamente sul nome della nostra lista. Nella colonna di sinistra clicchiamo infine su "ACCESS" ed impostiamo i permessi, questa volta li imposteremo per fare in modo che questi dati possono essere visualizzati solo dall'utente proprietario ed al massimo da un amministratore con permessi di Super Users.

  • vedi liste: registered
  • vista record: registered
  • edita i record: Super Users
  • Oppure usa il campo: user_id
  • aggiungi righe: registered
  • elimina record: Super User
  • Oppure usa il campo: user_id
  • vuota i record: Super User

Infine ci porteremo nella gestione della nostra lista in Data >> Pre-filtro, dove definiremo i filtri di chi può fare cosa, nello specifico chi può vedere cosa.

Nell'esempio di seguito faremo in modo che i dati inseriti possa visualizzarli solo il proprietario ed un amministratore con permessi Super Users.

Nei pre filtri inserire i seguenti dati cliccando su nuovo:

  • Unione: WHERE
  • Campo: user_id(raw)
  • Condizione: EQUALS
  • Valore: {$my->id} comprensivo di parentesi graffe
  • Digita: Testo
  • Applica: Registered

Le impostazioni appena inserite faranno in modo che siano visibili solo i dati inseriti dall'utente proprietario.

I dati sottostanti serviranno per essere visualizzati e amministrati da un amministratore con permessi di Super User:

  • Unione: OR
  • Campo: user_id(raw)
  • Condizione: NOT EQUALS
  • Valore: 0
  • Digita: Testo
  • Applica: Super Users

Questo tutorial su fabrik termina qui, se avete dubbi postate sui commenti. Se volete potete offrirmi un caffè cliccando nel pulsante sottostante, oppure cliccate su uno dei banner pubblicitari.

offrimi un caffè