Joomla.it Forum
Non solo Joomla... => Sviluppo => : R0bs 25 Jun 2010, 12:06:21
-
Buongiorno a tutti, programmo in php e da poco mi sono avvicinato al mondo joomla.
Sto creando un componente utilizzando il pattern MVC di Joomla.
Volevo chiedervi come poter gestire la seguente funzionalità nel pattern MVC:
il componente che sto creando è accessibile solo ad alcuni utenti. Infatti ho pensato di inserire nel DB una tabella contenente come attributi l'id dell'utente e le varie operazioni. Se un id non compare nella tabella vuol dire che l'utente non è autorizzato a vedere nulla. Inoltre i valori degli altri attributi che possono essere immessi sono booleani, 0 cioè utente non autorizzato all'operazione ed 1 utente autorizzato.
Table
-----------------
id
operazione1
operazione2
----------------
esempio
----------------------------
id | 5 | 7
operazione1| 0 | 1
operazione2| 1 | 1
-----------------------------
L'utente con id=5 accede al componente ed è autorizzato all'operazione2 ma non alla operazione1
L'utente con id=6, non compare quindi non è autorizzato neanche ad accedere al componente.
L'utente con id=7 accede al componente e può effettuare qualsiasi operazione.
Questo controllo va eseguito subito dopo il seguente script
defined ( '_JEXEC') or die ( 'Restricted access' );
Ora le operazioni che devo eseguire sono:
1) Reperire l'id dell'utente collegato - OK
$user =& JFactory::getUser();
$user->id;
2) Verificare quali operazioni sono consentite dall'id recuperato - (accesso al db).
Siccome queste operazioni le devo ripetere quasi per tutti i file del componente c'è un modo per importare le funzioni di controllo senza riscrivere ogni volta i punti 1) e 2)?
Quindi creare un qualcosa del tipo
accesso_componente() or die ( 'Restricted access' );
//controlli su operazioni_consentite() or die ( 'Restricted access' );
-
non ho mica capito... stai facendo un sistema di autorizzazione tuo?
Joomla ha giài suoi metodi per vedere che livello di autorizzazione hai.
Quando sviluppi per joomla devi tenere sottomano il sito delle api altrimenti non ti accorgi di infinite cose...
se stai lavorando sulle autenticazioni basta fare un po' di ricerche auth ...authorization, Jauth .. qualcosa salta sempre fuori... poi affini la ricerca e ti trovi tutto ciò che hai a disposizione per fare ciò che vuoi fare...
M.
-
Ti ringrazio per avermi risposto.
Mi spiego meglio. Ho intenzione di creare un componente che permetta alcune operazioni (inserire nuove informazioni su un DB, modificare le informazioni esistenti, ricercare informazioni ecc..)
Solo ad alcuni utenti registrati viene data la possibiltà di effettuare tutte le operazioni oppure una parte di esse.
Quindi in primis devo creare un sistema di autorizzazione che autorizzi oppure neghi ad un utente, la possibilità di effettuare determinate operazioni che il componente mette a disposizione.
Per fare un lavoro pulito, considerando che sto utilizzando il pattern MVC, esiste in joomla qualcosa che mi può essere utile? (ne sparo una: una classe helper)
Oppure
Il problema potrebbe essere risolto creando un file.php (dove dovrei piazzarlo?), inserendoci le funzioni di autorizzazione che mi servono, e richiamandolo negli altri file con un banale include (o require_once)?
-
scusa ma prendi qualsiasi componente già fatto dove servano autorizzazioni e guarda come fa...
Se sei nel framework di joomla ci pensa il plugin a passare il tuo livello di auth, dovrai trovare il metodo per fare il check.. nn so a memoria quale sia, ma nn è difficile trovare documentazione come ti ho detto.
M.
-
Ok. Grazie ancora.
Mi faccio un giro tra i componenti esistenti. Qualora ti dovesse saltare alla mente qualcuno su cui indirizzarmi non esitare a scrivermi.
-
stavo guardando ora:
components/com_content/views/frontpage/tmpl/default_item.php
guarda le prime 5 righe
M.