Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Oi,
Estou tendo um problema um tanto surreal!
AuthenticationController.php
<?php
class Admin_AuthenticationController extends Zend_Controller_Action
{
private $_moduleName = null;
private $_controllerName = null;
private $_actionName = null;
public function init()
{
// set params
$this->_moduleName = $this->_request->getModuleName();
$this->_controllerName = $this->_request->getControllerName();
$this->_actionName = $this->_request->getActionName();
// setLayout('login') caso seja chamado a action login
if ( $this->_controllerName == "authentication" && $this->_actionName == "login" ) {
// Zend_Auth
$auth = Zend_Auth::getInstance();
if ( $auth->hasIdentity() ){
$this->_redirect( '/admin/index/index' );
}else {
// set layout to login
$this->_helper->layout->setLayout( 'login' );
}
}
}
public function indexAction()
{
$this->_redirect( 'login' );
}
public function loginAction()
{
$formLogin = new AdminForm_Login();
if ( $this->getRequest()->isPost() ) {
if ( $formLogin->isValid( $this->_request->getPost() ) ) {
$authAdapter = $this->_getAuthAdapter();
$username = $formLogin->getValue( 'username' );
$password = $formLogin->getValue( 'password' );
$authAdapter->setIdentity( $username )
->setCredential( $password );
$auth = Zend_Auth::getInstance();
$result = $auth->authenticate( $authAdapter );
if ( $result->isValid() ) {
$identity = $authAdapter->getResultRowObject();
$authStorage = $auth->getStorage();
$authStorage->write( $identity );
$this->_redirect( '/admin/index/index');
}else {
$this->view->errorMessage = "Login inválido!";
}
}
}
$this->view->form = $formLogin;
}
public function logoutAction()
{
$authAdapter = Zend_Auth::getInstance();
$authAdapter->clearIdentity();
$this->_redirect( '/admin/index/index' );
}
private function _getAuthAdapter()
{
$authAdapter = new Zend_Auth_Adapter_DbTable( Zend_Db_Table::getDefaultAdapter() );
$authAdapter->setTableName( 'cms_users' )
->setIdentityColumn( 'email' )
->setCredentialColumn( 'password' )
->setCredentialTreatment( 'md5(?) AND active = 1' );
return $authAdapter;
}
}
No IE9 (versão que tenho instalada, não sei se faz o mesmo em todos!) quando noutro controller faço o seguinte:
$auth = Zend_Auth::getInstance();
$identity = $auth->getStorage()->read();
var_dump( $identity); // Restorna-me sempre NULL
Só que isto só me está a acontecer neste projecto e no IE! :angry:
Alguém já passou pelo mesmo, ou sabe o porquÊ?
[]
Carregando comentários...