Salve, sono novizio di yii. Ho installato i moduli Right e User ma non ho capito una cosa.
Per quanto riguarda il menu è possibile mostrare solo alcune voci se l’ utente non è loggato o è un’ amministratore?
Mi spiego meglio, ho 10 voci nel menu ma vorrei che l’ utente Guest ne vedesse solo 5 almeno che non sia loggato.
Come risolvo questo problema?? E anche per quanto riguarda l’ accesso ad aclune pagine vorrei che solo utenti loggati o amministratori avessero accesso. Ci stò dando di matto !!! Se qualcuno può aiutarmi mi farebbe un grosso favore
class fn extends CApplicationComponent
{
public function init() {
}
public function userHasRole($role){
return (Yii::app()->authManager->checkAccess($role, Yii::app()->user->id));
}
}
Il codice funziona… ma se qualcuno con esperienza conferma o smentisce siamo più tranquilli!
Stasera provo il tuo codice e poi vediamo cosa dicono i più esperti.
A volte non sono proprio convinto di questo framework, nel senso che cmq anche qui di codice bisogna scriverne e richiamare sempre classi funzioni etc. Mi chiedo se con il php puro farei prima :-/ Ma poi leggo commenti e guidizi di gente esperta che ancora non mi permettono di “mollare” questo framework, perchè leggendo i loro post…yii sembra quasi la svolta giusta. Tutti dicono che guadagni tempo nello sviluppo e anche se all’ inizio ne perdi un bel pò per capire come funziona (e io ne sto perdendo assai) alla fine sarai ripagato. Vedremo…io ancora non ne sono convinto del tutto. Sarà che devo sviluppare un applicazione complessa che comprende piu cose e nella quale quando sara finita saranno collegate più “persone” nel suo utilizzo. A livello singolo ho già creato con php questa applicazione ma per crearla a livello “globale” mi è stato consigliato questo framework xchè l’ applicazione dovra fare molte cose. Ora come ora…posso dirti che ci stò quasi dando di matto . Oggi ho deciso di riniziare da capo il suo studio seguendo anche dei bei tutorial (in spagnolo) di Gustavo Salgado che collabora anche con Codigo Facilito. Vedremo che succede…mi sono dato un mese di tempo…poi prenderò la decisione…o continuo con yii…o torno al php puro. Che Dio ce la mandi buona!!!
Io ho incontrato yii più di un anno fa… ho letto il libro, seguito gli esempi… ma non è stato amore a prima vista.
Adesso devo anche io sviluppare qualcosa di serio e mi ci sono ributtato più seriamente: anche solo la gestione utenti e ruoli secondo me ripaga lo sforzo di comprenderlo!
Sono effettivamente intercambiabili, ho appena provato… quindi tengo la tua!
Sull’utilità di installare Rights posso dirti, ma già lo saprai, che è la Gui per gestire RBAC, e per il poco che ho visto, lo fa decisamente bene.
Se hai bisogno che un admin possa inserire nuovi utenti ed assegnare ruoli, li è già tutto fatto… poi se hai un metodo alternativo che non sia la consolle, spiega!
Si è vero, ma ho voluto seguire il consiglio di realtebo (che ovviamente è molto più esperto di me) e provare SRBAC. L’ ho installato e ho reso disponibile il login tramite database mysql. Ora devo capire come creare i ruoli. Infati vorrei che al modulo User potesse accedere solo chi è admin…ma devo creare il ruolo e le azioni…sto cercando di capire come fare.
Ovviamente ho eliminato i moduli Rights e Users e mi sono creato la mia tabella Utenti.
Invece a me, confrontandomi con n altro programmatore, inizia a piacere poco il fatto di mettere il nome del ruolo nel codice, figuriamoci nelle view, mi pare poco MVC-compliant.
Quindi credo che sia meglio creare delle funzioni tipo
mostraElemento()
da usare nelle view con delle ‘if’ che ritornino true o false in base ai ruoli
concordo con ettolo sulla questione di non avere hardcoded nelle view il nome del ruolo.
io tendo a creare nel controller un parametro ‘view_mode’, in basa al quale la vista determina cosa far vedere e cosa no.
così è il controller a decidere in base a vari checkaccess il comportamento della vista. Questa poi, in base alla modalità impostata, si adegua di conseguenza.