[RISOLTO] domanda su uso di Rights

Buongiorno ragazzi,

sto provando ad utilizzare il modulo Rights per gestire più

velocemente i permessi sui controller.

Come accennato in un altro post, io uso postgres… e quindi qualcosina l’ho dovuta fare a mano.

Comunque l’installazione è andata a buon fine. A fine installazione ho una situazione di questo tipo:

tbl rights vuota. tbl authitemchild vuota.

tbl authitem:




"Admin";2;"";"";"N;"

"Authenticated";2;"";"";"N;"

"Guest";2;"";"";"N;"



tbl authassignment:




"Admin";"1";"";"N;"



per le mie esigenze ho bisogno di quei tre tipi di utenza. quindi caso semplice.

Chi naviga e non è loggato: Guest.

Chi è autenticato. Authenticated.

Chi ha diritti di Amministratore.

Ora, andando nella sezione Permessi, del Modulo Rights vado su "Generate items for controller actions"

mi da l’elenco di tutti i Controller ed i relativi metodi.

faccio una prova con un Controller:

metto il check su:




Progetto.*	controllers/ProgettoController.php



e lo genero, ora me lo ritrovo nella scheda Permessi e posso scegliere se fare Assegna o revoca ad Authenticated e Guest, ma come comportamento ad un utente loggato o guest non cambia nulla. io continuo ad accedere tranquillamente alla mia applicazione .../progetto/

e allora mi son fatto un paio di domande:

-devo aggiungere qlcs ad ogni controller?

-rights come fa a capire chi è Guest? perchè come Authenticated lo posso assegnare ad ogni utente e comunque non vedo cambiare il comportamento per questo tipo di utenza.

sicuramente mi son perso qualcosa,

grazie a tutti.

mi rispondo da solo.

nel controller va aggiunto:




	public function filters()

	{

		return array(

				'rights',

		);

	}

	



e se si vuole abilitare alcune azioni:




	public function allowedActions()

	{

		return 'index';

	}



se come nel mio caso vi compare un errore di Yii di questo tipo:




Filter "rights" is invalid. Controller "ProgettoController" does not have the filter method "filterrights".



bisogna cambiare la classe che si estende da CController a RController:




class ProgettoController extends RController {



a presto.

Per quanto mi è parso di capire:

Guest è assegnato di Default all’utente non autenticato

Authenticated è assegnato di Default all’utente autenticato ed i suoi permessi vengono ereditati da qualsiasi altro ruolo (fatta eccezione per guest)

In pratica se io creo un ruolo Prova che può fare esclusivamente B mentre dico che il ruolo Authenticated può fare esclusivamente A allora:

  • quando assegno ad un utente il ruolo Prova, quest’ultimo potrà fare A e B.

  • un utente Active a cui non viene assegnato il ruolo Prova, potrà fare solo A

  • Guest se non espressamente specificato non potrà fare ne A ne B

Qualcuno mi conferma? potrei anche sbagliarmi visto che uso rights da poco tempo ;)

Si è così, tu in pratica hai un solo ruolo che è "Admin".

Per un solo ruolo usare rights mi pare uno spreco!