Ciao scusate per la non precisione nel quotare, cmq grazie all’amico d4rkstar sono arrivato alla conclusione che (quello che viene definito nella guida a Rights come “additional feature” in realtà non sono tanto addizionali quanto obbligatorie)
e cioè:
1>ereditare i propri Controllers da RController (non da CController)
2>inserire all’interno della function Filters (dei controllers) la parolina ‘rights’ al posto di ‘accessControl’
Mi sfugge una cosa fondamentale: le operazioni definite con $auth->createOperation corrispondono alle azioni dei controller dell’applicativo oppure sono delle label arbitrarie, da usare poi con
if(Yii::app()->user->checkAccess('MiaOperazione'))
{
// create post
}
Puoi usarlo gestendo le azioni del controller, ma così decidi quali azioni possono compiere gli utenti. A me piace immaginare che la stessa azione possa essere vista da tutti quanti, ma in modi differenti.
Premetto che ho ben capito come utilizzare checkAccess() per la gestione dei permessi sulle operazioni.
Ma quello che mi chiedo ora è se era possibile avere qualcosa del tipo di
Yii::app()->user->isGuest
per gli altri ruoli presenti nell’applicazione? E quindi una cosa più generale rispetto al fatto di dover creare un operazione per ogni azione da limitare ad un certo tipo di utenza.
Mi sembra troppo logorroico RBAC, ottimo per applicazioni che devono gestire tanti ruoli in modo dinamico (ruoli che si aggiungono runtime) ma se un’applicazione ha a che fare con un insieme statico di ruoli es admin, user, altroruolo1, altroruolo2 secondo me fai un paio di campi 1/0 nella tabella users(flag_is_admin, flag_is_altroruolo1…) e filtri gli accessi nel controller a livello di rules controllando i flag nell’user loggato così:
public function accessRules() {
Yii::app()->authManager->showErrors = true;
return array(
array('allow',
'expression' => '
Yii::app()->session["flag_is_admin "]==1
',
),
array('deny', // deny all users
'users' => array('*'),
),
);
}
P.S. : valore di sessione non nei cookie ovviamente!
Sarò stupido ma ho avuto troppe difficoltà con RBAC, più di quante dovrebbe impegnarmi una cosa così semplice da fare.
Ho deciso di usare di YII solo quello che reputo mi faccia risparmiare ore di vita, il resto lo scarto
Fai bene! =) Io spero di farmi presto un gestore di ruoli/permessi tutto mio. Vorrei semplicemente creare dei permessi. Quindi usarli nel codice per abilitare o disabilitare delle parti di view. Quindi avere una gestione semplice: una tabella con utenti e permessi. Tutto selezionabile con checkbox. Magari, ecco, ci faccio pure un modulo. Spero che ai clienti serva perchè altrimenti no ho tempo per farlo in questo momento =(.
Ciao a tutti, sono nuovo di YII ma vorrei scoprire la sua potenza come voi la cosa che non mi è chiara è sull’utilizzo di rights ovvero: tu continui, a quanto ho capito, ad utilizzare il checkAccess… ma per gestire tutto con rights ho letto in un post di giancarlo che basta
estendere da RController anziché Controller
modificare la function filters() restituendo rights anziché accessControl
A questo punto la funzione accessRules non dovrebbe più servire
la mia domanda è: quale sia la strada più corretta… e nello specifico non mi è chiaro se continuando ad utilizzare accessControl si stia realmente sfruttando rights oppure no.
La strada più giusta non esiste. Se esistesse si dovrebbe/potrebbe fare solo in quel modo. Ogni situazione ha una strada migliore. Per quel che faccio io, per come lo faccio io, checkAccess è la mia soluzione ottima. Questo perché al momento utilizzo un solo layout che si comporta in modo diverso a seconda di chi lo naviga. Faccio questo non avere tanti layout. Ma quando i layout dovessero diventare molto differenti, in quel caso proteggo la rotta e non il singolo pezzo di view. E’ una faccenda di “style”.
Buongiorno a tutti. Sono nuovissimo sia di yii che in questo forum. Volevo chiedervi una cosa. Ho seguito la guida di installazione del modulo rights ma non ne cavo piede. Mi da sempre errori. Chiedo un particolare a Sensorario riguardo al modulo che stava creando per la gestione dei permessi. Devo sviluppare un’ applicazione, dove avrei bisogno della gestione dei permessi in base al fatto se un utente sia o meno il titolare o un dipendente. Come posso fare? Mi potete dare delle dritte? Mastico abbastanza php e mysql, ma leggendo in giro che questo framework è fenomenale perchè semplifica il lavoro vorrei provare a sviluppare il tutto con il suo utilizzo. Ovviamente essendo un “prodotto” a me ancora sconosciuto devo capire come funziona. Ma sicuramente un “guida umana” mi aiuterebbe