modulo admin logando no cliente

Boa tarde preciso de uma solução para que o admin tenha a possibilidade de logar como o cliente.

Criei um modulo para area administradora e usei um outro critério de login chamei o model FormLogin para FormLogin2

e o component UserIdentity renomeei para Indentificador com minhas regras dentro do modulo admin.

ficou asssim:

admin/components/Indentificador.php

admin/model/FormLogin2.php

Criei uma área onde existe um botão que abre uma nova aba e faz o processo de login na conta selecionada caso o admin deseja fazer um suporte.

Segue Ação do controller:


 public function actionLogarEmpresa($id){

            $model=new LoginForm;

            

            $eKey = Yii::app()->getSecurityManager()->getEncryptionKey();

            

            $userEmpresa = Usuarios::model()->findByPk($id);

            

           $model->username = $userEmpresa->email;

           $model->password =  Yii::app()->getSecurityManager()->decrypt(utf8_decode($userEmpresa->senha), $eKey );

	   $model->rememberMe = 0;

            

            

            if($model->validate() && $model->login()){

                    

                 $this->redirect(array('/adicionarVaga'));

            }else{

                echo CHtml::errorSummary($model);

            }

				

                    

            

            

        }

Neste processo o sistema me imprime um erro do component UserIdentity:




A propriedade "CWebUser.logNivel" não está definida. 



Como posso resolver isso?

Consegui resolver este problema.

O que acontece é que cwebuser do modulo está configurado para usar o prefixo admin:


Yii::app()->user->setStateKeyPrefix('admin'); 

Então ele salva setstate no prefixo do admin e não do usuário.

o que fiz:

  1. fui no main e defini no component CWebUser:

 'stateKeyPrefix' => 'user'

  1. Acessei o component e no processo de validação true defini:

Yii::app()->user->setStateKeyPrefix('user'); 

Desta forma meu processo de login funcionou como desejado. :lol:

Agora preciso ver uma solução para deslogar sem derrubar o admin. :D