User E Informazione Sul Ruolo - Dove Inserirle?

Sto inziando da zero una nuova app, molto molto piu piccola emeno strutturata di qualsiasi altra cosa abbia fatta sinora.

Per questo, ho inserito semplicemente un campo "Role", che può essere ADMIN o USER, nella tabella degli utenti al db.

Ho modificato il login in modo da verificare nome utente e password contro un db.

Ora però ho bisogno di tenermi dietro il ruolo dell’utente appena letto dal db.

Solo che la UserIdentity non è accessibile a runtime, in quanto _identity è solo una variabile privata di LoginForm

Dopo questo codice




public function login()

	{

		if($this->_identity===null)

		{

			$this->_identity=new UserIdentity($this->username,$this->password);

			$this->_identity->authenticate();

		}

		if($this->_identity->errorCode===UserIdentity::ERROR_NONE)

		{

			$duration=$this->rememberMe ? 3600*24*30 : 0; // 30 days

			Yii::app()->user->login($this->_identity,$duration);

			return true;

		}

		else

			return false;

	}



c’è modo di inserire a livello di app l’informazione sul ruolo dell’uente?

Forse devo estendere il CWebUser?

Non ci credo, sensorario aveva già risposto !!!

http://www.yiiframework.com/forum/index.php/topic/27702-yiiapp-user-quellochevoglioio/

Ho creato una classe WebUser che estende CWebUser, ed ho modificato il login() in modo che salvi in una variaible anche il ‘role’ letto dal db.

Il problema è che se l’utente ha selezionato l’opzione per rendere permanente il login non so da quale pezzo di codice passa, perchè devo comunque fare si che io possa leggrere il nome utente e dal db recuperarne il ruolo…

… poi dovrò aumentare la sicurezza di questa cosa perchè fare un fake-cookie è semplicissimo.

Nel caso quindi quando l’app parte c’è già un cookie di login, come faccio per recuperare il ruolo dell’utente loggato SENZA salvarlo nel cookie stesso?

credo che se usi setState dell’user identity gli attributi finiscono nel cookie ma se usi la sessione rimangono nel server : Yii::app()->session['variabile]=$variabile