Olá.
Programava com o CakePhp, porém ultimamente tenho lido sobre o Yii e resolvi migrar.
Estou tendo duas dúvidas. Um é em relação a autorização depois da autenticação.
Fiz o login seguindo esse tutorial (que acredito que todos sigam):
http://www.yiiframework.com/doc/guide/1.1/en/topics.auth
Consegui fazer tranquilo.
Quando fui fazer a parte de requisição, veio a gambiarra (da qual estou querendo fugir).
public function accessRules()
{
return array(
array('allow',
'actions'=>array('login'),
'users'=>array('*'), // Sempre permitir acessar a página de login
),
array('allow',
'actions'=>array(),
'users'=>array('@'), // Acessar todas as actions, desde que esteja autenticado
),
array('deny',
'actions'=>array(),
'users'=>array('*'), // Bloqueia tudo, caso não entre na regra de cima
)
);
}
Poréém a parte do "@" não está funcionando. Ele sempre acaba indo pra parte de login.
Consegui resolver via gambiarra, porém não é essa minha intenção.
Resolvi fazendo um if:
if(Yii::app()->user->name == 'Guest') {
// Condição de só ir para login
} else {
// Condição de acessar tudo
}
Funcionou, porém quero resolver da maneira certa.
Minha segunda dúvida é:
No CakePhp eu tinha a classe AppController, onde eu podia definir uma variável que seria acessado por todo o site.
No caso do Yii eu quero fazer isso também, pois estou fazendo um sistema e não um site institucional. Começa com o Login e Senha. Como que eu defino uma variável do tipo Usuario que eu consiga acessar em todos os controllers?
Outro caso seria até mesmo para a autorização. Eu não quero criar esse método em todos os controllers (evitar o DRY) como faço para uma única autorização valer para todos?
Desde já agradeço.