Created
September 4, 2013 20:37
-
-
Save hugofabricio/6442542 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
App::uses('AppController', 'Controller'); | |
class UsuariosAppController extends AppController { | |
/** | |
* Métodos carregados antes da action ser chamada | |
*/ | |
public function beforeFilter() | |
{ | |
// Se acessar a área do cliente | |
if ($this->isPrefix('painel')): | |
// Troca o layout | |
$this->layout = 'cms'; | |
// Configurações do Cookie | |
$this->Cookie->time = '30 Days'; // or '1 hour' | |
$this->Cookie->key = 'FF()XA(S*D)AS3sA(Sd80A(SDA*STAS%D4$AS#SD@ASDtyASIH)_AS0dAoIASNKAshgaFA$#S21d32G2s45dAS$3d#A@$SDAZCHVASCa4s33%$ˆ$%$#s253$AS5#Â$%s645$#AS@%#AˆS6%A&*SÂ%S$'; | |
$this->Cookie->httpOnly = true; | |
// Chave da Sessão | |
AuthComponent::$sessionKey = 'Auth.Painel'; | |
// Configurações de Autenticação | |
$this->Auth->authenticate = array( | |
'Blowfish' => array( | |
'userModel' => 'Usuario', | |
'fields' => array( | |
'username' => 'usuario', | |
'password' => 'senha', | |
), | |
'scope' => array( | |
'Usuario.status' => true | |
) | |
) | |
); | |
// Página de login | |
$this->Auth->loginAction = array('plugin' => 'usuarios', 'controller' => 'usuarios', 'action' => 'login', 'painel' => true); | |
// Redirecionamento ao logar | |
$this->Auth->loginRedirect = array('plugin' => false, 'controller' => 'home', 'action' => 'index', 'painel' => true); | |
// Redirecionamento ao sair | |
$this->Auth->logoutRedirect = array('plugin' => 'usuarios', 'controller' => 'usuarios', 'action' => 'login', 'painel' => true); | |
// Mensagem de erro | |
$this->Auth->authError = 'Você não tem permissão para acessar esta área.'; | |
if (!$this->Auth->loggedIn() && $this->Cookie->check('Auth.Painel')): | |
// Cookie | |
$cookie = $this->Cookie->read('Auth.Painel'); | |
// Busca o cliente | |
$usuario = $this->Usuario->find('first', array( | |
'conditions' => array( | |
'Usuario.usuario' => $cookie['usuario'] | |
) | |
) | |
); | |
// Login manual do usuário | |
if ($this->Auth->login($usuario['Usuario'])){ | |
$this->redirect('/painel'); | |
} | |
// Login automatico do usuário | |
if ($this->Auth->loggedIn() && $this->params->controller == 'usuarios' && $this->params->action == 'painel_login') | |
$this->redirect('/painel'); | |
endif; | |
endif; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment